この応答は遅すぎるかもしれませんが、とにかく注目する価値があります。エミュレーターまたはLLVMバックエンドを使用する場合は、 GPU Ocelot(私はコアコントリビューターの1人です)をCUDAデバイスドライバー(libcuda.so)をインストールせずにコンパイルできます。NVIDIAGPUを搭載していないシステムでエミュレーターのデモを行いました。
エミュレーターは、古いGPUがサポートしていない機能を含む可能性のあるPTX1.4およびPTX2.1仕様を忠実に実装しようとします。LLVMトランスレータは、PTXからx86への正確で効率的な変換を目指しており、CUDAがGPUだけでなくマルチコアCPUをプログラミングする効果的な方法になることを願っています。-deviceemu
かなり前からCUDAの非推奨機能でしたが、LLVMトランスレーターは常に高速でした。
さらに、いくつかの正確性チェッカーがエミュレーターに組み込まれており、整列されたメモリアクセス、共有メモリへのアクセスが適切に同期され、グローバルメモリの間接参照がメモリの割り当てられた領域にアクセスします。また、主にgdbに触発されたコマンドラインインタラクティブデバッガーを実装して、CUDAカーネルをシングルステップで実行したり、ブレークポイントやウォッチポイントを設定したりしました。これらのツールは、CUDAプログラムのデバッグを迅速化するために特別に開発されました。あなたはそれらが役に立つと思うかもしれません。
Linuxのみの側面については申し訳ありません。私たちはWindowsブランチ(およびMac OS Xポート)を開始しましたが、エンジニアリングの負担はすでに私たちの研究の追求を強調するのに十分な大きさです。誰かが時間と興味を持っているなら、彼らは私たちがWindowsのサポートを提供するのを手伝ってくれることを望むかもしれません!
お役に立てれば。