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

 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 );

修改为:

cudaStreamDestroy(stream);

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值