한국   대만   중국   일본 
ハ?ドウェアアクセラレ?ション - Wikipedia コンテンツにスキップ

ハ?ドウェアアクセラレ?ション

出典: フリ?百科事典『ウィキペディア(Wikipedia)』

コンピュ?ティング において、 ハ?ドウェアアクセラレ?ション ( : hardware acceleration ) とは、なんらかの機能を通常の汎用 プロセッサ ( CPU ) 上で動作する ソフトウェア コンピュ?タプログラム )としての??で?理したのでは レイテンシ が大きい、 スル?プット が低い、消費電力が大きい、などといった問題があるような場合に、 ハ?ドウェア ??による支援で?行速度などを加速(アクセラレ?ション)し、システム全?の性能や?率を向上させる技術である。ハ?ドウェアアクセラレ?ションを利用するにはシステムに?用のプロセッサを追加する必要があるため、コスト高に?がる可能性がある。

?略 [ 編集 ]

ハ?ドウェアアクセラレ?ションはパフォ?マンスを改善するために使用される??な技術のうちのひとつである。特に ?列?理 の点で、?用設計されたハ?ドウェアは?果を?揮しやすい。通常、 CPU によるソフトウェアの?行では、CPUが備えるプリミティブな命令の?びで?理を?現し、その命令を逐次的にひとつずつ?行する。一方ハ?ドウェアによるアクセラレ?ションでは特定の?理のための?用のハ?ドウェアを設計し、そのハ?ドウェア?では回路の?列性を生かして演算を?列に行うことで、逐次的な命令?行の場合よりはるかに高速に演算を?行する。しかし?用に設計されたハ?ドウェアとして?理を?現した場合、CPUが備えるプリミティブな命令の組み合わせによりソフトウェアとして?理を?現する場合に比べて柔軟性が減少する。またハ?ドウェアの設計および製造にはソフトウェアに比べて桁違いのコストが必要になる。

このような?行性能と柔軟性やコストとのトレ?ドオフから、ハ?ドウェアによるアクセラレ?ションはソフトウェアの中でも特定のパタ?ンの演算を集中的に?理するようなパフォ?マンス上の重要な部分について利用される。ハ?ドウェアアクセラレ?ションは小さな機能ユニットからMPEG2の動作予測のように大きな機能ブロックまでさまざまな粒度にわたる。一般に粒度を大きくできれば?行性能が向上する一方、用途が固定化され柔軟性は低下する傾向がある。

アクセラレ?タ [ 編集 ]

?理の高速化を支援するハ?ドウェアを??して アクセラレ?タ と呼ぶ。代表的なものに、 Bit Block Transfer 機能や 3次元コンピュ?タグラフィックス 描?、 動? 再生支援機能などを含むリアルタイムグラフィックス?理に特化した GPU (かつては グラフィックアクセラレ?タ と呼ばれていた)、?値演算 コプロセッサ などとも呼ばれる FPU 、音?などの デジタル信??理 に特化した DSP ベクトルプロセッサ FPGA 等を?張ボ?ドに??したもの、などがある。 ?用計算機 などでも、コストなどの点で一般の?理について通常のコンピュ?タを流用するためにアクセラレ?タの形態をとることがある。 [ 要?明 ] また以前はパ?ソナルコンピュ?タにおいて、アップグレ?ドのためCPUを換?するのが一般的でなかったこともあり、 オ?バ?ドライブプロセッサ 等による「CPUの高速化」のためのプロセッサを「CPUアクセラレ?タ」等と?したこともあった [1]

また 近年 [ いつ? ] はグラフィックスなどは 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と補助プロセッサのメモリ空間を統合することでソフトウェア開?の負?を低減する解決策も提案されている。

脚注 [ 編集 ]

?考文? [ 編集 ]

?連項目 [ 編集 ]