また近年[いつ?]はグラフィックスなどはGPUに機能が分離される一方で、SSEなどのSIMD型拡張命令として、CPU自身がアクセラレータ的な機能を持つ命令を積極的に備えるようにもなってきている。CPUのSIMD型拡張命令を使用する利点としては、メインメモリよりも遠くにあるGPUを用いた場合のような大きなレイテンシが発生しないということが挙げられる(後述するように、CPUとGPUはメモリ空間が統合されていないことが多く、仮にUMAで物理的に同じメインメモリを使用していても直接お互いのデータを読み書きすることはできず、データを転送するコストがかかる)。
CPUを遥かに超える並列演算性能を持つGPUを、グラフィックスだけでなく様々な計算用途に応用する技術をGPGPUと呼ぶが、2010年代以降はGPGPUに対応したGPUアーキテクチャの成熟とAPIの標準化が進んだため、グラフィックス以外のアクセラレータとしてもポピュラーな選択肢になった。GPUはもともと32bit単精度または16bit半精度の浮動小数点演算を得意とするが、機械学習・深層学習向けに8bit整数演算専用命令を備えるプロセッサも登場している[2][3]。一方、科学技術計算では64bit倍精度浮動小数点数(あるいはそれ以上の精度)が主に必要とされるが、倍精度はゲーミング用途ではほとんど使われず無駄になるため、コンシューマー向けGPUでは倍精度の浮動小数点演算性能は単精度の場合の1/24や1/32程度に抑えられていることが多い。ハーフレートの倍精度(単精度の場合の1/2)に対応しているGPUは主にワークステーション向けやGPGPUサーバー専用製品に限られる。 アクセラレータを搭載しないコンピュータでは、ハードウェアアクセラレーションを利用したソフトウェアを実行することができない。代替としてソフトウェアによる実装をフォールバックソリューションとして用意することもあるが、開発工数やテスト工数も増加する。また、アクセラレータの命令仕様や演算精度の違いから、演算結果がCPUによるソフトウェア処理と異なる場合も問題となる。 また、アクセラレータを操作する処理を記述する際、本来アプリケーションソフトウェアを実現するために本質的ではない、ハードウェアに関する予備知識も必要となる。通例、ハードウェアを抽象化・標準化するDirectX/OpenGL/OpenCLといったアクセラレーション用APIを介することで、ハードウェアの詳細な実装を隠蔽することが多いが、ハードウェアおよびデバイスドライバー層がこれらのAPIをサポートする必要がある。 なお、通例CPUと外部ハードウェアとではメモリ空間が異なることから、外部ハードウェアに処理を委譲する際にデータをメインメモリから外部メモリに転送する必要があったり、逆に外部ハードウェアの処理結果を取得する際にデータを外部メモリからメインメモリに転送(リードバック)する必要があったりするため、プログラムが煩雑となる。AMD APUにおけるHSAのように、CPUと補助プロセッサのメモリ空間を統合することでソフトウェア開発の負担を低減する解決策も提案されている。 この節には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2017年9月)
問題点
脚注^ ある一時期には「Intel 80286#CPUアクセラレータ」の記事にあるように、286マシンに486を載せるといった製品まで登場した。
^ 【GTC 2017】NVIDIA、FP32で演算するCNNをINT8に変換して性能を2.5?3倍に引き上げるアルゴリズムを開発
^ 【後藤弘茂のWeekly海外ニュース】AMDが次世代GPU「Radeon RX Vega64」を正式発表 ?AMDの夏の大攻勢始まる - PC Watch
参考文献
https://archive.is/20170803030156/https://knowledge.autodesk.com/ja/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2016/JPN/AutoCAD-LT/files/GUID-A393BC3F-EA9C-4428-AABF-EDABE902874C-htm.html
https://archive.is/20170807231026/http://qiita.com/harasho2016/items/1d3b3140a77903094dd5
https://archive.is/20170810050640/http://help.videostudiopro.com/videostudio/v20/main/jp/documentation/index.html%23page/videostudio-x10/h2-hardware-acceleration.html
https://archive.is/20170802170011/https://dev.mozilla.jp/2011/01/hardware-acceleration/
関連項目
ハードウェア抽象化レイヤー
GPGPU
ヘテロジニアス・コンピューティング
表
話
編
歴
コンピュータ科学
ハードウェア
プリント基板
周辺機器
Integrated Circuit (IC)
Very Large Scale Integration (超大規模集積回路、VLSI)
Systems on Chip (SoC)
エネルギー消費 (グリーン・コンピューティング)
EDA
ハードウェアアクセラレーション
コンピュータシステムの構造
コンピュータ・アーキテクチャ
組み込みシステム