解读CUDA Compiler Driver NVCC - Ch.3

前言


上一篇文章简单了介绍了nvcc预定义的宏,以及支持的编译阶段,对应的输入文件后缀和输出文件的默认名。本篇文章了解CUDA源文件编译的整个workflow。

Overview


CUDA编译的工作原理如下:输入程序经过设备编译编译预处理,编译为CUDA二进制(cubin)和/或PTX中间代码,被放置在一个fatbinary。 输入程序再次预处理以供主机编译,嵌入到 fatbinary, 并将 CUDA 特定 C++ 扩展转换为标准 C++ 构造。 然后 C++ 主机编译器将把带有嵌入式 fatbinary 的host code编译成host object。

每当主机程序启动设备代码时,CUDA 运行时系统都会检查嵌入式 fatbinary 以获得当前 GPU 的适当 fatbinary image。

CUDA 程序默认采用the whole program compilation mode全程序编译模式编译,即设备代码不能从单独的文件中引用实体。在全程序编译模式下,设备链接步骤不起作用。单独编译和整个程序编译的更多信息,将在第六章进行介绍。

总结


本文主要的take away: CUDA源文件会先被针对device进行预编译,然后编译为中间文件fatbinary, 然后由主机编译把host code with fatbinary为 host object. 

下一篇文章会详细介绍关于GPU 编译相关的内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值