建模

使用 OpenCL 顯卡解除安裝 Quant Finance 計算,我應該尋找哪些功能?

  • August 20, 2020

我正在對一些軟體進行基準測試,並且正在尋找更擅長並行乘法與並行加法的卡。

  • 是否有任何先前的工作可能包含此資訊?
  • 我應該尋找哪些 GPU 功能?

顯然,這取決於您的應用程序。如果您打算在單台機器上執行 Matlab 或 Python,並且您正在考慮購買哪種顯卡,那麼乘法與加法應該無關緊要。

在這種情況下,我會推薦具有CUDA功能的 Nvidia 卡。對於 CUDA,有很多可用的庫可以很容易地調整現有程式碼以在 GPU 上執行。當然,無論您的卡需要什麼,您都可以使用 SLI 添加更多 GPU 以獲得更高性能。

Mathworks 有一個很好的概述,可以幫助您入門。對於 Python,有PyCUDA,但我對此的經驗非常有限。對於 Java 和 C++,也有一些選項,但我從未使用過這些選項。

所有這一切的缺點是您的程式碼的可移植性較差,因為您需要使用 gpuArrays(在 Matlab 中),因此如果沒有 CUDA-Configuration 的人嘗試執行程式碼,它將失敗。我還沒有找到解決這個問題的優雅方法(!=我的老闆坐在我的辦公桌前……)

我已經涉獵了一點。OpenCL 設備應該可以正常工作 - 即使您使用 NVidia。實際上,我將所有三個供應商都放在一台機器上進行測試,配備 NVidia、AMD 和 Intel GPU。對於像 Quant 這樣的基本並行向量數學,它們都很好。不同之處在於受支持的 OpenCL 版本。

NVidia 製造了一些最好的設備,但他們顯然不太關心 OpenCL,因為他們有 CUDA,所以他們通常只支持 OpenCL v1.2。

AMD 和 Intel 在 OpenCL v2.0+ 方面表現出色,Intel 很快就會發布對 v3.0 的支持。如果您只是想學習,即使是內置的英特爾 GPU 也能很好地做到這一點。

也就是說,對於大規模的基本算術,它們中的任何一個通常都適用於整數和 16/32/64 位浮點算術。您還可以使用 OpenCL 加速數據集的最小/最大操作。只需查看那裡的經典 SAXPY 範例核心即可。我認為您不需要比在所有最常見的 GPU 上執行的 OpenCL v1.2 更新的任何東西。我經常在所有三個上執行相同的程式碼來測試兼容性。

從此處的 SAXPY 範例開始:https ://anteru.net/blog/2012/getting-started-with-opencl-part-2/

我在這裡寫我自己的版本:https ://medium.com/hashicorp-engineering/all-things-gpu-part-2-4ac1c30a20ed

希望這可以幫助某人。

引用自:https://quant.stackexchange.com/questions/4750