设备内存空间:
CUDA设备使用多个内存空间,这些内存空间具有不同的特性,这些特性反映了它们在CUDA应用程序中的不同用法 这些内存空间包括全局,本地,共享,纹理和寄存器,如图2所示

合并的访问要求取决于设备的计算能力,可以查阅CUDA C编程指南中。
在这些不同的记忆空间中,全局记忆是最丰富的; 请参阅CUDA C编程指南的功能和技术规格,以了解每个计算功能级别上每个内存空间的可用内存量。 全局,本地和纹理内存的访问延迟最大,其次是常量内存,共享内存和寄存器文件。
存储器类型的各种主要特征如表1所示:

在纹理访问的情况下,如果纹理引用绑定到全局内存中的线性数组,则设备代码可以写入底层数组。 绑定到CUDA数组的纹理引用可以通过表面写入操作写入,方法是将表面绑定到相同的底层CUDA阵列存储)。 应该避免在同一内核启动时写入其底层全局内存阵列时从纹理中读取纹理,因为纹理缓存是只读的,并且在修改相关联的全局内存时不会失效。
对全局内存的合并访问:
编程支持CUDA的GPU架构的最重要的性能考虑因素可能是全局内存访问的合并。 当某些访问要求得到满足时,全局内存加载和通过一个warp线程存储被设备合并为少至一个事务。
高优先级:确保全局内存访问尽可能合并。
对于计算能力为2.x的设备,可以很容易地总结这些需求:对一个warp线程的并发访问将合并成许多事务处理,这些事务处理的数量等于为warp的所有线程提供服务所需的高速缓存行数。 默认情况下,所有访问都通过L1缓存,即128字节的行。 对于分散访问模式,为了减少过度访问,有时仅在L2中进行高速缓存是有用的,L2缓存了较短的32字节段。
对于计算能力3.x的设备,访问全局内存仅缓存在L2中; L1保留用于本地内存访问。 一些计算能力为3.5,3.7或5.2的设备也允许在L1中选择全局缓存。
在开启ECC时,以合并方式访问内存更为重要。 分散访问会增加ECC内存传输开销,特别是在将数据写入全局内存时。
以下简单示例说明了合并概念。 这些例子假设计算能力2.x. 这些示例假设访问通过L1进行缓存,这是这些设备的默认行为,除非另有说明,访问是针对4个字节的字。

CUDA实践指南(十三)相关推荐

  1. CUDA实践指南(六)

    得到正确答案: 获得正确答案显然是所有计算的主要目标. 在并行系统上,可能会遇到传统的面向串行编程通常不会遇到的困难. 其中包括线程问题,由于计算浮点值的方式而导致的意外值,以及由于CPU和GPU处理 ...

  2. 《App架构师实践指南》:移动开发的进阶指南

    文章主要内容: 什么是 app 架构师 这本书主要内容 读完感受 什么是 App 架构师 成为"架构师"是许多程序员的梦想,当然也包括我,在工作的几年里,我见过很多架构师,他们在设 ...

  3. Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集

    Python机器学习实践指南 目 录  第1章Python机器学习的生态系统 1  1.1 数据科学/机器学习的工作  流程 2  1.1.1 获取 2  1.1.2 检查和探索 2  1.1.3 清 ...

  4. 深度学习「CV」学习实践指南!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:黄星源.樊亮.陈桦.斯国一 深度学习的发展不仅突破了许多视觉难题, ...

  5. json数据解析_VBA 实践指南 -- Split函数解析Json数据

    什么是JSON? JSON(JavaScript Object Notation) 是一种及其轻量级的数据交换格式,它是 ECMAScript (欧洲计算机协会制定的JavaScript规范)的一个子 ...

  6. 免费教材丨第55期:Python机器学习实践指南、Tensorflow 实战Google深度学习框架

    小编说  时间过的好快啊,小伙伴们是不是都快进入寒假啦?但是学习可不要落下哦!  本期教材  本期为大家发放的教材为:<Python机器学习实践指南>.<Tensorflow 实战G ...

  7. 《响应式Web设计:HTML5和CSS3实践指南》——2.9节基于位置伪类的交替行样式

    本节书摘来自华章社区<响应式Web设计:HTML5和CSS3实践指南>一书中的第2章,第2.9节基于位置伪类的交替行样式,作者(美) Benjamin LaGrone,更多章节内容可以访问 ...

  8. 《Core Data应用开发实践指南》一1.3 创建Grocery Dude项目

    本节书摘来自华章出版社<Core Data应用开发实践指南>一书中的第1章,第1.3节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区"华章计算机"公 ...

  9. 《术以载道——软件过程改进实践指南》—第1章1.1节对CMMI的基本认识

    本节书摘来自异步社区<术以载道--软件过程改进实践指南>一书中的第1章1.1节对CMMI的基本认识,作者任甲林,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第 ...

  10. 操作系统CnetOS_7—systemd管理实践指南

    systemd管理实践指南 管理systemd CentOS 7 使用systemd替换了SysV.Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本, ...

最新文章

  1. WebBrowser安全警告
  2. 使用主机telnet远程管理路由器和交换机的详细过程及截图
  3. bzoj4361 isn (dp+树状数组+容斥)
  4. keil 函数 默认 外部 内部 博客_5.9 C++内部函数与外部函数
  5. python接管已经打开ie浏览器_Python selenium:使用已经打开并使用登录凭据登录的浏览器...
  6. Drools 6.2.0.Final发布
  7. 单页vue路由router
  8. js年会抽奖_嘿!这真的是一个正经的抽奖程序!
  9. 【CAM应用】谈CAM软件在实际生产中的应用举例
  10. 如何看待快手领投知乎4.34亿美元融资?创始人周源亲自下场回答
  11. SpringBoot整合Redis代码相关配置
  12. 怎样得到对方的电脑名_吸引力法则让他想念你,让对方主动找你
  13. vuejs模仿实现一个电影分享类网站
  14. java redis源码分析,慢谈 Redis 实现分布式锁 以及 Redisson 源码解析
  15. 282.给表达式添加运算符
  16. 软件测试团队队名,电子设计大赛队名
  17. 竞争情报的网络信息源
  18. 日系插画学习笔记(十):色彩基础
  19. 公务卡引发多米诺效应 推动POS系统“繁荣”
  20. JAVA小功能手机短信发送

热门文章

  1. merge r语言daframe_R语言:数据框
  2. WebSocket心跳检测和重连机制
  3. 报错:ReferenceError: Cannot access 'age' before initialization
  4. 提升技能必备网站(不定时更新)
  5. java queue的实例化_如何在java中实例化Queue对象?
  6. LINUX安装fossil
  7. VC下__func__未定义,改用__FUNCTION__
  8. 解决办法:Type safety: The expression of type List needs unchecked conversion to conform
  9. 以正常使用来进行测试
  10. 回忆有自己的场景,有两种角度