2014-04-22 104 views
3

與不同的nvidia顯卡集合,它有不同數量的流多處理器和每個流處理器中具有不同數量的核心的處理器的不同規格。流多處理器,每個流處理器的核心cuda

線程塊根據設備的容量分配給單個處理器,如 1塊32經線或2塊16經線。

但我無法理解每個流處理器中的內核數量。 什麼是在每個流處理器有更大的數字核心設備的意義?

我想我們需要更好地利用設備屬性更好的優化

Actially如何在CUDA程序與關於流處理器和每個流處理器核心設備流動??/

回答

1

在每個流處理器中具有更大數量內核的設備的意義何在?

每個SM的內核數量大致表示在任何給定的時鐘週期內可以處理多少個warp指令。單個warp指令可以在任何給定的時鐘週期內處理,但需要32個內核才能完成(並且可能需要多個時鐘週期才能完成,具體取決於指令)。具有32個「內核」的cc2.0 fermi SM可以在每個時鐘最多1條指令(平均每2個時鐘實際上有2條指令)退出。具有192個內核的開普勒SMX可以在每個時鐘中退出4條或更多條指令。有關更精確的答案,請參閱編程指南的計算能力體系結構部分,並注意每個計算能力都有一個部分,其中有一個部分爲1.02.03.0

Actially如何在CUDA程序與關於流處理器和每個流處理器核心設備流動??/

這個問題已經在CUDA標籤回答許多倍。與內核啓動關聯的網格中的每個線程塊都分配給一個SM(當SM有空閒插槽時)。然後,SM將線程塊「解包」爲翹曲,並在SM內部資源(例如,「核心」和特殊功能單元)上安排變形指令,因爲這些資源變得可用。