天天看點

CUDA學習(八十二)

計算能力:

計算裝置的一般規格和功能取決于其計算能力(請參閱計算能力)。

表13給出了與每個計算能力相關的功能和技術規格:

CUDA學習(八十二)
CUDA學習(八十二)

表14每個計算能力的技術規格:

CUDA學習(八十二)
CUDA學習(八十二)
CUDA學習(八十二)
CUDA學習(八十二)

浮點标準:

所有計算裝置均遵循IEEE 754-2008二進制浮點運算标準,并具有以下偏差:

沒有動态可配置的舍入模式; 然而,大多數操作支援多種IEEE舍入模式,通過裝置内在函數暴露出來;

沒有檢測到發生浮點異常的機制,并且所有操作的行為就像IEEE-754異常總是被屏蔽一樣,并且如果存在異常事件則傳遞IEEE-754定義的屏蔽響應; 出于同樣的原因,雖然SNaN編碼得到支援,但它們不是信号傳輸,并且處理得很安靜;

涉及一個或多個輸入NaN的單精度浮點運算的結果是位模式為0x7fffffff的安靜NaN;

對于NaN,雙精度浮點絕對值和負值不符合IEEE-754; 這些通過不變;

必須使用-ftz = false,-prec-div = true和-prec-sqrt = true編譯代碼以確定符合IEEE标準(這是預設設定;有關這些編譯标志的說明,請參閱nvcc使用者手冊)。

無論編譯器标志-ftz的設定如何:

全局存儲器上的原子單精度浮點加法總是以清零模式運作,即,其行為等同于FADD.F32.FTZ.RN,

共享記憶體上的原子單精度浮點加法總是以非規範支援操作,即,表現等同于FADD.F32.RN.

根據IEEE-754R标準,如果fminf(),fmin(),fmaxf()或fmax()的輸入參數之一是NaN,但不是另一個,則結果是非NaN參數。

在浮點值超出整數格式範圍的情況下,将浮點值轉換為整數值由IEEE-754決定。 對于計算裝置,其行為是限制到支援的範圍的末尾。 這與x86架構行為不同。

IEEE-754未定義整數除零和整數溢出行為。 對于計算裝置而言,沒有機制來檢測是否發生了這種整數運算異常。 整數除以零産生未指定的機器特定值。

CUDA學習(八十二)

繼續閱讀