NVIDIA GPUを利用する汎用プログラムを書くことは、長い間、NVIDIAのCUDAプラットフォームを使用することを意味していた。CUDAはいくつかの異なるプログラミング言語をサポートしているが、高性能なコードを記述するためには、通常はCまたはC++が必要であった。最近まで、この状況によってC#開発者は取り残されており、GPUをターゲットとするコードを書くためには自分たちの好みの言語を諦める必要があった。
Altimeshの新しいコンパイラツールであるHybridizerは、この問題に対処した。Hybridizerは、C#開発者に、C#ソースからCUDAバイナリを生成することによってGPUをターゲットにする方法を提供した。Hybridizerは2つのバージョンに分かれており、それぞれ異なるニーズと予算を対象としている。Hybridizer Essentialsはすべて無料で、Visual Studioの拡張機能として提供されている。Hybridizer EssentialsはCUDAプラットフォームのバイナリを生成する。Hybridizer Software Suite(HSE)は、CUDAと、AVX、AVX2、およびAX512を含む他のプラットフォームのターゲットとするライセンスソフトウェアである。HSEはバイナリを生成するが、オプションでCUDAソースコードを生成して、ユーザがコンパイル中のものを監査できるようにする。
どちらのオプションもNVIDIAのNsight Visual Studio Editionと組み合わせることで、開発者はVisual StudioでC#コードを記述してデバッグでき、その結果コードをNVIDIA GPUで実行できる。HSEは基本的にMSIL(Microsoft Intermediate Language)上で動作するため、ソースコードが入手できなくても既存のプロジェクトと統合することができる。これにより、.NETプラットフォーム言語の仲間であるF#とVB.NETも間接的にサポートされる。
CUDAプラットフォーム用のC/C++コードを作成する目標の1つは最大のパフォーマンスであるため、HybridizerでコンパイルされたC#コードのパフォーマンスと比較する価値がある。Altimeshによると、C#から生成されたバイナリは、CUDAをターゲットとして人が書いたC++コードの83%のパフォーマンスを達成した。C#コードは、いくつかの実践的な関与により、C++コードのパフォーマンスと同等レベルに改善された。
Hybridizerソフトウェアにより、CUDAとGPUプログラミングについて興味があるC#開発者は、自身の好みの技術を捨てることなく、これらの技術を探求できる。サンプルコードはGitHubから入手でき、Hybridizer Essentialsの拡張機能はVisual Studio Marketplaceで入手可能である。
Rate this Article
- Editor Review
- Chief Editor Action