1. 程式人生 > >matlab 中使用 GPU 加速運算

matlab 中使用 GPU 加速運算

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‘); 
    GX=gpuArray(X); GX2=GX.*GX;
    • 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 加速運算