「Matrix Multiply命令」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の5版が非表示) | |||
| 1行目: | 1行目: | ||
'''Matrix Multiply命令''' | '''Matrix Multiply命令'''(行列乗算命令)とは、行列Aの行と行列Bの列の要素をそれぞれ乗算し、その結果を加算して新しい行列Cの要素を求める演算です。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
| 7行目: | 5行目: | ||
{ | { | ||
var result = new Matrix4x4(); | var result = new Matrix4x4(); | ||
for (int i = 0; i < 4; i++) | for (int i = 0; i < 4; i++) | ||
{ | { | ||
| 18行目: | 17行目: | ||
} | } | ||
} | } | ||
return result; | return result; | ||
} | } | ||
| 26行目: | 26行目: | ||
この演算はデジタル信号処理や科学計算などで非常に多く使用される基本的な演算です。 | この演算はデジタル信号処理や科学計算などで非常に多く使用される基本的な演算です。 | ||
3DCGでは主に座標変換(回転、拡大縮小、平行移動)で使われる演算です。[[ゲーム]]でいえばキャラクターの移動処理(表示位置を決める処理)です。この処理が高負荷になることはそれほどありません。そのため[[スマホ]]向けなどの小規模な[[GPU]]では[[CPU]]の[[SIMD演算]]に同命令がある前提で省略されていることが多いです。 | |||
一方で昨今大流行している[[機械学習]]や[[人工知能]]では同命令は「主たる演算」となっています。このため[[パソコン]]向けの[[GPU]]では同命令の回路規模がどんどん大きくなっており、業務用の人工知能特化型をうたう[[GPU]]にいたっては[[テクスチャーマッピングユニット]]などを激減させてこの回路を盛り盛りしたものなどが登場しています。 | 一方で昨今大流行している[[機械学習]]や[[人工知能]]では同命令は「主たる演算」となっています。このため[[パソコン]]向けの[[GPU]]では同命令の回路規模がどんどん大きくなっており、業務用の人工知能特化型をうたう[[GPU]]にいたっては[[テクスチャーマッピングユニット]]などを激減させてこの回路を盛り盛りしたものなどが登場しています。 | ||
[[category: GPU]] | |||
[[category: CPU]] | |||
[[category: 行列]] | |||
2024年8月21日 (水) 05:39時点における最新版
Matrix Multiply命令(行列乗算命令)とは、行列Aの行と行列Bの列の要素をそれぞれ乗算し、その結果を加算して新しい行列Cの要素を求める演算です。
static Matrix4x4 Multiply(Matrix4x4 a, Matrix4x4 b)
{
var result = new Matrix4x4();
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
result[i, j] = 0;
for (int k = 0; k < 4; k++)
{
result[i, j] += a[i, k] * b[k, j];
}
}
}
return result;
}
上記では幾重にも重なる強烈なループ処理となっていますが、昨今のCPUやGPUでは1命令で実行できるSIMD演算化されているのが一般的です。
この演算はデジタル信号処理や科学計算などで非常に多く使用される基本的な演算です。
3DCGでは主に座標変換(回転、拡大縮小、平行移動)で使われる演算です。ゲームでいえばキャラクターの移動処理(表示位置を決める処理)です。この処理が高負荷になることはそれほどありません。そのためスマホ向けなどの小規模なGPUではCPUのSIMD演算に同命令がある前提で省略されていることが多いです。
一方で昨今大流行している機械学習や人工知能では同命令は「主たる演算」となっています。このためパソコン向けのGPUでは同命令の回路規模がどんどん大きくなっており、業務用の人工知能特化型をうたうGPUにいたってはテクスチャーマッピングユニットなどを激減させてこの回路を盛り盛りしたものなどが登場しています。