2012-05-14 56 views
1

MacでCUDAコードをコンパイルしたいが、Windows上で実行可能にする。cuda nvccクロスコンパイラ

nvcc CUDAクロスコンパイラを設定する方法はありますか?

問題は、私のデスクトップのウィンドウが移動中にしばらくの間アクセス不能になることですが、私は戻ってコードをコンパイルするまで待って時間を無駄にしたくありません。私が待たなければならないのであれば、コードをデバッグして、それが正しくコンパイルされていることを確認するのは時間の無駄でしょう。私のマックは、しかし、cuda対応のハードウェアが装備されていません。

+0

クロスコンパイルにはCMakeビルドシステムを使用します。あなたはそれを見ましたか? – geek

+0

まだありません。それは通常のクロスコンパイラを構築するのと同じですか? – mma1480

+0

Nvccはコンパイラではありません。これはホストコンパイラが(ほとんどのGPUコードのコンパイルを含めて)コンパイルの大部分を行うことに依存しています。ウィンドウ用にコンパイルするには、ビジュアルスタジオコンパイラが必要であり、要件は交渉可能ではありません。 NVIDIA GPUなしでOS Xにツールチェーンをインストールすることができます。結果OS X実行ファイルを実行することはできません。 – talonmies

答えて

6

短い答えは、できません。

これはよくある誤解ですが、nvccは実際にはコンパイラではありません。これはコンパイラドライバであり、ホストコードとデバイスコードの両方をコンパイルするために、ホストC++コンパイラに大きく依存しています。 Windows用のCUDAをコンパイルするには、は、Microsoft C++コンパイラを使用してにする必要があります。このコンパイラはLinuxやOS X上では実行できないため、Windowsホスト上でコンパイルを実行しない限り、Windowsターゲットへのクロスコンパイルはできません(32/64ビットのクロスコンパイルは可能です)。

他の2つのCUDAプラットフォームは、バックエンドが異なるため(Linuxはelfプラットフォーム、OS XはMachプラットフォーム)、コンパイル時にgccを必要とするにもかかわらず、互換性がないため、OS XとLinuxの間のクロスコンパイルでさえもisn可能です。

OS Xプラットフォームでのコンパイルがゴール

  1. は、OS Xツールキットをインストールしている場合は、2つの選択肢があります。ハードウェアに互換性のあるGPUがない場合でも、ツールキットをインストールしてコードをコンパイルすることはできます。
  2. 仮想Windowsインストール(または物理ブートキャンプインストール)内にWindowsツールキットとビジュアルスタジオをインストールし、Mac上のWindows内でコードをコンパイルします。この場合も、NVIDIA互換のハードウェアは必要ありません。

あなたはCUDA GPUなしでコードを実行したい場合は、調査ができ、非商用(GPU Ocelot)と商用(PGI CUDA-x86)オプションがあります。

+0

私はbootcampを使ってウィンドウを作成してコンパイルすることを考えていましたが、コンパイルのためのハードウェアも必要でした。しかし、もし私がハードウェアなしでコンパイルすれば、ハードウェアを持った別のマシンでもそれを実行する可能性はありますか?それとも、もう一度コンパイルする必要がありますか?ありがとう – mma1480

+0

両方のマシンで同じホストとデバイスのアーキテクチャ、CUDAツールキットとMicrosoftランタイムバージョンを使用している場合、私はそれを経験していませんが、なぜ動作しないのかわかりません。 – talonmies

関連する問題