2014-07-08 27 views

回答

3

如果您的數據已經裝在由一個SIMD視頻教學本身處理的格式,那就需要多個步驟來解壓縮,以便它可以通過一個普通的指令進行處理。

此外,SIMD視頻教學的吞吐量也應根據實際操作的數量乘以普通算術操作比較時,它執行。

例如,對於指令vadd4,正在打包的32位數量(4字節整數量數)上執行4個整數加法。爲了用普通的整數相加來複制這種行爲,需要一個相當複雜的指令序列來將數據解包成4個數量,做4個整數相加,然後重新打包結果。如果你試圖用單個整數加起來,從一個結果進行可能會破壞下一個結果。 vadd4也提供了鉗位功能和其他整數加法不可用的行爲。

在SM2.0的情況下,只有vadd4執行的4個操作與4個整數的比例對解包數據的增加是必要的,這將使其具有吸引力。在SM3.0的情況下,當解包和打包被添加到普通整數添加例程時,vadd4看起來很有吸引力。情況變得更加有吸引力with cc 5.0

+0

在大多數情況下,例如圖像過濾器,從8位輸入開始和所需的數據的若干操作多於8位(通常最多16個)。從我的角度來看,只有在這樣的過程結束時纔有用。最常用的將是vadd2。同樣,如果中間值不超過16位並且可以是正數,則可以用普通算術執行「SIMD樣」添加或移位。另外可能會有用[多字節算術](http://www.hackersdelight.org/corres.txt) – BaraBashkaD

+1

對於某些用例,您可能需要重新計算一點計算量以便更好地使用SIMD指令。以下論文展示了四維逐字節SIMD操作在計算生物學中的關鍵計算中的應用,導致顯着的加速:http://www.biomedcentral.com/1471-2105/14/117 – njuffa

+0

NVIDIA還提供已註冊的開發者[一組嵌入式PTX SIMD函數](https://developer.nvidia.com/rdp/assets/simd-functions),這些開發者在開普勒上進行了硬件加速,這對於那些考慮SIMD視頻指令的人可能會感興趣。 –