其實這個問題糾結很久了,很多版本也不一樣,現在也不是很清楚,把現在的情況整理一下吧;
1、首先通過通過gpu-z或者cuda-z會看到有多少個流多處理器、多少個流處理器、每個流多處理器會有多少個threads,每個block至少多少個threads等,關鍵是執行緒的分配問題,是不是乙個sp(流處理器)執行乙個執行緒,那麼多少個sp就只能執行多少個執行緒,不是這樣的。
2、首先分配上根據乙個sm最大執行緒數去合理分配多少個block和thread,每個block中的thread不要超過最大值,其次最好的32(乙個warp)的整數倍,所以還是比較自由,沒有固定的劃分。(自己的理解)
3、sp組只負責執行指令,而執行緒概念是由scheduler一層維護的。scheduler將warp佇列中就緒的warp的當前可執行的1~2條指令分發給sp組(或者其他執行單元)執行,所以有多少個sp,就執行多少執行緒,只是執行當前所需執行的warp中的的執行緒指令。(群裡的回答)
歡迎批評指正!
關於多執行緒的問題
void ccopydlg onbutton2 得到原始檔的位元組數 dword sz getfilesize void sourcefile.m hfile,null 為每個執行緒分配任務 dword amount sz 4 pra.count amount unsigned long tid0 ...
關於執行緒的問題 併發?
前言 在執行測試用例的時候,經常會考慮到併發執行測試用例的情況。通常會使用testng的套件來解決多個用例的執行,但在testng的套件執行中,會有這樣乙個問題,我在乙個testng的case裡新建兩個webdriver,再做操作,他們就會衝突。然後其中乙個會死掉。如果我們直接用testng的多執行...
關於android 執行緒的銷毀問題
最近在做乙個android上的遊戲,用到了多個執行緒,當一切準備基本完成時出現了乙個小問題,選擇退出時finish掉了乙個activity但是裡面的執行緒卻沒辦法結束掉,因此就算退出了遊戲等到執行緒結束時該執行的頁面還是會跳出乙個activity,原來finish乙個activity並不能結束掉乙個...