matlab 中使用 GPU 加速運算
阿新 • • 發佈:2019-01-29
views mark amp int 希望 style ont color col
為了提高大規模數據處理的能力,matlab 的 GPU 並行計算,本質上是在 cuda 的基礎上開發的 wrapper,也就是說 matlab 目前只支持 NVIDIA 的顯卡。
1. GPU 硬件支持
首先想要在 matlab 中使用 GPU 加速運算,需要計算機配備有 NVIDIA 的顯卡,可在 matlab 中運行:
>> gpuDevice
- 1
如果本機有 GPU 支持,會列出 CUDADevice 的相關屬性。
2. GPU 和 CPU 之間的數據傳遞
-
gpuArray:將定義在 CPU 上的矩陣轉換為 GPU 模式;
X=rand(10,‘single‘);
- 1
- 2
- 3
-
gather:將 GPU 內存中的數據拷貝到 CPU 內存中
-
在一些函數中通過相關參數進行 GPU 支持;
- rand(10, ‘gpuArray’)
3. tips
-
有時候 GPU 受限於硬件架構,單精度的計算遠快於雙精度。這時候可以考慮在拷貝的時候順便轉換一下精度 A = gpuArray(single(B)) 以進一步提高運算速度 。
-
對於一些代碼結構較為復雜的程序,除了 matlab 提供的內置函數進行 GPU 加速外,matlab 還可調用 .cu 文件
- matlab + c/c++ 的混合編程能把 .c, .cc, .cpp 等文件編譯為可供使用的 mex 文件,
- 對於 cuda 程序(.cu),matlab 則可調用相關編譯工具,將其編譯為 .ptx 文件;
Matlab之GPU加速方法
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow
matlab 中使用 GPU 加速運算