我知道,對於Intel來說,矢量寄存器是優化的,例如, SandyBridge微架構(SSE + AVX),但NVIDIA的GPU如何?我在某處讀過的一些資源(我忘記了在哪裏)說使用矢量寄存器對NVIDIA的GPU沒有任何用處。但是我有一個testrun在GPU上運行一個帶有向量寄存器的程序,並且與其中的一個進行比較,他們確實給了我apx。 1.7倍加速。OpenCL:NVIDIA的矢量寄存器(float4,float8,..)VS英特爾的矢量寄存器
僅供參考對於相同的程序,英特爾的CPU只提供1.25倍的加速比。
因此,如果NVIDIA確實優化了這些向量寄存器,有人可以給我一個解釋或來源閱讀嗎?我需要它來獲取文檔。謝謝。
NVIDIA GPU上性能提升的可能來源將是內存吞吐量。硬件可以在每個多處理器的單個事務中爲64位和128位類型進行存儲和加載,從而減少總體延遲並提高有效吞吐量。 – talonmies 2012-02-11 16:14:04
感謝您的回覆。你的意思是16個加載/存儲單元?每個單元可以加載/存儲每個warp 128位類型? (因此使它成爲16x128)。如果沒有,我認爲情況並非如此。因爲隱式向量寄存器的使用(convert_floatn,vloadn等)確實有所作爲。它提供了更好的加速。 – ardiyu07 2012-02-12 01:29:15
是的。硬件可以處理每個warp 256和512字節的事務大小。這可以導致在任何給定的佔用水平下更高的帶寬利用率。請參閱[這些幻燈片]的幻燈片35(http://www.cs.berkeley.edu/~volkov/volkov10-GTC.pdf)(note pdf),以瞭解CUDA中的memcpy內核示例,其中說明了該效果。 – talonmies 2012-02-12 07:45:34