Re: [問題] 同程式 CUDA核心數量與速度問題
看板C_and_CPP (C/C++)作者icbruce (justlikethis)時間11年前 (2014/11/13 15:01)推噓4(4推 0噓 16→)留言20則, 3人參與討論串2/2 (看更多)
※ 引述《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
推
11/13 16:52, , 1F
11/13 16:52, 1F
→
11/13 16:52, , 2F
11/13 16:52, 2F
→
11/13 16:53, , 3F
11/13 16:53, 3F
→
11/13 16:55, , 4F
11/13 16:55, 4F
→
11/13 16:55, , 5F
11/13 16:55, 5F
→
11/13 16:55, , 6F
11/13 16:55, 6F
→
11/14 15:13, , 7F
11/14 15:13, 7F
→
11/14 15:14, , 8F
11/14 15:14, 8F
→
11/14 20:52, , 9F
11/14 20:52, 9F
推
11/14 20:53, , 10F
11/14 20:53, 10F
→
11/14 20:54, , 11F
11/14 20:54, 11F
→
11/14 20:56, , 12F
11/14 20:56, 12F
→
11/14 20:56, , 13F
11/14 20:56, 13F
→
11/14 20:59, , 14F
11/14 20:59, 14F
→
11/14 21:00, , 15F
11/14 21:00, 15F
→
11/14 21:01, , 16F
11/14 21:01, 16F
推
11/14 21:10, , 17F
11/14 21:10, 17F
推
11/14 22:13, , 18F
11/14 22:13, 18F
→
11/14 22:14, , 19F
11/14 22:14, 19F
→
11/14 22:14, , 20F
11/14 22:14, 20F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章