nvcc編譯器選項及配置


nvcc命令選項:

選項命令有長名和短名,通常我們使用是用短名,長名主要用於描述。

1.指定編譯階段

主要指定編譯的階段以及要編譯的輸入文件。

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

-c :最常使用,編譯每個.c/.cc/.cpp/.cxx/.cu輸入文件為object文件

-dc  -dw  -dlink  -link 

-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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM