NVIDIAも、自社のGPU「G80」をベースとした、単精度浮動小数点演算対応のHPC向け製品「Tesla C870」を2007年に投入、さらに2008年に発売された NVIDIA Tesla C1060 で倍精度に対応したが、単精度933GFLOPSに比べて倍精度は1/12の78GFLOPSとなっており[39]、倍精度演算性能が極端に低かった。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から派生した分野特化型のプロセッサとして、ディープラーニングなどのAI計算能力に対して既存のGPUでは消費電力の大きさが問題になることから、計算精度を8ビットに抑えて、積和演算に特化したTPU(テンソル・プロセッシング・ユニット)というプロセッサが実現されており、人工知能のアクセラレーターとして活用されている[52]。バッテリー駆動が基本となるスマートフォンのSoCにも電力効率向上の必要性からAIアクセラレータが搭載されている。 DirectX 11対応となるEvergreen世代以降のAMD GPU、およびFermi世代以降のNVIDIA GPUでは、浮動小数点の演算精度はIEEE 754規格に準拠したものとなっている。なおNVIDIA GPUおよびAMD GPUでは融合積和演算命令 (FMA) をサポートしているが、CPUで同じ内容の処理をFMAを使わず実行した場合と比べて、GPUによる演算結果が異なることもある[53] [54] [55] [56] [57]。 この節は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
IEEE 754サポートおよびFMA命令
メモリ
出典検索?: "GPGPU"
この節は大言壮語的な記述になっています。Wikipedia:大言壮語をしないを参考に修正して下さい。(2015年3月)
この節は言葉を濁した曖昧な記述になっています。Wikipedia:言葉を濁さないおよびWikipedia:避けたい言葉を参考に修正してください。(2015年3月)
メモリ環境についても、演算入力は少数の格子点データと幾分大きなテクスチャ・データだけであり[疑問点 – ノート]、演算出力は画像1枚程度の大きさのピクセルごとに3色[疑問点 – ノート]のデータを保持しながら順次それらを送り出すだけで済むため、相応に大きな[疑問点 – ノート]外部の半導体メモリ(グラフィックスメモリ/ビデオメモリ/デバイスメモリ/VRAM)とかなり広い[疑問点 – ノート]メモリバンド幅による接続で十分に対応しており、演算対象データの局所性が高いのでグラフィックスメモリと内部キャッシュによってデータの読み書き性能が向上すると同時に演算も途切れずに順次行える傾向が強い。