NVCCのバックエンドのコンパイラを指定する

出典: トータル・ディスクロージャ・サイト(事実をありのままに)

ランタイムAPIを使うように書かれたCUDAのソースコードは、「C++のソースコード中に、CUDAの記述を織り込んでいく」という形をとっている。そして、これをNVCCでコンパイルする場合、NVCCの内部で、CUファイルからCUDAの部分とC++の部分とを分離し、C++の部分は他のコンパイラに処理を投げてコンパイルを進め、最後にCUDA部分とC++部分をリンクする、という方法をとっている。

このC++をコンパイルするコンパイラとして、Windowsでは標準でVisual C++が、Mac OSLinuxでは同じくGCCが使われるのであるが、実はこのバックエンドのコンパイラは、ユーザが自由に指定することができる。--compiler-bindirオプションで、使用するC++コンパイラのコマンドを、--compiler-optionsで、そのコンパイラが使うオプションを、それぞれ指定できる。

たとえば、C++部分を、Intelコンパイラiccコマンドに、-xAVXオプションを指定してコンパイルする場合は、

$ nvcc --compiler-bindir=icc --compiler-options=-xAVX sample.cu

のようなコマンドを入力してやれば良い。


この記事へのコメントをお寄せください

  • サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください
  • トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
  • あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
  • コメントを書き込む場合は名前にひらがなを織り交ぜてください。
  • あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

<comments hideform="false" />


Comments

ノート:NVCCのバックエンドのコンパイラを指定する

個人用ツール