ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

GPU での要素単位の演算の実行

この例では、処理するデータと演算の両方を GPU に送信する関数を使用して GPU 上で要素単位またはピクセル ベースの演算を実行する方法を説明します。この方法は、2 つ以上のデータセットを必要とする要素単位の演算で最も効果的です。

gpuArray オブジェクトを作成することにより、データを CPU から GPU に移動します。

I = imread('concordaerial.png');
Igpu = gpuArray(I); 

要素単位の演算を実行するカスタム関数を作成します。この例では、重み付けされた RGB データを使用して、カスタムのグレースケール変換関数を作成します。

function gray = rgb2gray_custom(r,g,b)
gray = 0.5*r + 0.25*g + 0.25*b;

GPU で演算を実行します。arrayfun を使用して、ハンドルをカスタム関数に、データ オブジェクトを GPU に渡して評価します。

Igray_gpu = arrayfun(@rgb2gray_custom,Igpu(:,:,1),Igpu (:,:,2),Igpu(:,:,3));

関数 gather を使用して、データを GPU から CPU に戻します。

I_gpuresult = gather(Igray_gpu);