CUDA流多处理器(stream multiprocessor,sm)和硬件流处理器(stream processor,sp)
SM是一種單指令多線程((single Instruction MultipleThread,SIMT)架構的處理器,類似單指令流多數據流(SIMD)的特點,含有指令發射單元,及若干個流處理器(streamingProcessor,sp)或標量處理器(Scalarproeessor,SP),特殊函數處理器(speeial Funetion Proeessor,SFU),可快速訪問的共享存儲器(shared memory)以及指令和常量(constant)緩存”。
真正進行運算操作的就是流處理器SP,包含有浮點及整數處理單元和寄存器,可以進行浮點數的乘加/乘/加(FMAD/FMUL/FADD),整數的加/乘/比較/移位(ADD/MUL/CMP/MOVE)等操作”。
在cuda編程中,可用如下庫函數獲得顯卡的相關參數信息。
其中,prop.multiProcessorCount,prop.maxThreadsPerMultiProcessor 分別指設備上的流多處理器(SM)的數量和每個流多處理器(SM)最大線程數量。
在費米構架中,每個流多處理器中運算單元(SM,或Cores)與計算GPU能力相關:
Compute Capability <= 1.3 –> 8 CUDA Cores / SM
CC == 2.0 –> 32 CUDA cores / SM
CC == 2.1 –> 48 CUDA cores / SM
并且有Multiprocessors x Cores/MP = Cores
于是筆者算著自己電腦里GeForce 630 顯卡的流多處理器數量數2,運算單元數是96,即每個流多處理器中運算單元數是48。更多顯卡的詳細參數和最大并行執行線程數量相關問題請參考下面的鏈接。
http://en.wikipedia.org/
http://stackoverflow.com
總結
以上是生活随笔為你收集整理的CUDA流多处理器(stream multiprocessor,sm)和硬件流处理器(stream processor,sp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle trim函数用法详解
- 下一篇: send()函数recv()函数详解