博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《CUDA C编程权威指南》——3.8节习题
阅读量:5945 次
发布时间:2019-06-19

本文共 751 字,大约阅读时间需要 2 分钟。

本节书摘来自华章社区《CUDA C编程权威指南》一书中的第3章,第3.8节习题,作者[美] 马克斯·格罗斯曼(Max Grossman) ,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.8 习题

1.当在CUDA中展开循环、数据块或线程束时,可以提高性能的两个主要原因是什么?解释每种展开是如何提升指令吞吐量的。
2.参考核函数reduceUnrolling8和实现核函数reduceUnrolling16,在这个函数中每个线程处理16个数据块。将该函数的性能与reduceUnrolling8内核性能进行比较,通过nvprof使用合适的指标与事件来解释性能差异。
3.参考核函数reduceUnrolling8,替换以下的代码段:

10d3e9b414a53e3999e9777d7f0133b1709153c3

比较每次的性能并解释使用nvprof指标的差异。

4.参考核函数reduceCompleteUnrollWarps8。不要将vmem声明为volatile修饰符,而是使用__syncthreads。注意__syncthreads必须被线程块里的所有线程调用。比较两个核函数的性能并使用nvprof来解释所有的差异。
5.用C语言实现浮点数s的求和归约。
6.参考核函数reduceInterleaved和reduceCompleteUnrollWarps8,实现每个浮点数s的版本。比较它们的性能,选择合适的指标与/或事件来解释所有差异。它们相比于操作整数数据类型有什么不同吗?
7.被动态地产生孩子的全局数据进行更改,这种改变什么时候能保证对其父亲可见?
8.参考文件nestedHelloWorld.cu,用图3-30所示的方法实现一个新的核函数。
9.参考文件nestedHelloWorld.cu,实现一个新的核函数,使其可以用给定深度来限制嵌套层。

转载地址:http://nezxx.baihongyu.com/

你可能感兴趣的文章
js---12数据类型,数据类型转换,NaN,
查看>>
C字符串处理函数
查看>>
超短reads(primer、barcode、UMI、index等)比对方法
查看>>
lua正则表达式如何匹配中文
查看>>
arcgis api for js热力图优化篇-不依赖地图服务
查看>>
php逻辑操作符中&和&&的异同
查看>>
Git 远程仓库(分布式版本控制系统)
查看>>
设计模式原则之里氏替换原则
查看>>
LeetCode: Longest Common Prefix 解题报告
查看>>
Multipart polyline to single part lines
查看>>
zeromq_传说中最快的消息队列
查看>>
ARM的栈指令
查看>>
两个tomcat一起启动
查看>>
javax.imageio.IIOException: Unsupported Image Type
查看>>
Oracle DBA之监听的静态注册与动态注册
查看>>
Oracle Golden Gate 系列十七 -- GG 一对多 real-time data distribution 说明 与 示例
查看>>
大照片背景在网页设计中应用的精美作品范例(下篇)
查看>>
Realtek 8192cu win8 驱动
查看>>
property 中的strong 与weak
查看>>
使用HDFS java api 创建文件出错。
查看>>