基本的なオプション
オプション | 概要 | 使用例 |
---|---|---|
-o [filename] | 出力ファイル名を指定(指定がない場合はデフォルトで xxx.out が生成される) | nvcc -o source source.cu |
-I [path] | インクルードディレクトリのパスを指定 | nvcc -I /usr/local/cuda/include source.cu |
-L [path] | ライブラリディレクトリのパスを指定 | nvcc -L /usr/local/cuda/lib64 source.cu |
-l [library] | リンクするライブラリを指定 | nvcc source.cu -lcudart |
-arch=[compute_capability] | GPUアーキテクチャを指定 | nvcc -arch=sm_60 source.cu |
Compute Capability
値 | アーキテクチャ |
---|---|
sm_20 | Fermi(GeForce GTX 400シリーズ) |
sm_21 | Fermi(GeForce GTX 500シリーズ) |
sm_30 | Kepler(GeForce GTX 600シリーズ) |
sm_32 | Kepler(GeForce GT 720) |
sm_35 | Kepler(Tesla K40) |
sm_37 | Kepler(Tesla K80) |
sm_50 | Maxwell(GeForce GTX 750) |
sm_52 | Maxwell(GeForce GTX 970) |
sm_53 | Maxwell(Tegra X1) |
sm_60 | Pascal(Tesla P100) |
sm_61 | Pascal(GeForce GTX 1080) |
sm_62 | Pascal(Tegra X2) |
sm_70 | Volta(Tesla V100) |
sm_72 | Volta(Xavier) |
sm_75 | Turing(GeForce RTX 2080) |
sm_80 | Ampere(A100) |
sm_86 | Ampere(GeForce RTX 30シリーズ) |
sm_87 | Ampere(Jetson AGX Orin) |
sm_89 | Ada Lovelace(GeForce RTX 40シリーズ) |
sm_90 | Hopper(H100) |
最適化オプション
オプション | 概要 | 使用例 |
---|---|---|
-O[number] | 最適化レベルを指定(0から3までのレベルがあり、-O3 が最も高い最適化レベル) | nvcc -O2 source.cu |
-use_fast_math | より高速な数学関数(例えば、標準精度ではなく近似精度の関数)を使用(パフォーマンスは向上するが、精度が多少犠牲になる場合がある) | nvcc -use_fast_math source.cu |
デバッグオプション
オプション | 概要 | 使用例 |
---|---|---|
-G | デバッグ情報を埋め込むオプションで、カーネル内でのデバッグが可能になる(パフォーマンスが低下するため開発時にのみ使用) | nvcc -G source.cu |
-g | ホストコード部分のデバッグ情報を埋め込む | nvcc -g source.cu |
コンパイル・リンクオプション
オプション | 概要 | 使用例 |
---|---|---|
-c | コンパイルのみを行い、リンクは行わない(オブジェクトファイル(xxx.o ファイル)が生成される) | nvcc -c source.cu |
-Xcompiler | ホストコードのコンパイル時に特定のオプションを渡す際に使用(GCCに特定のフラグを渡す際に便利) | nvcc source.cu -Xcompiler -fopenmp |
-Xptxas | PTXアセンブラにオプションを渡すために使用 | nvcc source.cu -Xptxas -v |
その他の便利なオプション
オプション | 概要 | 使用例 |
---|---|---|
—ptx | PTX中間コード(アセンブリのようなもの)を出力(CUDAコードがどのように最適化されているかを確認できる) | nvcc —ptx source.cu |
-lineinfo | コンパイル時にコード行情報を生成し、プロファイリング時に行レベルで情報を提供 | nvcc -lineinfo source.cu |
-maxrregcount=[number] | カーネルで使用するレジスタの最大数を制限 | nvcc -maxrregcount=32 source.cu |