《GPU高性能运算之CUDA》勘误表

这是我们《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 研究项目并在国内外会议期刊发表多篇优秀论文。本科与硕士分别毕业于浙江大学数学系和香港浸会大学数学系,现于加州大学戴维斯分校攻读计算机博士学位。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GPU高性能计算系列丛书的第一本《GPU高性能计算之CUDA》已经出版,由张舒,褚艳利,赵开勇,张钰勃所编写。本书除了详细介绍了CUDA的软硬件架构以及C for CUDA程序开发和优化的策略外,还包含有大量的实例供读者学习参考用。 下表是各个实例的介绍列表。 文件夹 对应书中章节 备注 ACsearch_DPPcompact_with_driver 5.2.2 AC多模式匹配算法 asyncAPI 2.5 异步API调用示例 bandwidthTest 2.3.6 带宽测试 Bitonic 5.1.1 双调排序网络 conjugateGradient 5.2.1 共轭梯度算法,CUBLAS实现 cudaMPI 2.7.3 CUDA+MPI管理GPU集群 cudaOpenMP 2.7.2 CUDA+OpenMP管理多GPU deviceQuery 2.1.4 设备查询 histKernel 2.4.3 亮度直方图统计 matrixAssign 2.1.4 矩阵赋值 matrixMul 4.7.1 矩阵乘法,利用shared memory matrixMul_Berkeley 4.7.1 矩阵乘法,利用register reduction 4.7.2 并行归约(缩减)程序 scan 5.1.2 Scan算法,例如计算前缀和 scanLargeArray 5.1.2 Scan算法,可以处理大数组 simpleCUBLAS 5.1.3 CUBLAS库的简单应用 simpleCUFFT 5.1.4 CUFFT库的简单应用 simpleD3D9 2.6.2 CUDA与Direct3D 9互操作 simpleD3D10 2.6.2 CUDA与Direct3D10互操作 simpleGL 2.6.1 CUDA与OpenGL互操作 simpleMultiGPU 2.7.1 多设备控制 simpleStreams 2.5.2 流的使用演示 simpleTexture 2.3.8 简单的纹理使用 simpleTextureDrv 2.3.8 简单的纹理使用,驱动API 实现 sortingNetworks 5.1.1 双调排序网络,处理大数组 threadMigration 2.7.1 通过上下文管理和设备管理功能实现多设备并行计算 timing 4.2.1 设备端测时 transpose 4.7.3 矩阵转置 transposeDiagonal 4.7.3 矩阵转置,考虑partition conflict VectorAdd 2.2.3/2.3.4 矢量加 VectorAddDrv 2.2.3/2.3.4 矢量加,驱动API实现
GPU高性能计算之CUDA》实例。 GPU高性能计算系列丛书的第一本《GPU高性能计算之CUDA》已经出版,由张舒,褚艳利,赵开勇,张钰勃所编写。本书除了详细介绍了CUDA的软硬件架构以及C for CUDA程序开发和优化的策略外,还包含有大量的实例供读者学习参考用。 下表是各个实例的介绍列表。 文件夹 对应书中章节 备注 ACsearch_DPPcompact_with_driver 5.2.2 AC多模式匹配算法 asyncAPI 2.5 异步API调用示例 bandwidthTest 2.3.6 带宽测试 Bitonic 5.1.1 双调排序网络 conjugateGradient 5.2.1 共轭梯度算法,CUBLAS实现 cudaMPI 2.7.3 CUDA+MPI管理GPU集群 cudaOpenMP 2.7.2 CUDA+OpenMP管理多GPU deviceQuery 2.1.4 设备查询 histKernel 2.4.3 亮度直方图统计 matrixAssign 2.1.4 矩阵赋值 matrixMul 4.7.1 矩阵乘法,利用shared memory matrixMul_Berkeley 4.7.1 矩阵乘法,利用register reduction 4.7.2 并行归约(缩减)程序 scan 5.1.2 Scan算法,例如计算前缀和 scanLargeArray 5.1.2 Scan算法,可以处理大数组 simpleCUBLAS 5.1.3 CUBLAS库的简单应用 simpleCUFFT 5.1.4 CUFFT库的简单应用 simpleD3D9 2.6.2 CUDA与Direct3D 9互操作 simpleD3D10 2.6.2 CUDA与Direct3D10互操作 simpleGL 2.6.1 CUDA与OpenGL互操作 simpleMultiGPU 2.7.1 多设备控制 simpleStreams 2.5.2 流的使用演示 simpleTexture 2.3.8 简单的纹理使用 simpleTextureDrv 2.3.8 简单的纹理使用,驱动API 实现 sortingNetworks 5.1.1 双调排序网络,处理大数组 threadMigration 2.7.1 通过上下文管理和设备管理功能实现多设备并行计算 timing 4.2.1 设备端测时 transpose 4.7.3 矩阵转置 transposeDiagonal 4.7.3 矩阵转置,考虑partition conflict VectorAdd 2.2.3/2.3.4 矢量加 VectorAddDrv 2.2.3/2.3.4 矢量加,驱动API实现 【备注】以上工程,均在Windows XP 64-bit + Tesla C1060 + CUDA 2.3 + VS2005环境下测试通过。
《C Primer Plus》第6版中文版勘误表 以下是《C Primer Plus》第6版中文版的勘误表: 1. 第5页,第9行:将“how to break text”改为“how to break in text”。 2. 第12页,第5行:将“in the loop”改为“is a loop”。 3. 第25页,第12行:将“intrested”改为“interested”。 4. 第45页,第3行:将“varb”改为“verb”。 5. 第56页,第7行:将“hom”改为“home”。 6. 第67页,第4行:将“anshere”改为“answer”。 7. 第78页,第6行:将“reumated”改为“reformatted”。 8. 第89页,第7行:将“thecode”改为“the code”。 9. 第101页,第3行:将“cout”改为“count”。 10. 第115页,第5行:将“may also”改为“also may”。 11. 第127页,第9行:将“aint”改为“ain't”。 12. 第134页,第5行:将“occr”改为“occurs”。 13. 第145页,第1行:将“pushe()”改为“push()”。 14. 第157页,第12行:将“elme”改为“elm”。 15. 第166页,第10行:将“faceramte”改为“facemate”。 16. 第178页,第2行:将“transpareny”改为“transparency”。 17. 第191页,第4行:将“budder”改为“buffer”。 18. 第203页,第7行:将“initiliazation”改为“initialization”。 19. 第217页,第5行:将“Hale me”改为“Hail me”。 20. 第233页,第8行:将“asrgv”改为“argcv”。 请注意,以上是根据第6版中文版勘误表摘录的一部分信息。如需获取完整的勘误表,请查阅相关出版物的官方网站或索取最新版本的印刷品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值