Contents
- 1. Introduction
- 2. Compilation Phases
- 3. The CUDA Compilation Trajectory
-
4. NVCC Command Options
- 4.1. Command Option Types and Notation
-
4.2. Command Option Description
-
4.2.1. File and Path Specifications
- 4.2.1.1.
--output-file file
(-o
) - 4.2.1.2.
--objdir-as-tempdir
(-objtemp
) - 4.2.1.3.
--pre-include file,...
(-include
) - 4.2.1.4.
--library library,...
(-l
) - 4.2.1.5.
--define-macro def,...
(-D
) - 4.2.1.6.
--undefine-macro def,...
(-U
) - 4.2.1.7.
--include-path path,...
(-I
) - 4.2.1.8.
--system-include path,...
(-isystem
) - 4.2.1.9.
--library-path path,...
(-L
) - 4.2.1.10.
--output-directory directory
(-odir
) - 4.2.1.11.
--dependency-output file
(-MF
) - 4.2.1.12.
--generate-dependency-targets
(-MP
) - 4.2.1.13.
--compiler-bindir directory
(-ccbin
) - 4.2.1.14.
--allow-unsupported-compiler
(-allow-unsupported-compiler
) - 4.2.1.15.
--archiver-binary executable
(-arbin
) - 4.2.1.16.
--cudart
{none
|shared
|static
} (-cudart
) - 4.2.1.17.
--cudadevrt
{none
|static
} (-cudadevrt
) - 4.2.1.18.
--libdevice-directory directory
(-ldir
) - 4.2.1.19.
--target-directory string
(-target-dir
)
- 4.2.1.1.
-
4.2.2. Options for Specifying the Compilation Phase
- 4.2.2.1.
--link
(-link
) - 4.2.2.2.
--lib
(-lib
) - 4.2.2.3.
--device-link
(-dlink
) - 4.2.2.4.
--device-c
(-dc
) - 4.2.2.5.
--device-w
(-dw
) - 4.2.2.6.
--cuda
(-cuda
) - 4.2.2.7.
--compile
(-c
) - 4.2.2.8.
--fatbin
(-fatbin
) - 4.2.2.9.
--cubin
(-cubin
) - 4.2.2.10.
--ptx
(-ptx
) - 4.2.2.11.
--preprocess
(-E
) - 4.2.2.12.
--generate-dependencies
(-M
) - 4.2.2.13.
--generate-nonsystem-dependencies
(-MM
) - 4.2.2.14.
--generate-dependencies-with-compile
(-MD
) - 4.2.2.15.
--generate-nonsystem-dependencies-with-compile
(-MMD
) - 4.2.2.16.
--optix-ir
(-optix-ir
) - 4.2.2.17.
--run
(-run
)
- 4.2.2.1.
-
4.2.3. Options for Specifying Behavior of Compiler/Linker
- 4.2.3.1.
--profile
(-pg
) - 4.2.3.2.
--debug
(-g
) - 4.2.3.3.
--device-debug
(-G
) - 4.2.3.4.
--extensible-whole-program
(-ewp
) - 4.2.3.5.
--no-compress
(-no-compress
) - 4.2.3.6.
--generate-line-info
(-lineinfo
) - 4.2.3.7.
--optimization-info kind,...
(-opt-info
) - 4.2.3.8.
--optimize level
(-O
) - 4.2.3.9.
--dopt kind
(-dopt
) - 4.2.3.10.
--dlink-time-opt
(-dlto
) - 4.2.3.11.
--gen-opt-lto
(-gen-opt-lto
) - 4.2.3.12.
--split-compile number
(-split-compile
) - 4.2.3.13.
--split-compile-extended number
(-split-compile-extended
) - 4.2.3.14.
--ftemplate-backtrace-limit limit
(-ftemplate-backtrace-limit
) - 4.2.3.15.
--ftemplate-depth limit
(-ftemplate-depth
) - 4.2.3.16.
--no-exceptions
(-noeh
) - 4.2.3.17.
--shared
(-shared
) - 4.2.3.18.
--x
{c
|c++
|cu
} (-x
) - 4.2.3.19.
--std
{c++03
|c++11
|c++14
|c++17
|c++20
} (-std
) - 4.2.3.20.
--no-host-device-initializer-list
(-nohdinitlist
) - 4.2.3.21.
--expt-relaxed-constexpr
(-expt-relaxed-constexpr
) - 4.2.3.22.
--extended-lambda
(-extended-lambda
) - 4.2.3.23.
--expt-extended-lambda
(-expt-extended-lambda
) - 4.2.3.24.
--machine
{64
} (-m
) - 4.2.3.25.
--m64
(-m64
) - 4.2.3.26.
--host-linker-script
{use-lcs
|gen-lcs
} (-hls
) - 4.2.3.27.
--augment-host-linker-script
(-aug-hls
) - 4.2.3.28.
--host-relocatable-link
(-r
)
- 4.2.3.1.
- 4.2.4. Options for Passing Specific Phase Options
-
4.2.5. Options for Guiding the Compiler Driver
- 4.2.5.1.
--forward-unknown-to-host-compiler
(-forward-unknown-to-host-compiler
) - 4.2.5.2.
--forward-unknown-to-host-linker
(-forward-unknown-to-host-linker
) - 4.2.5.3.
--forward-unknown-opts
(-forward-unknown-opts
) - 4.2.5.4.
--forward-slash-prefix-opts
(-forward-slash-prefix-opts
) - 4.2.5.5.
--dont-use-profile
(-noprof
) - 4.2.5.6.
--threads number
(-t
) - 4.2.5.7.
--dryrun
(-dryrun
) - 4.2.5.8.
--verbose
(-v
) - 4.2.5.9.
--keep
(-keep
) - 4.2.5.10.
--keep-dir directory
(-keep-dir
) - 4.2.5.11.
--save-temps
(-save-temps
) - 4.2.5.12.
--clean-targets
(-clean
) - 4.2.5.13.
--run-args arguments,...
(-run-args
) - 4.2.5.14.
--use-local-env
(-use-local-env
) - 4.2.5.15.
--input-drive-prefix prefix
(-idp
) - 4.2.5.16.
--dependency-drive-prefix prefix
(-ddp
) - 4.2.5.17.
--drive-prefix prefix
(-dp
) - 4.2.5.18.
--dependency-target-name target
(-MT
) - 4.2.5.19.
--no-align-double
- 4.2.5.20.
--no-device-link
(-nodlink
) - 4.2.5.21.
--allow-unsupported-compiler
(-allow-unsupported-compiler
)
- 4.2.5.1.
- 4.2.6. Options for Steering CUDA Compilation
-
4.2.7. Options for Steering GPU Code Generation
- 4.2.7.1.
--gpu-architecture
(-arch
) - 4.2.7.2.
--gpu-code code,...
(-code
) - 4.2.7.3.
--generate-code specification
(-gencode
) - 4.2.7.4.
--relocatable-device-code
{true
|false
} (-rdc
) - 4.2.7.5.
--entries entry,...
(-e
) - 4.2.7.6.
--maxrregcount amount
(-maxrregcount
) - 4.2.7.7.
--use_fast_math
(-use_fast_math
) - 4.2.7.8.
--ftz
{true
|false
} (-ftz
) - 4.2.7.9.
--prec-div
{true
|false
} (-prec-div
) - 4.2.7.10.
--prec-sqrt
{true
|false
} (-prec-sqrt
) - 4.2.7.11.
--fmad
{true
|false
} (-fmad
) - 4.2.7.12.
--extra-device-vectorization
(-extra-device-vectorization
) - 4.2.7.13.
--compile-as-tools-patch
(-astoolspatch
) - 4.2.7.14.
--keep-device-functions
(-keep-device-functions
) - 4.2.7.15.
--jump-table-density percentage
(-jtd
)
- 4.2.7.1.
-
4.2.8. Generic Tool Options
- 4.2.8.1.
--disable-warnings
(-w
) - 4.2.8.2.
--source-in-ptx
(-src-in-ptx
) - 4.2.8.3.
--restrict
(-restrict
) - 4.2.8.4.
--Wno-deprecated-gpu-targets
(-Wno-deprecated-gpu-targets
) - 4.2.8.5.
--Wno-deprecated-declarations
(-Wno-deprecated-declarations
) - 4.2.8.6.
--Wreorder
(-Wreorder
) - 4.2.8.7.
--Wdefault-stream-launch
(-Wdefault-stream-launch
) - 4.2.8.8.
--Wmissing-launch-bounds
(-Wmissing-launch-bounds
) - 4.2.8.9.
--Wext-lambda-captures-this
(-Wext-lambda-captures-this
) - 4.2.8.10.
--Werror kind,...
(-Werror
) - 4.2.8.11.
--display-error-number
(-err-no
) - 4.2.8.12.
--no-display-error-number
(-no-err-no
) - 4.2.8.13.
--diag-error errNum,...
(-diag-error
) - 4.2.8.14.
--diag-suppress errNum,...
(-diag-suppress
) - 4.2.8.15.
--diag-warn errNum,...
(-diag-warn
) - 4.2.8.16.
--resource-usage
(-res-usage
) - 4.2.8.17.
--device-stack-protector
{true
|false
} (-device-stack-protector
) - 4.2.8.18.
--help
(-h
) - 4.2.8.19.
--version
(-V
) - 4.2.8.20.
--options-file file,...
(-optf
) - 4.2.8.21.
--time filename
(-time
) - 4.2.8.22.
--qpp-config config
(-qpp-config
) - 4.2.8.23.
--list-gpu-code
(-code-ls
) - 4.2.8.24.
--list-gpu-arch
(-arch-ls
)
- 4.2.8.1.
-
4.2.9. Phase Options
-
4.2.9.1. Ptxas Options
- 4.2.9.1.1.
--allow-expensive-optimizations
(-allow-expensive-optimizations
) - 4.2.9.1.2.
--compile-only
(-c
) - 4.2.9.1.3.
--def-load-cache
(-dlcm
) - 4.2.9.1.4.
--def-store-cache
(-dscm
) - 4.2.9.1.5.
--device-debug
(-g
) - 4.2.9.1.6.
--disable-optimizer-constants
(-disable-optimizer-consts
) - 4.2.9.1.7.
--entry entry,...
(-e
) - 4.2.9.1.8.
--fmad
(-fmad
) - 4.2.9.1.9.
--force-load-cache
(-flcm
) - 4.2.9.1.10.
--force-store-cache
(-fscm
) - 4.2.9.1.11.
--generate-line-info
(-lineinfo
) - 4.2.9.1.12.
--gpu-name gpuname
(-arch
) - 4.2.9.1.13.
--help
(-h
) - 4.2.9.1.14.
--machine
(-m
) - 4.2.9.1.15.
--maxrregcount amount
(-maxrregcount
) - 4.2.9.1.16.
--opt-level N
(-O
) - 4.2.9.1.17.
--options-file file,...
(-optf
) - 4.2.9.1.18.
--position-independent-code
(-pic
) - 4.2.9.1.19.
--preserve-relocs
(-preserve-relocs
) - 4.2.9.1.20.
--sp-bound-check
(-sp-bound-check
) - 4.2.9.1.21.
--suppress-async-bulk-multicast-advisory-warning
(-suppress-async-bulk-multicast-advisory-warning
) - 4.2.9.1.22.
--verbose
(-v
) - 4.2.9.1.23.
--version
(-V
) - 4.2.9.1.24.
--warning-as-error
(-Werror
) - 4.2.9.1.25.
--warn-on-double-precision-use
(-warn-double-usage
) - 4.2.9.1.26.
--warn-on-local-memory-usage
(-warn-lmem-usage
) - 4.2.9.1.27.
--warn-on-spills
(-warn-spills
) - 4.2.9.1.28.
--compile-as-tools-patch
(-astoolspatch
) - 4.2.9.1.29.
--maxntid
(-maxntid
) - 4.2.9.1.30.
--minnctapersm
(-minnctapersm
) - 4.2.9.1.31.
--override-directive-values
(-override-directive-values
) - 4.2.9.1.32.
--make-errors-visible-at-exit
(-make-errors-visible-at-exit
) - 4.2.9.1.33.
--oFast-compile
(-Ofc
) - 4.2.9.1.34.
--device-stack-protector
{true
|false
} (-device-stack-protector
)
- 4.2.9.1.1.
-
4.2.9.2. NVLINK Options
- 4.2.9.2.1.
--disable-warnings
(-w
) - 4.2.9.2.2.
--preserve-relocs
(-preserve-relocs
) - 4.2.9.2.3.
--verbose
(-v
) - 4.2.9.2.4.
--warning-as-error
(-Werror
) - 4.2.9.2.5.
--suppress-arch-warning
(-suppress-arch-warning
) - 4.2.9.2.6.
--suppress-stack-size-warning
(-suppress-stack-size-warning
) - 4.2.9.2.7.
--dump-callgraph
(-dump-callgraph
) - 4.2.9.2.8.
--dump-callgraph-no-demangle
(-dump-callgraph-no-demangle
) - 4.2.9.2.9.
--Xptxas
(-Xptxas
) - 4.2.9.2.10.
--cpu-arch
(-cpu-arch
) - 4.2.9.2.11.
--extra-warnings
(-extrawarn
) - 4.2.9.2.12.
--gen-host-linker-script
(-ghls
) - 4.2.9.2.13.
--ignore-host-info
(-ignore-host-info
) - 4.2.9.2.14.
--keep-system-libraries
(-keep-system-libraries
) - 4.2.9.2.15.
--kernels-used
(-kernels-used
) - 4.2.9.2.16.
--options-file
(-optf
) - 4.2.9.2.17.
--report-arch
(-report-arch
) - 4.2.9.2.18.
--suppress-debug-info
(-suppress-debug-info
) - 4.2.9.2.19.
--variables-used
(-variables used
) - 4.2.9.2.20.
--device-stack-protector
{true
|false
} (-device-stack-protector
)
- 4.2.9.2.1.
-
4.2.9.1. Ptxas Options
-
4.2.1. File and Path Specifications
- 4.3. NVCC Environment Variables
- 5. GPU Compilation
- 6. Using Separate Compilation in CUDA
- 7. Miscellaneous NVCC Usage
- 8. Notices