nvcc编译器选项

1.指定编译阶段

主要指定编译的阶段以及要编译的输入文件。

-cuda  -cubin  -fatbin  -ptx  -gpu  -E 

-c :最常使用,编译每个.c/.cc/.cpp/.cxx/.cu输入文件为object文件

-dc  -dw  -dlink  -link 

-dc编译选项可参考: https://devblogs.nvidia.com/parallelforall/separate-compilation-linking-cuda-device-code/


-rdc: relocatable device code

参考CUDA C Programming Guide D.3.3.2

如使用cuda dynamic parallelism时,可编译程序:

nvcc -arch=sm_35 -I ../../common/inc/ -lcudadevrt -rdc=true cdpSimpleQuicksort.cu -o cdpSimpleQuicksort

lcudadevrt指链接static cuda library: device runtime library


-lib :编译所有的输入文件为object文件,并且把结果添加到指定的library输出文件

-run

2.文件和路径配置

-o :指定输出文件的位置和名称

-include  :指定预处理和编译时预先需要包含的头文件

-l  :指定链接时需要的库文件

-D :指定预处理和编译时需要的宏

-U  :取消宏定义

-I :指定包含文件的搜索路径

-isystem :指定系统包含的引用文件的搜索路径

-L :指定库文件的搜索路径

-odir :指定输出文件的目录

-ccbin :指定host编译器所在路径

-cudart :指定CUDA runtime library使用类型(none,shared,static),默认为static

-ldir  :指定包含libdevice库文件目录

3.指定编译器、连接器的行为

-pg 

-g  :产生可调式代码,调试模式下必须的

-G  :产生可调式的设备代码

-lineinfo :为设备代码产生行number信息

-O  :产生优化代码 ,包括O0,O1,O2,O3,用于产生不同的指令集

-ftemplate-backtrace-limit  -shared  -x  -std  -nohdinitlist  -nohdmoveforward  -expt-relaxed-constexpr 

-m  :指定平台结构32 vs 64

4.编译工具内部选项

-Xcompiler  -Xlinker  -Xarchive  -Xptxas  -Xnvlink

-Xptxas -v:显示代码生成的统计结果

-Xptxas -dlcm=cg:关闭L1cache

-Xptxas -dlcm=ca:将L1cache增加到48KB(默认为16KB,和shared memory一共64KB)

5.编译驱动引导选项

-noprof  -dryrun 

-v  :列出nvcc产生的编译命令,不影响其执行

-keep  :保留各步骤产生的中间文件,用于调试

-keep-dir  -save-temps 

-clean  :逆转nvcc的行为

-run-args  -idp  -ddp  -dp  -MT  -nodlink

6.CUDA编译方式选项

-default-stream

7.驾驭GPU代码生成选项

-arch :指定GPU架构

-code  -gencode  -rdc  -e 

-maxrregcount  :指定GPU函数可使用的最大寄存器数量

-use_fast_math  -ftz  -prec-div  -prec-sqrt  -fmad

8.ptxas选项

-allow-expensive-optimizations  -c  -dlcm  -dscm  -g  -disable-optimizer-consts  -e  -fmad  -flcm  -fscm  -lineinfo  -arch  -h  -m  -maxrregcount  -O  -optf  -o  -preserve-relocs  -sp-bound-check  -v  -V  -Werror  -warn-double-usage  -warn-spills

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值