為什麼這篇cuda核心數鄉民發文收入到精華區:因為在cuda核心數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者icbruce (justlikethis)看板C_and_CPP標題Re: [問題] 同程式 ...
cuda核心數 在 4Gamers編輯部 Instagram 的最佳貼文
2021-03-08 07:01:34
繼先前傳出 NVIDIA 計畫復活 GeForce RTX 3080 Ti,現在更多訊息指出 RTX 3060 12GB / 6GB 預定於 2021 年 1 月推出,RTX 3080 Ti 20GB 推遲至 2 月登場。 原本 NVIDIA 打算推出 20GB 版本的 RTX 3080,但因...
※ 引述《k387259 (台灣李宏感)》之銘言:
: 大家好
: 想請問cuda核心數量與運算處理速度的差異
: 我在網路上有抓到一隻程式
: 目前也感覺他把平行化處理的很好
: 用了兩張卡測試(用CUDA-Z看的)
: GTX760 CUDA核心1152 處理速度1084M Hz
: Quadro K5000 CUDA核心1536 處理速度740M Hz
: 在K5000上"明顯"低於GTX760
: (K5000 FPS:30 GTX760 FPS:60)
: 處理速度的差異我知道
: 但想詢問核心數目的差異到底在哪
: 是GPU上運算部分可以平行化處理的東西更多嗎?
是!
就像是可以簡單想成總共有幾個人可以同時幫你做事。
: 但是我用CUDA-Z看thread和grid數量一樣
: 核心多/處理慢 跟 核心少/處理慢
: gpu運算的code內要怎麼處理會比較好呢?
CUDA Optimize 考量因素非常多,
在分配 thread block grid 上就必須要去看硬體的規格,
例如thread 要能整除一個 wrap同時執行的核心數(通常是32)、
block要多過那張卡上SM的數量,讓CUDA運算可以滿載。
記憶體的部分也非常重要
GPU上的記憶體,分為Global memory, share memory, register memory 等 (不懂就查)
你怎麼把你的要用的擺在相對應的記憶體區塊,
如果想要更快,可以考慮memory alignment 、memory coalesce
一般而言,你如果能把你要運算的資料一口氣放入share memory裡面,
避免在運算過程中 access global memory 這樣是最完美的。
也可以考慮stream (overlap).
如果不想要那麼麻煩的寫CUDA,也可以看看OpenACC,就像openmp一樣地去加#就行了。
加油!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.237.51
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1415862109.A.047.html