【问题标题】:Link-time optimizations in CUDA 11 - what are they and how to use them?CUDA 11 中的链接时优化 - 它们是什么以及如何使用它们?
【发布时间】:2021-05-26 17:43:09
【问题描述】:

CUDA 11 features announcement,据说现在有:

新的链接时间优化功能

nvcc 实际采用了哪些链接时优化(例如,相对于使用 g++ 或 clang++ 的主机端代码中的 LTO 功能)?

另外 - 是否需要做一些事情来启用 LTO,或者它是否总是会发生(与需要使用 -flto 开关编译的主机端代码不同?

【问题讨论】:

  • 我还没有探索过这个新功能,但我会假设跨编译单元的函数内联是这些功能之一。应该很容易通过简单的实验来确认或反驳。

标签: cuda compiler-optimization nvcc compiler-options lto


【解决方案1】:

部分答案:

要启用链接时优化,请在调用 NVCC 编译器时使用--dlink-time-opt(或dlto),用于编译和设备端代码链接。如果编译器找不到相关的中间信息,则不会应用(链接时)优化。

【讨论】:

    【解决方案2】:

    我的猜测是 -dlto 必须与编译时间和链接时间有关,如果您使用非 nvcc 链接程序,例如 gcc 或 g++,那么您可能无法获得最佳性能

    【讨论】:

    • 我已经说过了。
    猜你喜欢
    • 2016-12-18
    • 2011-07-04
    • 2011-08-03
    • 2022-08-13
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多