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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用nvcc编译器进行编译可以通过以下步骤进行: 1. 确保你已经安装了CUDA工具包,并且在系统环境变量中添加了CUDA的路径。 2. 打开命令行终端,并进入你的CUDA C++代码所在的目录。 3. 使用以下命令来编译CUDA C++代码: ``` nvcc <filename>.cu -o <outputfile> ``` 其中,`<filename>.cu`是你的CUDA C++源代码文件名,`<outputfile>`是你想要生成的可执行文件的名称。 4. 如果你的代码中使用了特定的GPU架构或者需要生成特定的PTX和二进制代码,你可以使用`-arch`和`-code`选项或者`-gencode`选项来控制。例如: ``` nvcc <filename>.cu -arch=compute_50 -code=sm_50 -arch=compute_60 -code=sm_60 -arch=compute_70 -code=compute_70,sm_70 -o <outputfile> ``` 这个命令将会编译你的代码为适用于不同GPU架构的PTX和二进制代码。 5. 如果你想在运行时将CUDA C++设备代码编译为PTX,你可以使用NVRTC作为nvcc的替代方法。NVRTC是CUDA C++的运行时编译库,你可以在NVRTC用户指南中找到更多信息。 请注意,以上是nvcc编译器的基本用法,更详细的信息可以在nvcc用户手册中找到。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [CUDA中的NVCC编译器详解](https://blog.csdn.net/kunhe0512/article/details/125026801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值