nVidiaのOpenCL



ご存知のように、CUDAテクノロジーはnVidiaグラフィックスカードでのみ使用できます。 この事実は、ATI Radeonビデオカードの所有者になる方法、1つのメーカーのハードウェアで利用可能なソリューションを使用する価値があるかどうかなど、しばしば疑問を提起します。



この点で、CUDAとは何かを少し明確にすることにしました。 また、nVidiaグラフィックカードに統一されたGPGPU標準を実装する際にどのような役割を果たしますか。



GPGPUソフトウェアの実装



現時点では、非グラフィカルコンピューティングでGPUを使用するためのユニバーサルテクノロジーはまだ市場にありませんが、開発は本格的です。



開発中のテクノロジーの中で、Appleが提案したMicrosoft DirectX ComputeOpenCLは特に注目に値します。 タイトルから推測できるように、今日はOpenVisionとnVidiaからのその実装についてお話します。



OpenCLは、Khronosコンソーシアム( khronos.org )によって開発されているGPGPUのオープンスタンダードであり、さまざまなソフトウェアおよびハードウェアプラットフォームでGPU容量を使用することを目的としています。



おそらくいくつかの質問があります:なぜnVidiaがCUDAとATI-Streamを開発しているのか、共通標準の採用にすぐに同意するのは容易ではないでしょう。 しかし、現実には、すべてが見た目ほど単純ではなく、問題は生産者の政策だけではありませんが、それもその中にあります。 一般的なアーキテクチャが長い間統一されていたCPUとは異なり、GPUの開発はわずかに異なる道をたどったのです。 さまざまなメーカーのGPUは、当初、まったく異なるアーキテクチャを備えていました。 たとえば、さまざまなメーカーのGPU向けの一般的なコマンドはなく、ユニバーサルアセンブラーはありません。 そして、CUDAとStreamに関する答えは非常に単純です。これらは、ハードウェア依存のレイヤーであり、その上に統合OpenCLとDirectX Computeアーキテクチャが構築されています。 誰かがnVidia CUDAの以前のエントリを読んだ場合、おそらくCUDAドライバーAPIの言及に気づいたでしょう。 CUDAドライバーAPIは、nVidiaのGPUを操作するための同じハードウェア依存のレイヤーです。 一般に、nVidia GPUを使用するためのソフトウェアスタックは次の形式になっています(公式のCUDAドキュメントにあります)。











ご覧のとおり、OpenCLとDX11 ComputeはCUDAテクノロジーの上で動作します。



nVidiaからOpenCLを待機するタイミング





Khronosコンソーシアムは、組織のWebサイトでPDFドキュメントとして入手できるOpenCL仕様の最初のバージョンを発表しました。



NVidiaは、その製品にOpenCLサポートロードマップも導入しました。











確かに、ベータ版はnVidiaパートナーのみが利用できる可能性があります。 今年の半ばにはすでにOpenCLが完全に実装され、誰でも使用できることが期待されています。



おわりに



nVidiaキャンペーンによるOpenCLのサポートと、この点でCUDAが果たす役割について、戦争の霧が少し払拭されたことを願っています。



All Articles