arrayfun
关数gpu上上配列の各要素にするするする
说明
メモ
この関数の動作は MATLAB®关数arrayfun
cpu gpuではなくではなくではなく,,关数のではなくではなくではなく行われる点点でで异なり异なりまだまだまだまだまだ。。。。。。。上上上上にははははははははgpuででされ。すべての出力引数はははははオブジェクトオブジェクトオブジェクトオブジェクト收集
を使用して gpuArray データを取得できます。
は,关数b
= arrayfun(FUN
,,,,一个
)FUN
を gpuArray一个
の各に适用ます。次にarrayfun
はFUN
の出力を連結して gpuArrayb
の出力生成します。b
は一个
と同じサイズ,b(i,j,...) = FUN(A(i,j,...))
です。入力引数FUN
1つのつの引数を受け入れ,スカラー値を返す返す返す关数关数关数关数ハンドルですですFUN
は,一个
の要素と同じ呼び出されます。
arrayfun
でのb
の要素顺序指定たり特定顺序でされる要素に依存依存したりするすることはできでき
例
入力引数
出力引数
ヒント
GPU で特定の関数を呼び出すために最初に
arrayfun
を呼び出すで,,実行のためのに若干のオーバーヘッドヘッド时间が発生しします。同じ同じ关数关数をarrayfun
の呼び出しでは、処理速度が向上します。入力配列さががでないでないは他入力大き大きさががががでないでないでないでないでないとと一致なければばなりませませませんん
一个1,,,,。。。,,,,一个n
はサイズが互いに等しいか、1 でなければなりません。入力配列の次元がシングルトン (1
と等価) である場合は常に、arrayfun
1のますます大きさ大きさがががのの次元にてて実质実质的的にに复制复制复制しし,,その次元次元のサイズサイズサイズをを最大のの他ののの配列配列一致一致1で,引数の対応するがであるである,arrayfun
は実質的に大きさが 1 の次元を0
に减じます。出力配列
b
の各次元は、非ゼロ サイズの次元では入力配列のうち最大の配列と同じサイズに、それ以外ではゼロになります。次のコードは、サイズ1
の次元を、他の引数内の対応する次元のサイズと一致させるためにどのように増減しているかを示します。r1 = rand(2,5,4,“ gpuarray”);r2 = rand(2,1,4,3,“ gpuarray”);r3 = rand(1,5,4,3,“ gpuarray”);r= arrayfun(@(x,y,z)(x+y.*z),R1,R2,R3); size(R)
2 5 4 3
r1 = rand(2,2,0,4,“ gpuarray”);r2 = rand(2,1,1,4,“ gpuarray”);r= arrayfun(@plus,R1,R2); size(R)
2 2 0 4
arrayfun
によりサポートて演算演算厳密に要素であり,各の各计算计算はは他他他のの要素ととしして実行実行実行さされるためため入出力配列形状サイズはできません。
兰德
などの关数,サイズををいん。。乱数の配列配列は,要素ごとにに独立独立ししした
MATLABの
arrayfun
と同様に、行列のべき乗、乗算および除算 (^
,*
,/
,\ \
)では要素単位の計算のみが実行されます。入出力配列(
cat
,重塑
など)のまたはを変更する演算されていんん読み取り専用のインデックス付け (
subsref
)と,の亲()关数外侧关数关数スペースの変数アクセスアクセスがサポートサポートさされています。。。。。ででで关数を评価评価入れ子关数中このな変数をしたりそれをsubasgn
インデックス化はサポートさません。されいる使用法の例は,gpuでの演算を参照しください。无名关数そののワークスペースにアクセスできません。
サポートさいる关数オーバーロードは许可れ。。。
コードからをことはできませ。。
代入されていない計算結果を格納する
ans
変数はん必ずすべての结果を的変数に代入代入ます。サポートされていない言語機能として、永続変数またはグローバル変数、
parfor
,SPMD
,switch
,try
およびcatch
が挙げられ。pコードファイル,,,データデータデータある
arrayfun
の呼び出し含めることできません。