DDJ005:理解并使用共享内存.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
● DDJ005● 理解并使用共、_享一内存 上一个专栏讨论了执行模型和内核启动执行配置 局内存,最主要的优化在于避免了存储器组冲突。共 如何影响寄存器数量 以及本地多处理器资源 (比如共 享内存速度很快 (有些文档指出它与寄存器访问一样 享内存 ,sharememo~)。现在我们继续讨论内存的 快),但是,最近在CuBLAS和CUFFT性能方面取得 性能以及共享 内存在 reverseArraymultiblock fast. 的巨大改进就是因为使用寄存器替代了共享内存,所 _ _ CU中的使用。 以应该尽可能使用寄存器。CUDA共享内存分为大小 相等的存储器模块,这些模块称为存储器组 (memo~ CUDA存储器性能 bank)。每个存储器组都保存一个连续的32位值 (比 局部 内存空间和全局 内存空间不缓存,这意味着 如int和float),因此连续线程进行的连续数组访问非 每次对全局内存 (或局部内存)进行访问都将导致一 常快。向同一个存储器组 (可能是同一个地址,或者 次实际的内存访问。那么访问 (例如读取或写入)各 映射到同一个存储器组的多个地址)进行多个数据请 种类型的内存的开销是多少? 求时将发生存储器组冲突。发生冲突时,硬件将有效 多处理器每次交换 (定义见下文)时需要4个时 地序列化存储器运算,强迫所有线程等待,直到完成 钟周期才能发出一条存储器指令。访问局部内存空间 了所有存储器请求。如果所有线程从同一个存储器地 或全局内存将导致400--600个时钟周期的延迟。例 址读取,则将 自动调用广播机制,不会进行序列化。 如,以下代码片段中的赋值运算符需要4个时钟周 共享内存广播是一个能够同时向多个线程提供数据的 期才能从全局 内存中进行一次读取,需要4个时钟 高效方式。使用共享内存时,这项功能很值得注意。 周期从共享 内存进行一次写入,需要400--600个时 在以后的专栏中我们将详细讨论存储器组冲突。 multiblock fast.CLI 钟周期从全局 内存读取一个浮点值。注意 :使用 目前我们只需知道reverseArray _ _ device 变量类型限定符表示全局内存中的变量 (有 不存在存储器组冲突,因为连续线程访问连续值。 关其他变量特征,请参见CUDA编程指南第4.2.2.1 具有读取,写入功能的多处理器(multi.processor) 节)。主代码不能访 问变量类型 device 。 本地存储器类型概述如下 : ◆寄存器 : ◇ 多处理器上最快的内存形式。

您可能关注的文档

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档