TensorRT及CUDA自学笔记003 NVCC及其命令行参数
各位大佬,这是我的自学笔记,如有错误请指正,也欢迎在评论区学习交流,谢谢!
NVCC是一种编译器,基于一些命令行参数可以将使用PTX或C语言编写的代码编译成可执行文件。
NVCC工作流程
- NVCC分离源文件中与GPU相关的内核代码,将其编译为cubin或PTX中间文件,并保存在fatbinary中。如果源文件使用C语言编写就编译为cubin,如果源文件使用PTX语言编写就将其编译为PTX中间文件。
- NVCC分离源文件中与主机相关的代码,使用当前系统中的编译器(如g++)进行编译,并将fatbinary嵌入其中。
- 进行链接,链接CUDA运行库和用户使用的库,最后产生可执行文件。
NVCC输入文件解释
NVCC命令行
详见链接
常用的NVCC命令行参数
短名参数 | 长名参数 | 含义 |
---|---|---|
-i | –include-path | 用来设置头文件路径 |
-o | –output-file | 指定输出文件 |
-l | –library | 指定库路径 |
-g | –debug | 指定debug模式 |
-arch | –gpu-architecture | 指定虚拟机架构,配置PTX兼容性 |
-ptx | 设置输出ptx文件路径 | |
-code | –gpu-code | 设置二进制兼容性 |