OpenCL 2.0とAMDおよびIntelのドライバー

Haberに知られていないのは、 AMDIntelの OpenCL 2.0ドライバーが登場したというニュースです。



多くの人にとって、このようなAPIは単なるマーケティングの流行語にすぎないようです。 ほぼすべての最新のハードウェア製品が、サポートされているテクノロジーと広告のリストにあるOpenCLアイテム最新のCPU、GPU、 APU(CPU + GPU) 、FPGA、 CPU + FPGA に付属しているため、これは部分的に当てはまります。 そして、エンタープライズソフトウェア開発の分野の多くは、これらの「ファッショナブルな」名前を否定したいと考えていますが、これはOracleとAMDの努力によってすぐに不可能になるでしょう。



ハードウェアの大規模な並列処理は、サーバー、パーソナルコンピューター、 携帯電話、タブレット 、および特殊なハードウェアアクセラレーターに長い間存在していました。 FPGAの分野でのOpenCLは、簡素化、コスト削減、開発の普及の手段と見なされています。 同時に、ハードウェアによって提供される利点を使用するには、これまでプログラマーがOpenCL、CUDA、OpenMPなどのAPIを使用する必要があります。 しかし、 Project SumatraScalaCLなどのアプリケーションプログラマからこの複雑さを隠そうとする試みがあります。



OpenCLは、 Photoshop CC 2014およびGIMP 2.8 RC 1グラフィックエディターのパフォーマンスを既に最適化しています。 BlenderプロジェクトのRenRenders LuxRenderCyclesも、このAPIの使用から恩恵を受けます。 また、 LibreOfficeオフィススイートでもOpenCLを使用しています。 私が以前の雇用主がOpenCLを使用してVP9ビデオエンコーダーを最適化することに優れていたというニュースから学ぶことは、非常に予想外でした。



OpenCL 2.0は、ほぼ1年前に標準として承認されました。 この標準は、最新のハードウェアで利用可能なテクノロジーをサポートします:共有仮想メモリにより、メモリ領域間でのデータの不必要な/明示的なコピーを回避できますまた、アトミック操作のサポートを拡張しました。



何よりも 、OpenCLで浮動小数点データを使用したアトミック操作を実装するために「クランチ」必要しないようになりました。 奇妙なことに、atomic cmpxchg volatileのこの問題により、多くの人々が私のブログを訪れ、 他の開発者も同じアプローチを使用してこの機能が最新の標準に登場しました。



ハードウェアによって提供される利点を無視し続けることができます...または、アルゴリズム並列化することが可能で、プロジェクトの計算量が十分に大きい場合、より効率の高い最新のハードウェアを使用して、プロジェクトの概念実証を行います。



エンタープライズソフトウェアまたはプロジェクトでOpenCLを使用する見通しについてどう思いますか?



All Articles