GPGPU
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

2010年に発売された Fermi 世代の Tesla 20 シリーズ[40] [41]では倍精度演算性能が強化され、倍精度の理論演算性能は単精度の場合の1/2になったが、2012年に発売されたKepler世代のTesla K20シリーズ[42] [43]、2013年に発表されたK40[44]、2014年に発表されたK80[45] [46]では倍精度の理論演算性能は単精度の場合の1/3となっている。

2020年現在でも、GPUにおける倍精度演算に関してはHPC向けを除き、省電力性能やゲーミング性能を重視・維持するために必要最低限の性能しか用意されないことが多い[注釈 4]。また倍精度専用の演算ユニットでは単精度の演算を行なうことはできないため、単精度を優先するか、それとも倍精度を優先するかはチップ設計段階におけるトレードオフとなる。実際、NVIDIAのMaxwellアーキテクチャのGPUでは前世代に存在した倍精度演算器が省略され、単精度演算器を使って倍精度演算を行なうため、倍精度演算のピーク性能は単精度演算の1/32となる[48]。このため、HPC向け以外のGPUは倍精度の浮動小数点演算が不得意であると言える。
半精度

深層学習の計算においては計算精度が求められないことから、半精度(16ビット)の演算を高速で行えるようにハードウェア側の対応も進みつつある[注釈 5][50]。深層学習においては仮数部の細かさよりも値がオーバーフローしないほうが使いやすいというメリットのため、指数部を増やしたBF16(bfloat16(英語版))と呼ばれるフォーマットが考案され、一部のGPU[注釈 6]でサポートされている[51]

GPUから派生した分野特化型のプロセッサとして、ディープラーニングなどのAI計算能力に対して既存のGPUでは消費電力の大きさが問題になることから、計算精度を8ビットに抑えて、積和演算に特化したTPUテンソル・プロセッシング・ユニット)というプロセッサが実現されており、人工知能のアクセラレーターとして活用されている[52]。バッテリー駆動が基本となるスマートフォンSoCにも電力効率向上の必要性からAIアクセラレータが搭載されている。
IEEE 754サポートおよびFMA命令

DirectX 11対応となるEvergreen世代以降のAMD GPU、およびFermi世代以降のNVIDIA GPUでは、浮動小数点の演算精度はIEEE 754規格に準拠したものとなっている。なおNVIDIA GPUおよびAMD GPUでは融合積和演算命令 (FMA) をサポートしているが、CPUで同じ内容の処理をFMAを使わず実行した場合と比べて、GPUによる演算結果が異なることもある[53] [54] [55] [56] [57]
メモリ

この節は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "GPGPU" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2015年3月)

この節は大言壮語的な記述になっています。Wikipedia:大言壮語をしないを参考に修正して下さい。(2015年3月)

この節は言葉を濁した曖昧な記述になっています。Wikipedia:言葉を濁さないおよびWikipedia:避けたい言葉を参考に修正してください。(2015年3月)

メモリ環境についても、演算入力は少数の格子点データと幾分大きなテクスチャ・データだけであり[疑問点ノート]、演算出力は画像1枚程度の大きさのピクセルごとに3色[疑問点ノート]のデータを保持しながら順次それらを送り出すだけで済むため、相応に大きな[疑問点ノート]外部の半導体メモリ(グラフィックスメモリ/ビデオメモリ/デバイスメモリ/VRAM)とかなり広い[疑問点ノート]メモリバンド幅による接続で十分に対応しており、演算対象データの局所性が高いのでグラフィックスメモリと内部キャッシュによってデータの読み書き性能が向上すると同時に演算も途切れずに順次行える傾向が強い。

基本的にGPUは、配列構造の単純なデータを半精度/単精度程度の浮動小数点演算によって順番に処理することで2次元の動画像データを実時間内に生成することに特化しているため、それ以外の用途ではあまり高い性能は期待できない。リアルタイム画像処理専用ICの流用では、科学技術計算でも倍精度以上の浮動小数点演算(拡張倍精度・四倍精度など)を必要とするものや、演算の局所性が低いものではそれほど高い性能は得られない。リアルタイム画像処理専用ではなく、GPUから派生して新たに開発されたGPGPU用のICでは、倍精度浮動小数点演算やより広いメモリ空間に対応したものがあり、これらは広範な科学技術計算への利用が期待される。なお、コンシューマー向けの画像処理分野ではほとんど必要とされないメモリの冗長機構であるECCHPC分野では必須とされるため、ICを共用する場合に制約となる[58]
共有メモリ

GPUによるVRAMへのアクセスは、複数のプロセッサ群によって並列的に発生するため、連続したメモリ領域に対するコアレスアクセス(coalesce access、≒シーケンシャルアクセス)を行なうことで効率化・高速化できる[59]。NVIDIA GPUでは32のハードウェアスレッドを束ねるバッチ単位をWarp[60]と呼び、AMD GPUでは64のハードウェアスレッドを束ねるバッチ単位をWavefront[61]と呼んでいるが、これらのユニット内ではプロセッサが完全に同期して動作するため、バッチ単位ごとにまとめて連続領域にアクセス(コアレスアクセス)することで効率が良くなる。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:101 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef