《GPU高性能运算之CUDA》勘误表
来源:互联网 发布:unity小游戏源码 编辑:程序博客网 时间:2024/05/01 22:39
这是我们《GPU高性能运算之CUDA》一书的勘误表,多谢读者朋友的反馈与分享~~
1. 前言中的致谢部分:
讨论群中的陈国峰、
修改为:
讨论群中的刘伟峰、刘国峰、
2. 前言中的致谢部分:
以及NVIDIA深圳有限公司的Terrence Hong, Jerry Zhou,Jonny Qiu, Blues Yu, Jerry Jia, Donaven Chen, Sandy Zou等同事的支持;
修改为:
以及NVIDIA深圳有限公司的Terence horng, Jerry Zhou,Johnny Qiu, Blues Yu, Jerry Jia, Donovan Chen, Sandy Zou等同事的支持;
3. 第3页
现代CPU的分支预测正确率已经达到了99%以上
修改为:
现代CPU的分支预测正确率已经达到了95%以上
4. 第19页代码中的:
"s_data[128] = A[bid *128 +tid]"
修改为:
"s_data[tid] = A[bid *128 +tid]"
5. 第30页
“整个grid中最多也只能定义65535个block"
修改为:
“整个grid中最多能定义65535 * 65535个block"
”Db.x和Db.y最大值为512,Db.z最大为4“
修改为:
"Db.x和Db.y最大值为512,Db.z最大为64"
6. 第32页
gridDim。grid dimension,用于说明整个网格的维度与尺寸,与host端<<<>>>中的Ng相对应;gridDim.x,gridDim.y分别与Ng.x,Ng.y相等
修改为:
gridDim。grid dimension,用于说明整个网格的维度与尺寸,与host端<<<>>>中的Dg相对应;gridDim.x,gridDim.y分别与Dg.x,Dg.y相等
blockDim。block Dimension,用于说明每个block的维度与尺寸,与host端<<<>>>中的Nb对应;blockDim.x, blockDim.y, blockDim.z分别与Nb.x, Nb.y, Nb.z相等。
应为:
blockDim。block Dimension,用于说明每个block的维度与尺寸,与host端<<< >>>中的Db对应;blockDim.x,blockDim.y,blockDim.z分别与Db.x,Db.y,Db.z相等。
7. 第31页图2-8
右边的block标号应为(1,0)
见附件图
图2-8,图2-17
8. 第44页图2-17
右边的block标号应为(1,0)
见附件图
9. 第66页
“output[y * width + x] = tex2D[tex,tu, ty];”
修改为:
“output[y * width + x] =tex2D[texRef, tu, ty];”
10. 第72页
执行__thradfence_block()、__threadfence()或__syncthreads(),
修改为:
执行__threadfence()、__threadfence_block()、或__syncthreads(),
11. 第80页
cudaStreamDestroy(&stream[i]);
修改为:
cudaStreamDestroy(stream[i]);
12. 第81页
For (int i = 0; i < 2; ++i)
cudamemcpyasync(inputdevptr + i * size, hostptr + i * size,size,cudamemcpyhosttodevice, stream);
For (int i = 0; i < 2; ++i)
mykernel<<<100, 512, 0, stream>>>(outputdevptr + i* size, inputdevptr + i * size, size);
For (int i = 0; i < 2; ++i)
cudamemcpyasync(hostptr + i * size, outputdevptr + i * size,size,cudamemcpydevicetohost, stream);
Cudathreadsynchronize();
修改为:
for (int i = 0; i < 2; ++i)
cudamemcpyasync(inputdevptr + i * size/sizeof(float), hostptr + i *size/sizeof(float) ,size, cudamemcpyhosttodevice, stream);
for (int i = 0; i < 2; ++i)
mykernel<<<100, 512, 0, stream>>>(outputdevptr + i* size, inputdevptr + i * size, size);
For (int i = 0; i < 2; ++i)
cudamemcpyasync(hostptr + i * size/sizeof(float), outputdevptr + i *size/sizeof(float),size, cudamemcpydevicetohost, stream);
Cudathreadsynchronize();
13. 第133页
关于增加active block和active warp数量优化程序性能的讨论,请见本书4.6.2、4.6.3和4.6.4节。
修改为:
关于增加active block和active warp数量优化程序性能的讨论,请见本书4.3.2节。
14. 第137页
对图3-10的修改
图3-10 双发射时序示意图(不代表实际实现)
15. 第197页
“如果⊙为..”
修改为:
“如果⊕为..”
16. 第238页 规则添加里的第(3)条
(3)重启VS环境。
修改为:
(3)在工程名上右键,选择custom build rules->Find Existing,选中cuda.rules,点击ok。
17. 作者简介
张舒,电子科技大学信息与通信工程专业硕士,现任NVIDIA深圳有限公司系统设计验证工程师,CUDA技术顾问。曾实现基于CUDA的神经网络、聚类分析、主分量分析等模式识别算法,以及信号仿真、密码破解、字符串匹配等应用。
褚艳利,西安电子科技大学计算机系硕士在读,从事高性能计算、模型验证、软件测试与自演化技术的研发工作,喜欢并精于算法设计与数据结构,多次参加ACM/ICPC程序设计大赛与数模竞赛。CUDA编程及优化经验丰富,GPU高性能计算技术推广者。
赵开勇,本科毕业于北京理工大学飞行器总体设计专业,曾任CCUR(美国并行计算机公司)亚太区技术支持,现就读于香港浸会大学计算机系,主要从事高性能计算与网络编码技术的研究。在CSDN论坛中担任CUDA和高性能计算两个板块的大版主,积极推广高性能计算。同时担任浪潮集团GPU高性能开发顾问,提供各种应用的GPU高性能计算解决方案。任2009年Nvidia CUDA校园程序设计大赛评委。http://www.hpctech.com网站创始人之一。
张钰勃,长期从事数值计算,计算流体力学,计算机图形学及可视化等领域的研究,拥有丰富的GPU并行计算经验。曾在浙江大学CAD&CG国家重点实验室参与国家973研究项目并在国内外会议期刊发表多篇优秀论文。本科与硕士分别毕业于浙江大学数学系和香港浸会大学数学系,现于加州大学戴维斯分校攻读计算机博士学位。
- 《GPU高性能运算之CUDA》勘误表
- 《GPU高性能计算之CUDA》勘误表
- GPU高性能运算之CUDA
- CUDA: GPU高性能运算
- CUDA: GPU高性能运算
- GPU高性能运算之CUDA(china-pub 独家首发)
- 《gpu高性能运算之CUDA》matrixAssign例子调试
- GPU高性能运算之CUDA/第二章 CUDA基础1
- GPU高性能运算之CUDA/第二章 CUDA基础2
- GPU高性能计算之CUDA-第一章
- GPU高性能之实战CUDA
- 《GPU高性能运算之CUDA》我们的书总算出来了
- 从0开始学习《GPU高性能运算之CUDA》——1
- 从0开始学习《GPU高性能运算之CUDA》——2
- 从0开始学习《GPU高性能运算之CUDA》——3
- 点积运算--GPU高性能编程CUDA实战5.3
- GPU高性能运算
- 高性能计算之GPU CUDA培训【上海】
- 苹果分箱系统
- 关于设计的杂录、思考
- Linux查看系统状态-ZZT
- ubuntu下打开文本显示乱码解决方法(转)
- ss
- 《GPU高性能运算之CUDA》勘误表
- ASP.NET - CheckBox 和 CheckBoxList Web 服务器控件概述(上)
- POJ 1732 Phone numbers
- Linux平台下安装Apache (by quqi99)
- gridview中没有数据时显示表头
- 判断checkbox是否按下
- 今天遇到的来年各个问题,比较低级,高手勿看。
- ASP.NET - CheckBox 和 CheckBoxList Web 服务器控件概述(下)
- 2010 1 28 旅人的冒险与诗-风来人首次脱