NVCC options compatibility (v1.5)

更新时间:
复制 MD 格式

Option

Description

Status

"-o, --output-file <file>"

Specifies the name and location of the output file.

"-objtemp, --objdir-as-tempdir"

Creates all intermediate files in the same directory as the object file.

"-include, --pre-include <file,…>"

Specifies header files to pre-include during preprocessing.

"-l, --library <library,…>"

Specifies libraries to use during linking, without the file extension.

"-D, --define-macro <def,…>"

Defines macros to use during preprocessing.

"-U --undefine-macro <def,…>"

Undefines an existing macro during preprocessing or compilation.

"-I, --include-path <path,…>"

Specifies include search paths.

"-isystem, --system-include <path,…>"

Specifies system include search paths.

"-L, --library-path <path,…>"

Specifies library search paths.

"-odir, --output-directory <directory>"

Specifies the directory for the output file.

"-MF, --dependency-output <file>"

Specifies the dependency output file.

"-MP, --generate-dependency-targets"

Adds an empty target for each dependency.

"-ccbin, --compiler-bindir <directory>"

Specifies the directory where the default host compiler executable resides.

"-allow-unsupported-compiler, --allow-unsupported-compiler"

Disables the nvcc check for supported host compiler versions.

"-arbin, --archiver-binary <executable>"

Specifies the path to the archiver tool for creating static libraries with --lib.

"-cudart, --cudart <none|shared|static>"

Specifies the type of CUDA runtime library to use: none, shared (dynamic), or static.

"-cudadevrt, --cudadevrt <none|static>"

Specifies the type of CUDA device runtime library to use: none or static.

"-ldir, --libdevice-directory <directory>"

Specifies the directory that contains the libdevice library files.

"-target-dir, --target-directory <dir>"

Specifies the subfolder in the targets directory that contains the default include and library paths.

"-link, --link"

Specifies the default behavior: compile and link all input files.

"-lib, --lib"

Compiles input files into object files as needed, and adds them to the specified library output file.

"-dlink, --device-link"

Links object files with relocatable device code and .ptx, .cubin, and .fatbin files into an object file with executable device code that can be passed to the host linker.

"-dc, --device-c"

Compiles each .c, .cc, .cpp, .cxx, and .cu input file into an object file with relocatable device code. It is equivalent to --relocatable-device-code=true --compile.

"-dw, --device-w"

Compiles each .c, .cc, .cpp, .cxx, and .cu input file into an object file with executable device code. It is equivalent to --relocatable-device-code=false --compile.

"-cuda, --cuda"

Compiles each .cu input file to a .cu.cpp.ii file. The option is not supported when --relocatable-device-code=true.

"-c, --compile"

Compiles each .c, .cc, .cpp, .cxx, and .cu input file into an object file.

"-fatbin, --fatbin"

Compiles all .cu, .ptx, and .cubin input files to device-only .fatbin files. nvcc discards the host code for each .cu input file with this option.

"-cubin, --cubin"

Compiles all .cu and .ptx input files to device-only .cubin files. nvcc discards the host code for each .cu input file with this option.

"-ptx, --ptx"

Compiles all .cu input files to device-only .ptx files. nvcc discards the host code for each .cu input file with this option.

"-E, --preprocess"

Preprocesses all .c, .cc, .cpp, .cxx, and .cu input files.

"-M, --generate-dependencies"

Generates a dependency file for the .c, .cc, .cpp, .cxx, and .cu input files, suitable for inclusion in a makefile.

"-MM, --generate-nonsystem-dependencies"

Same as --generate-dependencies but skips header files found in system directories (Linux only).

"-MD, --generate-dependencies-with-compile"

This option cannot be specified with -E. The dependency file name is determined as follows: If -MF is specified, the specified file is used as the dependency file name. If -o is specified, the dependency file name is derived from the specified file name by replacing the suffix with '.d'. Otherwise, the dependency file name is derived by replacing the input file name's suffix with '.d'.

"-MMD, --generate-nonsystem-dependencies-with-compile"

Same as --generate-dependencies-with-compile, but skips header files found in system directories (Linux only).

"-run, --run"

Compiles and links all input files into an executable, and then runs it.

"-pg, --profile"

Instruments the generated code for profiling with gprof.

"-g, --debug"

Generates debug information for host code.

"-G, --device-debug"

Generates debug information for device code.

"-ewp, --extensible-whole-program"

Generates extensible whole program device code, deferring the resolution of some calls until linking with libcudadevrt.

"-no-compress, --no-compress"

Does not compress device code in the fatbin.

"-lineinfo, --generate-line-info"

Generates line-number information for device code.

"-opt-info, --optimization-info <kind,…>"

Provides optimization reports for the specified kind of optimization. The following tags are supported: inline: Emits remarks on function inlining. The inlining pass may be invoked multiple times by the compiler, and a function not inlined in an earlier pass may be inlined in a subsequent pass.

"-O, --optimize <level>"

Specifies the optimization level for host code.

"-dlto, --dlink-time-opt"

Performs link-time optimization of device code. The -lto option is an alias for -dlto.

"-ftemplate-backtrace-limit, --ftemplate-backtrace-limit <limit>"

Sets the maximum number of template instantiation notes for a single warning or error.

"-ftemplate-depth, --ftemplate-depth <limit>"

Sets the maximum instantiation depth for template classes.

"-noeh, --no-exceptions"

Disables exception handling for host code.

"-shared, --shared"

Generates a shared library during linking.

"-x, --x <c|c++|cu>"

Explicitly specifies the language for the input files, rather than letting the compiler infer it from the file name suffix.

"-std, --std <c++03|c++11|c++14|c++17>"

Selects a particular C++ dialect.

"-nohdinitlist, --no-host-device-initializer-list"

Prevents member functions of std::initializer_list from being implicitly treated as __host__ __device__ functions.

"-expt-relaxed-constexpr, --expt-relaxed-constexpr"

Experimental flag: Allows host code to invoke __device__ constexpr functions, and device code to invoke __host__ constexpr functions.

"-extended-lambda, --extended-lambda" "-expt-extended-lambda, --expt-extended-lambda"

Allows __host__ and __device__ annotations in lambda declarations.

"-m, --machine <32|64>" "-m32, --m32" "-m64, --m64"

Specifies a 32-bit or 64-bit architecture.

"-hls, --host-linker-script <use-lcs|gen-lcs>"

Uses the host linker script to enable support for certain CUDA-specific requirements when building executables or shared libraries (GNU/Linux only).

"-aug-hls, --augment-host-linker-scipt"

Generates a host linker script that augments an existing one (GNU/Linux only).

"-dopt, --dopt <=on>"

Enables device code optimization. When specified with -G, it enables limited debug information for optimized device code (currently, only line number information). When -G is not specified, -dopt=on is implicit.

"-r, --host-relocatable-link"

When used with -hls=gen-lcs, this option generates a host linker script for a host relocatable link (ld -r linkage).

"-gen-opt-lto, --gen-opt-lto"

Runs the optimizer passes before generating the LTO intermediate representation (IR).

"-Xcompiler, --compiler-options <options,…>"

Specifies options directly to the compiler/preprocessor.

"-Xlinker, --linker-options <options,…>"

Specifies options directly to the host linker.

"-Xarchive, --archive-options <options,…>"

Specifies options directly to the library manager.

"-Xptxas, --ptxas-options <options,…>"

Specifies options directly to ptxas, the PTX optimizing assembler.

"-Xnvlink,--nvlink-options <options,…>"

Specifies options directly to nvlink, the device linker.

"-forward-unknown-to-host-compiler, --forward-unknown-to-host-compiler"

Forwards unknown options to the host compiler.

"-forward-unknown-to-host-linker, --forward-unknown-to-host-linker"

Forwards unknown options to the host linker.

"-noprof, --dont-use-profile"

Does not use configurations from the nvcc.profile file for compilation.

"-t, --threads number"

Specifies the maximum number of threads to use for executing compilation steps in parallel. This option can improve compilation speed when compiling for multiple architectures.

"-dryrun, --dryrun"

Lists the compilation sub-commands without executing them.

"-v, --verbose"

Lists the compilation sub-commands while executing them.

"-keep, --keep" "-save-temps, --save-temps"

Keeps all intermediate files that are generated during internal compilation steps.

"-keep-dir, --keep-dir <directory>"

Keeps all intermediate files that are generated during internal compilation steps in this directory.

"-clean, --clean-targets"

Deletes all non-temporary files that the same nvcc command would generate without this option.

"-run-args, --run-args <arguments,…>"

Specifies command-line arguments for the executable when used with --run.

"-idp, --input-drive-prefix <prefix>"

Specifies the input drive prefix.

"-ddp, --dependency-drive-prefix <prefix>"

Specifies the dependency drive prefix.

"-dp, --drive-prefix <prefix>"

Specifies the drive prefix.

"-MT, --dependency-target-name <target>"

Specifies the target name of the generated rule when generating a dependency file.

"--no-align-double"

Prevents -malign-double from being passed to the compiler on 32-bit platforms.

"-nodlink, --no-device-link"

Skips the device link step when linking object files.

"-allow-unsupported-compiler, --allow-unsupported-compiler"

Disables the nvcc check for supported host compiler versions.

"-default-stream, --default-stream <legacy|null|per-thread>"

Specifies the stream that CUDA commands from the compiled program are sent to by default.

--gpu-architecture

Specifies the NVIDIA virtual GPU architecture for which to compile the CUDA input files.

"-arch, --gpu-architecture <arch|all|all-major>"

Specifies the NVIDIA virtual GPU architecture for which to compile the CUDA input files.

"-code, --gpu-code <code,…>"

Specifies the name of the NVIDIA GPU to assemble and optimize PTX for.

"-gencode, --generate-code <specification>"

Provides a more general and flexible way to specify architectures than --gpu-architecture and --gpu-code.

"-rdc, --relocatable-device-code <true|false>"

Enables or disables the generation of relocatable device code. If disabled, executable device code is generated. Relocatable device code requires linking before execution.

"-e, --entries <entry,…>"

Specifies which global entry functions to generate code for. PTX is generated for all entry functions, but only the selected entry functions are assembled. Entry function names must be provided in their mangled form.

"-maxrregcount, --maxrregcount <amount>"

Specifies the maximum number of registers that GPU functions can use.

"-use_fast_math, --use_fast_math"

Uses the fast math library. --use_fast_math implies --ftz=true --prec-div=false --prec-sqrt=false --fmad=true.

"-ftz, --ftz <true|false>"

Controls single-precision denormals support. --ftz=true flushes denormal values to zero, and --ftz=false preserves denormal values.

"-prec-div, --prec-div <true|false>"

This option controls single-precision floating-point division and reciprocals. --prec-div=true enables the IEEE round-to-nearest mode, and --prec-div=false enables the fast approximation mode.

"-prec-sqrt, --prec-sqrt <true|false>"

This option controls single-precision floating-point square root. --prec-sqrt=true enables the IEEE round-to-nearest mode, and --prec-sqrt=false enables the fast approximation mode.

"-fmad, --fmad <true|false>"

Enables or disables the contraction of floating-point multiplications and additions/subtractions into floating-point multiply-add (FMAD, FFMA, or DFMA) operations.

"-extra-device-vectorization, --extra-device-vectorization"

Enables more aggressive device code vectorization.

"-astoolspatch, --compile-as-tools-patch"

Compiles patch code for CUDA tools. Implies --keep-device-functions. May only be used in conjunction with --ptx, --cubin, or --fatbin. Cannot be used with -rdc=true or -ewp.

"-keep-device-functions, --keep-device-functions"

In whole program compilation mode, preserves user-defined, external-linkage __device__ function definitions in the generated PTX.

"-w, --disable-warnings"

Suppresses all warning messages.

"-src-in-ptx, --source-in-ptx"

Interleaves source code as comments in the PTX output.

"-restrict, --restrict"

Asserts that all kernel pointer parameters are __restrict__ pointers.

"-Wno-deprecated-gpu-targets, --Wno-deprecated-gpu-targets"

Suppresses warnings about deprecated GPU target architectures.

"-Wno-deprecated-declarations, --Wno-deprecated-declarations"

Suppresses warnings on the use of a deprecated entity.

"-Wreorder, --Wreorder"

Generates warnings when member initializers are reordered.

"-Wdefault-stream-launch, --Wdefault-stream-launch"

Generates a warning when an explicit stream argument is not provided in the <<<...>>> kernel launch syntax.

"-Wext-lambda-captures-this, --Wext-lambda-captures-this"

Generates a warning when an extended lambda implicitly captures this.

"-Werror, --Werror <kind,…>"

Treats warnings of the specified kinds as errors. Accepted kinds are: all-warnings Treats all warnings as errors. cross-execution-space-call Generates an error instead of a warning for a call from a __host__ __device__ to a __host__ function. reorder Generates an error when member initializers are reordered. default-stream-launch Generates an error when an explicit stream argument is not provided in the <<<...>>> kernel launch syntax. ext-lambda-captures-this Generates an error when an extended lambda implicitly captures this. deprecated-declarations Generates an error on the use of a deprecated entity.

"-err-no, --display-error-number"

Displays a diagnostic number for each message from the CUDA frontend compiler (note: not the host compiler).

"-no-err-no, --no-display-error-number"

Disables the display of a diagnostic number for messages from the CUDA frontend compiler (note: not the host compiler).

"-diag-error, --diag-error <errNum,…>"

Emits an error for specified diagnostic messages generated by the CUDA frontend compiler (note: does not affect diagnostics generated by the host compiler/preprocessor).

"-diag-suppress, --diag-suppress <errNum,…>"

Suppresses specified diagnostic messages generated by the CUDA frontend compiler (note: does not affect diagnostics generated by the host compiler/preprocessor).

"-diag-warn, --diag-warn <errNum,…>"

Emits a warning for specified diagnostic messages generated by the CUDA frontend compiler (note: does not affect diagnostics generated by the host compiler/preprocessor).

"-res-usage, --resource-usage"

Shows GPU code resource usage, such as registers and memory.

"-h, --help"

Displays help information for this tool.

"-V, --version"

Displays version information for this tool.

"-optf, --options-file <file,…>"

Includes command-line options from a specified file.

"-time, --time <filename>"

Generates a comma-separated value (CSV) table with the time taken by each compilation phase and appends it to the specified file. If the file is empty, column headings are generated in the first row. If the file name is '-', the timing data is sent to stdout.

"-qpp-config, --qpp-config <config>"

Specifies the configuration ([[compiler/]version,][target]) when using the q++ host compiler. The argument is forwarded to the q++ compiler's -V flag.

"-code-ls, --list-gpu-code"

Lists the GPU architectures (sm_XX) supported by the tool and exits.

"-arch-ls, --list-gpu-arch"

Lists the virtual device architectures (compute_XX) supported by the tool and exits.

--Wmissing-launch-bounds, -Wmissing-launch-bounds

Generates a warning when a __global__ function does not have an explicit __launch_bounds__ annotation.

"-allow-expensive-optimizations, --allow-expensive-optimizations"

Allows the compiler to perform expensive optimizations by using the maximum available resources (memory and compile time). If unspecified, this feature is enabled by default for optimization level O2 and higher.

"-c, --compile-only"

Generates a relocatable object file.

"-dlcm, --def-load-cache"

Default cache modifier for global/generic loads. Default value: ca.

"-dscm, --def-store-cache"

Default cache modifier for global/generic stores.

"-g, --device-debug"

Generates debug information for device code.

"-disable-optimizer-consts, --disable-optimizer-consts"

Disables the use of the optimizer constant bank.

"-e, --entry <entry,…>"

Specifies which global entry functions to generate code for.

"-fmad, --fmad"

Enables or disables the contraction of floating-point multiplications and additions/subtractions into floating-point multiply-add (FMAD, FFMA, or DFMA) operations.

"-flcm, --force-load-cache"

Forces the specified cache modifier on global/generic loads.

"-fscm, --force-store-cache"

Forces the specified cache modifier on global/generic stores.

"-lineinfo, --generate-line-info"

Generates line-number information for device code.

"-arch, --gpu-name <gpuname>"

Specifies the name of the NVIDIA GPU to generate code for. This option also accepts virtual compute architectures, in which case code generation is suppressed. This can be used for parsing only. Allowed values for this option: compute_35, compute_37, compute_50, compute_52, compute_53, compute_60, compute_61, compute_62, compute_70, compute_72, compute_75, compute_80, compute_86, compute_87, lto_35, lto_37, lto_50, lto_52, lto_53, lto_60, lto_61, lto_62, lto_70, lto_72, lto_75, lto_80, lto_86, lto_87, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75, sm_80, sm_86, sm_87

"-h, --help"

Displays help information.

"-m, --machine"

Specifies a 32-bit or 64-bit architecture.

"-maxrregcount, --maxrregcount <amount>"

Specifies the maximum number of registers that GPU functions can use.

"-O, --opt-level <N>"

Specifies the optimization level. Default value: 3.

"-optf, --options-file <file,…>"

Includes command-line options from a specified file.

"-preserve-relocs, --preserve-relocs"

Generates relocatable references for variables and preserves the relocations in the linked executable.

"-sp-bound-check, --sp-bound-check"

Generates a stack-pointer bounds-checking code sequence. This option is enabled automatically with --device-debug or --opt-level=0.

"-v, --verbose"

Enables verbose mode, which prints code generation statistics.

"-V, --version"

Displays version information.

"-Werror, --warning-as-error"

Treats all warnings as errors.

"-warn-double-usage, --warn-on-double-precision-use"

Warns if double-precision values are used in an instruction.

"-warn-lmem-usage, --warn-on-local-memory-usage"

Warns if local memory is used.

"-warn-spills, --warn-on-spills"

Warns if registers are spilled to local memory.

"-astoolspatch, --compile-as-tools-patch"

Compiles patch code for CUDA tools. Shall not be used in conjunction with -Xptxas -c or -ewp.

"-pic, --position-independent-code"

Generates position-independent code.

"-maxntid, --maxntid"

Specifies the maximum number of threads that a thread block can have.

"-minnctapersm, --minnctapersm"

Specifies the minimum number of Cooperative Thread Arrays (CTAs) to be mapped to a Streaming Multiprocessor (SM).

"-w, --disable-warnings"

Suppresses all warning messages.

"-preserve-relocs, --preserve-relocs"

Preserves resolved relocations in the linked executable.

"-v, --verbose"

Enables verbose mode, which prints code generation statistics.

"-Werror, --warning-as-error"

Treats all warnings as errors.

"-suppress-arch-warning, --suppress-arch-warning"

Suppresses warnings about objects that do not contain code for the target architecture.

"-suppress-stack-size-warning, --suppress-stack-size-warning"

Suppresses the warning that is otherwise printed when the stack size cannot be determined.

"-dump-callgraph, --dump-callgraph"

Dumps information about the call graph and register usage.

--dump-callgraph-no-demangle (-dump-callgraph-no-demangle)

Dumps call graph information without demangling.

--Xptxas (-Xptxas)

Specifies ptxas options (only used with LTO).

--cpu-arch (-cpu-arch)

Specifies the name of the CPU target architecture.

--extra-warnings (-extrawarn)

Emits extra warnings about possible problems.

--gen-host-linker-script (-ghls)

Specifies the type of host linker script to be generated.

--ignore-host-info (-ignore-host-info)

Ignores information about host references, so device code that could potentially be referenced by the host is not removed.

--keep-system-libraries (-keep-system-libraries)

Does not optimize away system library (e.g. cudadevrt) code.

--kernels-used (-kernels-used)

Specifies which kernels are used. This can be part of a kernel name to match any kernels containing that string. If this option is used, all other kernels are considered dead code and are removed.

--options-file (-optf)

Includes command-line options from the specified file.

--report-arch (-report-arch)

Reports the SM target architecture in error messages.

--suppress-debug-info (-suppress-debug-info)

Does not preserve debug symbols in the output. This option is ignored if used without the --debug option.

--variables-used (-variables used)

Specifies which variables are used. This can be part of a variable name to match any variable with that string in its name. If this option is used, all other variables are considered dead code and are potentially removed unless they are accessed from other device code.

--device-stack-protector {true|false} (-device-stack-protector)

Enables or disables the generation of stack canaries in device code (used only with LTO). Stack canaries help protect against certain types of memory safety bugs that involve stack-local variables. The compiler uses heuristics to assess the risk of such a bug in each function. Only functions deemed high-risk will use a stack canary.