《GPU高性能计算之CUDA》勘误表
来源:互联网 发布:true color是什么软件 编辑:程序博客网 时间:2024/05/01 22:03
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
现代 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
- 《GPU高性能计算之CUDA》勘误表
- 《GPU高性能运算之CUDA》勘误表
- GPU高性能计算之CUDA-第一章
- 高性能计算之GPU CUDA培训【上海】
- GPU高性能之实战CUDA
- GPU高性能运算之CUDA
- 《MIC高性能计算编程指南》勘误表
- 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实战-代码
- 高性能计算汇总-Mpi,openMpi,tbb,CUDA,OpenCL等并行计算或cpu,gpu混合计算技术
- 《GPU高性能编程 CUDA实战》(CUDA By Example)读书笔记
- 福禄克FLUKE302 美国福禄克钳形表
- 二 ARM9(S3C2440)的IO口——理论知识及程序实例
- 三 ARM9(S3C2440)的串口UART——理论知识
- (VB)定时更换(IE)代理IP(代理轮换)
- 组合索引怎么应该怎么选取引导列?
- 《GPU高性能计算之CUDA》勘误表
- CentOS下lvs_dr方式配置
- 三 ARM9(S3C2440)的串口UART——程序实例讲解
- javaScript document对象详解
- POJ 2243 Knight Moves
- C# 中 string.Empty、""、null的区别
- extjs 之columntree 自定义分页工具条
- 土豆网一波三折 终于定于本月中旬上市纳斯达克
- 低调发布一个百度谷歌关键字搜索工具