解读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 编译相关的内容。

"could not download kotlin-compiler-embeddable-1.5.21.jar" 表示无法下载 kotlin-compiler-embeddable-1.5.21.jar 这个文件。 这个问题可能出现在你尝试从某个源或仓库下载该文件时。有几种可能的原因导致无法下载该文件: 1. 网络连接问题:你的网络连接可能存在问题,无法连接到服务器或无法获得足够高速的下载速度。你可以尝试重新连接网络或者更换网络环境,确保网络连接的稳定性。 2. 源或仓库问题:源或仓库可能存在访问限制、链接错误或者文件损坏的情况。你可以尝试使用其他源或者仓库,或者联系源或仓库的管理员进行问题排查和解决。 3. 依赖冲突:可能存在与 kotlin-compiler-embeddable-1.5.21.jar 冲突的依赖关系。你可以检查你的项目依赖关系,并尝试解决冲突问题。 解决这个问题的方法有多种途径: 1. 检查网络连接:确认你的网络连接正常,并且能够正常访问互联网。如果网络连接有问题,修复网络问题后再次尝试下载。 2. 更换源或仓库:尝试使用其他可用的源或仓库进行下载。例如,可以更换 Maven 中央仓库为其他镜像仓库。 3. 清理缓存并重新尝试:删除本地 Maven 或 Gradle 的缓存,并重新构建项目,再次尝试下载该文件。 4. 联系管理员或寻求帮助:如果以上方法都没有解决问题,你可以联系源或仓库的管理员寻求帮助,或者询问相关技术社区,寻求其他开发者的建议和经验。 总结起来,在遇到无法下载 kotlin-compiler-embeddable-1.5.21.jar 文件时,你可以检查网络连接、更换源或仓库、清理缓存并重新尝试,或者联系管理员或寻求帮助,以解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值