Kretov Nikolai Nikolaevich:OpenCLの紹介
開発は、悪名高いクロノスグループが主導しています。 OpenGlとOpenALを宣伝するもの。さらに、OpenGLとOpenCLは基本的に同じソフトウェアインフラストラクチャからのものであり、非常に密接に相互作用することができます。
アイデアの本質は、私たちが絶対に気にしないということです-私たちの前のプロセッサまたはビデオカード。プラットフォーム自体から抽象化し、N個のコンピューティングデバイスがあると見なします。標準としてのOpenCLは、これらのデバイスでのコンピューティングのルールを説明しています。したがって、どのプラットフォームにも完全に移植可能な単一のコードが得られます。 AMDまたはIntelには、プロセッサ、nVidiaまたはATIビデオカード、またはセルコアを備えたブレードサーバーがあります。これはまったく問題ではありません。このアプリケーションは、デバイスがOpenCL標準をサポートしている場所であればどこでも機能します。
SIMD命令についての並列計算について話していることは注目に値します。
OpenCLはC言語の拡張であり、ホストアプリケーションとOpenCLアプリケーションがあります。ホストは使用可能なデバイスのセットを準備し、実行のためにタスクをOpenCL部分に渡します。その後、OpenCLは結果を実行し、ホストに返します。
OpenCLコードは*.clファイルに保存され、特定のアーキテクチャーの実行時にコンパイルされます。これにより、アプリケーションの移植性が保証されます。
Appleは、Snow LeopardオペレーティングシステムでOpenCLのカーネルレベルのサポートをリリースすることでさらに一歩進んで、パフォーマンスを大幅に向上させました。
何のために必要ですか?
OpenCLはSIMDアルゴリズムをうまく食べます。これは彼が作成されたものです。そして、これはさまざまな暗号化、さまざまな後処理効果、サウンド処理、さまざまな数学モデル、ビデオエンコーディングです。
開発者向け
現在、nVidia OpenCL SDK、AMDOpenCLSDKのバージョンが利用可能です。これらの会社の公式ウェブサイトからいつでもダウンロードできます。
今後の記事では、このテクノロジーを実際に独自のアプリケーションで使用する方法について説明します。