このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
GPU でのピクセル ベースの演算の実行
この例では、処理するデータと演算の両方を GPU に送信する関数を使用して GPU 上でピクセル ベースの演算を実行する方法を説明します。この方法は、2 つ以上のデータセットを必要とする要素単位の演算で最も効果的です。
イメージを読み取って表示します。
I = imread("strawberries.jpg");
imshow(I)
gpuArray
(Parallel Computing Toolbox) オブジェクトを作成することにより、データを CPU から GPU に移動します。
Igpu = gpuArray(I);
GPU で演算を実行します。この例では、カスタマイズした赤、緑、青のカラー チャネルの重みを使用して RGB イメージをグレースケール イメージに変換する、rgb2gray_custom
というカスタム関数を定義します。この関数の定義は、この例の終わりで行います。関数 arrayfun
(Parallel Computing Toolbox) を使用して、ハンドルをカスタム関数に、データを GPU に渡して評価します。
Igray_gpu = arrayfun(@rgb2gray_custom, ...
Igpu(:,:,1),Igpu(:,:,2),Igpu(:,:,3));
関数 gather
(Parallel Computing Toolbox) を使用して、データを GPU から CPU に戻します。
Igray = gather(Igray_gpu);
結果を表示します。
imshow(Igray)
サポート対象の関数
補助関数 rgb2gray_custom
は 3 つのチャネルの線形結合を取り、単一チャネルの出力イメージを返します。
function gray = rgb2gray_custom(r,g,b) gray = 0.5*r + 0.25*g + 0.25*b; end
参考
gpuArray
(Parallel Computing Toolbox) | gather
(Parallel Computing Toolbox) | arrayfun
(Parallel Computing Toolbox)
関連する例
詳細
- GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)
- GPU コンピューティングをサポートする関数