簡単に言えば、いいえ、それは不可能です。
よくある誤解ですが、nvcc
実際にはコンパイラではありません。これはコンパイラ ドライバであり、ホスト コードとデバイス コードの両方をコンパイルするために、ホスト C++ コンパイラに大きく依存しています。Windows 用の CUDA をコンパイルするには、Microsoft C++ コンパイラを使用する必要があります。このコンパイラは Linux や OS X では実行できないため、Windows ホストでコンパイルを実行しない限り、Windows ターゲットへのクロス コンパイルはできません (たとえば、32/64 ビットのクロス コンパイルは可能です)。
他の 2 つの CUDA プラットフォームは、コンパイルに gcc が必要であるにもかかわらず、同様に互換性がありません。これは、バックエンドが異なるため (Linux は elf プラットフォームであり、OS X は mach プラットフォームです)、OS X と Linux 間のクロス コンパイルでさえ不可能です。
OS X プラットフォームでのコンパイルが目標である場合、2 つの選択肢があります。
- OS X ツールキットをインストールします。ハードウェアに互換性のある GPU がない場合でも、ツールキットをインストールしてコードをコンパイルできます。
- 仮想 Windows インストール (または物理ブート キャンプ インストール) 内に Windows ツールキットとビジュアル スタジオをインストールし、Mac 上の Windows 内でコードをコンパイルします。繰り返しますが、これを行うために NVIDIA 互換のハードウェアは必要ありません。
CUDA GPU なしでコードを実行したい場合は、調査可能な非商用 ( GPU Ocelot ) および商用 ( PGI CUDA-x86 ) オプションがあります。