《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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章