首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将多个源文件合并为一个加脂二进制文件的简单方法

将多个源文件合并为一个加脂二进制文件的简单方法
EN

Stack Overflow用户
提问于 2021-11-24 13:11:27
回答 1查看 175关注 0票数 1

为了简化项目中的构建过程,我希望将多个源文件编译到设备PTX代码中,然后将所有这些模块放在一个.fatbin文件中进行链接。

目前,我可以通过单独将每个文件编译到.ptx,或者同时编译所有文件,同时使用--keep保存中间文件,然后显式地将每个文件添加到一个加脂二进制文件中:

代码语言:javascript
运行
复制
nvcc -c --keep mysource1.cu mysource2.cu ...
fatbinary --create="mysources.fatbin" --image3=kind=ptx,file=mysource1.ptx --image3=kind=ptx,file=mysource2.ptx ...

这是相当麻烦的,所以我想知道是否有一种更简单/更简洁的方式来这样做,也许在一个nvcc调用。我尝试过对多个源文件调用nvcc --fatbin --device-link,但这似乎并没有将ptx代码保存在输出加脂二进制文件中(至少在使用cuobjdump检查时没有这样做)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-26 15:23:31

这里一种可能的方法是使用一个库。命令可以如下所示:

代码语言:javascript
运行
复制
nvcc -gencode arch=compute_XX,code=sm_XX  -gencode ... --lib -rdc=true -o libmy.a mysource1.cu ...

当您知道最终需要设备链接时,可以使用上面的命令。在这种情况下,当您在静态库中链接对象或最终可执行文件时,您将在以后指定设备链接步骤。

对于不需要设备链接的情况,只需省略-rdc=true开关即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70096713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档