コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
Matrix Multiply命令
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2024年8月21日 (水) 05:34時点における
Administrator
(
トーク
|
投稿記録
)
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''Matrix Multiply命令'''(行列乗算命令)とは、行列の要素同士を乗算し、その結果を加算する演算を行う命令です。 具体的には、行列Aと行列Bの積を計算する際に、行列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では主に座標変換(回転、拡大縮小、平行移動)で使われる演算です。ただ3DCGの定番である[[ゲーム]]で座標変換が高負荷になることはそれほどありません。そのため[[スマホ]]向けなどの小規模な[[GPU]]では[[CPU]]の[[SIMD演算]]に同命令がある前提で省略されていることが多いです。 一方で昨今大流行している[[機械学習]]や[[人工知能]]では同命令は「主たる演算」となっています。このため[[パソコン]]向けの[[GPU]]では同命令の回路規模がどんどん大きくなっており、業務用の人工知能特化型をうたう[[GPU]]にいたっては[[テクスチャーマッピングユニット]]などを激減させてこの回路を盛り盛りしたものなどが登場しています。 [[category: GPU]] [[category: CPU]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化