ホーム
おまかせ表示
ログイン
設定
MonoBookについて
免責事項
MonoBook
検索
「
Matrix Multiply命令
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''Matrix Multiply命令'''(行列乗算命令)とは、行列Aの行と行列Bの列の要素をそれぞれ乗算し、その結果を加算して新しい行列Cの要素を求める演算です。 <source lang="csharp"> 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; } </source> 上記では幾重にも重なる強烈なループ処理となっていますが、昨今の[[CPU]]や[[GPU]]では1命令で実行できる[[SIMD演算]]化されているのが一般的です。 この演算はデジタル信号処理や科学計算などで非常に多く使用される基本的な演算です。 3DCGでは主に座標変換(回転、拡大縮小、平行移動)で使われる演算です。[[ゲーム]]でいえばキャラクターの移動処理(表示位置を決める処理)です。この処理が高負荷になることはそれほどありません。そのため[[スマホ]]向けなどの小規模な[[GPU]]では[[CPU]]の[[SIMD演算]]に同命令がある前提で省略されていることが多いです。 一方で昨今大流行している[[機械学習]]や[[人工知能]]では同命令は「主たる演算」となっています。このため[[パソコン]]向けの[[GPU]]では同命令の回路規模がどんどん大きくなっており、業務用の人工知能特化型をうたう[[GPU]]にいたっては[[テクスチャーマッピングユニット]]などを激減させてこの回路を盛り盛りしたものなどが登場しています。 [[category: GPU]] [[category: CPU]] [[category: 行列]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)