當前位置:編程學習大全網 - 編程軟體 - CUDA裏壹個WARP中有32個線程,SM裏有48個SP,每個SP對應壹個線程?

CUDA裏壹個WARP中有32個線程,SM裏有48個SP,每個SP對應壹個線程?

妳好,

並行度是很復雜、很難估計的,它和很多因素有關,不能單從SP的數量來判斷。壹個SM最多有48個SP可以同時運行,它們執行同樣的指令或者休眠,但是並不是說它們每壹個負責壹個block或者thread的運算。實際上,threads是按warp為單位執行的,壹個warp有32個threads。壹個SM可以最多有48個warp是active的,但是由於壹個GPU時鐘時間內可以執行的指令非常有限,所以這些warp不是全部並行執行的,而是隨著GPU時鐘來回切換執行,這個機制很復雜,是由GPU自己來部署的。所以,比較這種並行度是很難的,壹般不這樣比也不這樣去考慮並行運算。

如果是單壹的GPU優化問題,那就是比程序的吞吐量(throughput)和GPU最大吞吐量之間 (peak throughput)的差值,看壹下優化的程度是不是好,越靠近最大吞吐量的優化就越好。如果只是做了壹個加速的可能性,那麽就比較加速比就可以了。

在實際編程中,妳其實只需要考慮CUDA編程指南上面提到的那些優化方法就行了,比如增大occupancy,instruction level parallelism(指令級並行)等等就足夠了。

謝謝,望采納

  • 上一篇:str1編程是什麽意思
  • 下一篇:軟件開發好學嗎,未來前景如何?
  • copyright 2024編程學習大全網