4.1 Importance of Memory Access Efficiency

news2024/9/21 0:44:48

到目前为止,我们已经学会了如何编写CUDA内核函数,以及如何通过大量线程配置和协调其执行。在本章中,我们将研究如何组织和定位数据,以便通过大量线程进行高效访问。我们在第2章中讨论了数据并行计算,即数据首先从主机内存传输到设备全局内存。在第3章,可扩展并行执行中,我们确定了如何使用其块索引和线程索引来指导线程从全局内存中访问其部分数据。我们还探索了资源分配和线程调度。虽然我们涵盖的范围是一个非常好的开始,但到目前为止,我们学到的CUDA内核可能只能实现底层硬件潜在速度的一小部分。**性能不佳可归因于全局内存的长访问延迟(数百个时钟周期)和有限访问带宽,这通常使用动态随机访问存储器实现。**虽然有许多线程可用于执行,理论上可以容忍长内存访问延迟,但人们很容易遇到global内存访问路径中的流量拥塞阻止除极少数线程外的所有线程进行进度,从而使一些流式多处理器(SM)闲置。为了规避这种拥塞,CUDA提供了许多额外的资源和方法来访问内存,这些资源和方法可以删除进出全局内存的大部分流量。在本章中,您将学习使用不同的内存类型来提高CUDA内核的执行效率。

我们可以通过计算图3.8中图像模糊内核代码中执行次数最多的部分的预期性能水平来说明内存访问效率的影响。在图4.1.中复制。就执行时间而言,内核最重要的部分是嵌套的for-loop,它通过模糊补丁执行像素值累积。
在这里插入图片描述
在内部循环的每次迭代中,都会为一个浮点加法执行一个全局内存访问。全局内存访问获取in[]数组元素。浮点加入操作将in[]数组元素的值累积到pixVal中。因此,浮点计算与全局内存访问操作的比率为1比1或1.0。我们将把这个比率称为 compute-to-globalmemory-access,定义为为程序区域内对全局内存的每次访问执行的浮点计算数。

计算与全局内存访问比对CUDA内核的性能有重大影响。在当今的高端设备中,global内存带宽约为1000 GB/s,即1 TB/s。每个单精度浮点值有四个字节,预计每秒加载的单精度操作数不超过1000/4 = 250 giga 。计算与全局内存比为1.0时,图像模糊内核的执行将受到操作数(例如,in[] 的元素)传递到GPU的速度的限制。我们将把执行速度受内存访问吞吐量限制的程序称为memory-bound程序。在我们的示例中,内核每秒将实现不超过250千兆浮点运算(GFLOPS)。

虽然250 GFLOPS是一个可观的数字,但对于这些高端设备来说,它只是12个TFLOPS或更高的峰值单精度性能的一小部分(2%)。为了实现更高水平的内核性能,我们需要通过减少全局内存访问的数量来提高比率要实现处理器的峰值12 TFLOPS评级,我们需要48或更高的比率。总的来说,在过去的几代设备中,所需的比率一直在增加,因为计算吞吐量比内存带宽增长得更快。本章的其余部分介绍了一种常用的减少全局内存访问数量的技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1367455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哈希-力扣350. 两个数组的交集Ⅱ

题目 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示…

Hyperledger Fabric 核心概念与组件

要理解超级账本 Fabric 的设计,首先要掌握其最基本的核心概念与组件,如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能,就可以准确把握 Fabric 的底层运行原理,深入理解其在架构上的设计初衷。知其然,进…

Requests库的接口测试实现

Requests库是在接口测试中被广泛运用的库,包括模拟请求的下发,请求相关配置和响应结果的获取,核心主体都是通过request库完成。在接口测试中使用非常频繁。 一、Requests库环境搭建 接口测试的核心从模拟请求开始。在Python中,通…

Postgres 中文周报:PostgreSQL 2023 热门回顾

2024 新年好!原英文 Postgres Weekly 最新一期回顾了 2023 周刊中的热门点击文章、视频与工具等事项。当然,PostgreSQL 在 2023 年值得回顾的瞬间还有很多,远不止周刊中提到的。因此,在编译原周刊内容的基础上,我们增加…

mysql+关掉密码过期

mysql关掉密码过期 要在MySQL中关闭密码过期功能,可以按照以下步骤进行操作: 登录到MySQL服务器。 使用管理员账户(如root)连接到数据库。 mysql -uroot -ppassword 运行以下命令来查看当前的密码过期设置: SHOW…

学校服务器安装anaconda并配置pytorch环境

学校服务器安装anaconda并配置pytorch环境 1.下载Anaconda2.传到xftp中3.在终端运行脚本命令4.安装pytorch4.1 查看cuda版本4.2 创建自己的环境4.3 下载pytorch4.4 验证pytorch是否安装成功 参考视频:远程服务器安装anaconda并配置pytorch环境 使用服务器运行项目&a…

回顾2023编程之旅

一、前言 看在给了我一个博客专家的份上就继续写写博客,实事求是的讲如果是工作之余去总结csdn写写技术博客,还想混个专家什么的,真的是精力不够。因为里面的灌水的实在太多,比不过的,写这个玩意必须得淡泊名利才能悠然…

ACL16_S 系列 低成本物联网安全芯片,可应用物联网认证、 SIM、防抄板和设备认证等产品上

ACL16_S 芯片是针对物联网认证、 SIM、防抄板和设备认证需求推出的高安全芯片。芯片采用 32 位 ARMCortex™-M0 系列内核,片内集成多种安全密码模块,包括 RSA/ECC DES/TDES、 SHA-1/-256、 AES-128/-192/-256 等国际安全算法,支持真随机数发…

Arcgis像元统计数据

目录 单幅影像统计多幅影像统计 单幅影像统计 现有一幅NDVI影像,如何知道影像中NDVI的分布情况呢? 先栅格转点,然后在属性表中查看汇总情况 还有一种方法就是在ENVI中打开, -0.3-0.338占据了99% 多幅影像统计 现有多幅NDVI影…

网络协议与攻击模拟_01winshark工具简介

一、TCP/IP协议簇 网络接口层(没有特定的协议) 物理层:PPPOE宽带拨号(应用场景:宽带拨号,运营商切网过来没有固定IP就需要拨号,家庭带宽一般都采用的是拨号方式)数据链路层网络层…

uniapp中组件库的Textarea 文本域的丰富使用方法

目录 #平台差异说明 #基本使用 #字数统计 #自动增高 #禁用状态 #下划线模式 #格式化处理 API #List Props #Methods #List Events 文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等 注意: 由于…

基于微信小程序的热院成都味道系统的设计与实现

互联网的普及彻底颠覆了人们的生活,一直以来人们都是通过到餐厅就餐来满足自己的口腹之欲,而在工作学习繁忙的时候只能通过方便食品来进行充饥。而外卖订餐的出现则为这些人群提供了一个兼顾美食与工作学习的解决方案,因此已经有越来越多的人…

全视通发表“物联网赋能智慧医院建设”主题演讲获关注

邕州山河,神州沃壤。近日,备受瞩目的“2024广西医院和实验室建设学术年会暨净化专业委员会成立六周年庆典”在广西南宁圆满召开。作为智慧医康养整体方案提供商,全视通受邀参会并发表了主题为“物联网赋能智慧医院建设”的演讲,深…

在macos上查看当前进程的栈信息

概述 在调试程序时,如cpu莫名的高或低,一个常用的方式就是打印当前进行的调用栈,然后确认各线程的执行函数是否有异常。 在linux系统中可以使用pstack命令,直接打印各线程的栈信息,可惜在macos上没有该命令。一种解决…

利用人工智能和机器人技术实现复杂的自动化任务!

这篇mylangrobot项目由neka-nat创建,本文已获得作者Shirokuma授权进行编辑和转载。 https://twitter.com/neka_nat GitHub-mylangrobot :GitHub - neka-nat/mylangrobot: Language instructions to mycobot using GPT-4V 引言 本项目创建了一个使用GPT-4…

MySQL运维实战(3.1) MySQL官方客户端使用介绍

作者:俊达 引言 MySQL是MySQL安装包默认的客户端,该客户端程序通常位于二进制安装包的bin目录中,或者通过rpm安装包安装mysql-community-client,是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具&#x…

【数据库原理】(15)数据关系模式与规范

在数据库系统设计中,数据模式的设计是至关重要的。这涉及到如何将现实世界的复杂结构和关系有效地转化为适宜的数据模式。关系模式,得益于其坚实的数学理论基础,不仅能以二维表的形式清晰地表达实体,还能描述实体之间的相互关系&a…

使用STM32和MPU6050实现基于手势的室内导航系统

基于STM32和MPU6050的基于手势的室内导航系统是一个创新而具有挑战性的项目。在本文中,我们将介绍如何利用STM32微控制器和MPU6050传感器实现基于手势的室内导航系统,并提供相应的代码示例。 1. 系统概述 基于手势的室内导航系统旨在通过手势识别的方式…

使用Adobe Acrobat Pro DC给pdf文件填加水印

前言 GPT4的官方售价是每月20美元,很多人并不是天天用GPT,只是偶尔用一下。 如果调用官方的GPT4接口,就可以按使用量付费,用多少付多少,而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…