- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CUDA 程序优化
确定任务中的串行和并行部分,选择合适的算法,将问题分为几个步骤看那些可以用并行来实现,确定要使用的算法
按照算法确定任务和数据的划分方式,将每个需要并行实现的步骤映射为一个
满足 CUDA 两层并行模式的内核函数,要尽量让每个 sm 上拥有至少六个活动的 warp 核至少两个活动的线程块。
编写一个能正常运行的程序作为优化的起点
优化显存的访问,避免显存的带宽成为瓶颈。在显存带宽优化前,其他的优化不会产生明显的结果。
显存优化的主要方法
将可以采用相同的 block 和 grid 的维度实现几个 kernel 的合并减少对显存的访问
尽量不要让私有变量分配到 local memory
为满足合并访问,采用 cudaMallocPitch()或者 cudaMalloc3D()分配显存。
为满足合并访问,将数据进行对齐(使用 align)
为满足合并访问,保证访问的首地址从 16 的整数倍开始,如果可能, 尽量让每个线程一次读的数据字长都为 32bit;
在数据只会被访问一次的,并且满足合并访问时,考虑使用 zerocopy
在某些情况下,考虑存储器控制器负责不均衡造成的风情冲突
使用拥有换成的常数存储器和纹理存储器
优化指令流
如果只需要少量的线程进行操作,一定要使用 类似‘if threaded N’ 的方式,避免多个线程同时运行占用更多的时间或者产生错误的结果
在不会出现不可接受的误差的情况下,采用 CUDA 算术指令集中的快速指令
使用#unroll 让编译器有效的展开循环
采用原子函数实现更复杂的算法,并保证结果的正确性
避免多余的同步
如果不产生 bank conflict 的算法不会造成算法的效率的的下降或者非合并访问,究应该避免 bank conflict
资源均衡
调整 shared memory 的使用量和 register 的使用量,保证更高的 SM 占用率,调整每个线程的数据处理量,shared memory,register 的使用量
使用括号明确变量的生存周期,使用 shared memory 存储变量
b)
与主机之间的通信的优化
尽量减少通信
使用 cudaMallocHost()分配主机的内存,获得更大的带宽
一次缓存较多的数据,在一并传输,可以获得较大的带宽
用流和异步处理来隐藏通信时间
使用 zerocopy 和 write-combined memory 提高可用带宽
您可能关注的文档
最近下载
- 医疗废物、废水处置知识培训测试题附答案.docx VIP
- 陕西省建设工程工程量清单计价规则2009(附录A).pdf VIP
- 城市轨道交通站务管理(化工社版):任务5.1.ppt VIP
- 虚拟主播在直播电商中的产品试吃效果与消费者评价分析.docx
- (最新)25年秋人教版二年级数学上册第四单元厘米和米单元教学计划.docx
- 《国际公法学(第三版)》 课件全套 第0--19章 绪论、 国际法的性质与发展---国际人道法.pptx
- 医疗废物知识培训测试卷附答案.docx VIP
- 城市轨道交通站务管理(化工社版):任务4.ppt VIP
- IATF16949质量体系审核检查表2019.doc VIP
- 城市轨道交通站务管理(化工社版):任务4.2.ppt VIP
原创力文档


文档评论(0)