CodeplayがDPC ++標準の開発に貢献した後、NVIDIAGPUがSYCLサポートを取得

ハードウェア / CodeplayがDPC ++標準の開発に貢献した後、NVIDIAGPUがSYCLサポートを取得 読んだ2分

Nvidia



Intel、ザイリンクス、ルネサス、イマジネーションテクノロジーズ、SYCL(「シックル」と発音)などの大手企業からのサポートを得た後、NVIDIAGPUを使用する開発者も同様のメリットを得ることができます。 SYCLコミュニティに着実に積極的に貢献してきた組織であるCodeplayは、複数のハードウェアプラットフォーム間でコードをリサイクルおよび再利用する機能を備えたDPC ++(Data Parallel C ++)の高度な開発の頂点に達しました。結果はComputeCppです。 Codeplay独自のSYCLの実装 。

ComputeCppの最新版は、OpenCLとNVIDIAのPTXを使用したNVIDIAGPUの実験的サポートを提供します

昨年、IntelはSYCLを推進するための決定的な一歩を踏み出し、oneAPIStandardの開発も開始しました。 oneAPIには、IntelのCPU、GPU、およびFPGA用のDPC ++(拡張機能を備えたSYCLの実装)が含まれています。ザイリンクス、ルネサス、イマジネーションテクノロジーズからSYCLのサポートが提供された後、この動きはすぐに大きくなり、勢いを増しました。簡単に言えば、ソフトウェア開発者はSYCLを使用して幅広いデバイスをターゲットにできるようになりました。



ComputeCppは、OpenCLとNVIDIAのPTXを使用したNVIDIAGPUの実験的なサポートを提供します。ただし、DPC ++(IntelのSYCL実装)は、OpenCLを経由せずに、LLVMコンパイラに統合されたNVIDIAGPUの完全なサポートを追加する機会を提供します。 Codeplayは、SYCL開発者がNVIDIA GPUをターゲットにできるようにする、実装の初期の実験段階をオープンソース化すると発表しました。この実装のコードベースは 別のフォーク メインのLLVMコンパイラプロジェクトとDPC ++ブランチの両方から。組織は、Intelと協力してNVIDIAGPUサポートをアップストリームのIntel / LLVMコンパイラに追加する予定であると付け加えました。

開発者はNVIDIAGPUのSYCLサポートからどのように利益を得ることができますか?

このプロジェクトにより、開発者は、システムのOpenCLレイヤーを経由せずに、SYCLコードを使用してNVIDIAGPUをターゲットにすることができます。つまり、NVIDIA GPUだけで、開発者はシステム上でDPC ++を実行して、SYCLアプリケーションをコンパイルできます。さらに、既存のCUDAアプリケーションは、CUDAサポートを使用してSYCLに段階的に移植し、CUDAがないプラットフォームで実行できます。これにより、多くの時間と繰り返しの労力が明らかに節約されます。

Codeplayは、DPC ++用のNVIDIAバックエンドの使用方法を説明するプロジェクトREADMEファイルに関する指示を提供しています。開発者は、コンパイル時にいくつかのフラグを使用し、ランタイムがターゲットとするデバイスを確実に認識できるようにデバイスセレクターを設定するためのコードを使用する必要があります。特に、「 NVIDIACUDAをサポートするSYCLツールチェーンを構築する 」とClangコンパイラオプションには 具体的な手順

Codeplayは、Titan RTX GPU(計算機能7.5)でCUDA10.1を使用してUbuntu18.04でプロジェクトを正常に実行したことを確認しました。チームは、SM5.0以降と互換性のあるNVIDIAGPUを備えた他のLinuxバージョンでも動作することを保証します。ただし、コンパイルされたSYCLアプリケーションは、CUDAまたはOpenCLのいずれかをターゲットにすることしかできず、両方を同時にターゲットにすることはできません。