提升 `nvptx64-nvidia-cuda` 目标的基准

发布: (2026年5月1日 GMT+8 08:00)
4 分钟阅读
原文: Rust Blog

Source: Rust Blog

Overview

nvptx64-nvidia-cuda 目标是用于 NVIDIA GPU 的编译目标。使用该目标时,最终输出为 PTX。两种版本选择决定了输出内容:

  • GPU 架构(例如 sm_70sm_80 …)——决定哪些 GPU 能运行该 PTX。
  • PTX ISA 版本——决定哪些 CUDA 驱动版本能够加载(并 JIT‑编译)该 PTX。

在 Rust 1.97(计划于 2026 年 7 月 9 日发布)中,nvptx64-nvidia-cuda 的基线 PTX ISA 版本和 GPU 架构将被提升。这些更改会影响 Rust 编译器(rustc)以及相关的主机工具,使得生成兼容旧 GPU 和旧 CUDA 驱动的 PTX 成为不可能。

New minimum supported versions

  • PTX ISA 7.0(需要 CUDA 11 或更高版本的驱动)
  • SM 7.0(计算能力低于 7.0 的 GPU 将不再受支持)

Why are the requirements being changed?

迄今为止,Rust 已经支持为广泛的 GPU 架构和 PTX ISA 版本生成 PTX。实际上,存在若干缺陷会导致有效的 Rust 代码触发编译器崩溃或错误编译。提升基线可以解决这些问题,并为剩余受支持的硬件提供更完整的支持。

移除支持会影响被移除的架构的用户。最近受影响的 GPU 架构可以追溯到 2017 年,且已不再受到 NVIDIA 的积极支持,因此此更改的整体影响预计是有限的。

维护这些旧架构的支持需要大量工作。通过移除它们,开发工作可以集中于提升当前受支持硬件的正确性和性能。

What happens when I update to Rust 1.97?

如果你需要针对不支持 PTX ISA 7.0 的 CUDA 驱动(CUDA 10 时代及更早的驱动),Rust 1.97 将无法生成兼容该环境的 PTX。
同样地,如果你需要在计算能力低于 7.0 的 GPU(例如 Maxwell 或 Pascal)上运行,Rust 1.97 将无法为这些 GPU 生成兼容的 PTX。

假设你针对的是兼容 CUDA 11 或更高版本的驱动,并使用计算能力 7.0 或更高的 GPU:

  • 默认行为: 如果未指定 -C target-cpu,新默认将是 sm_70,你的构建应继续工作(但将不再兼容 Volta 之前的 GPU)。
  • 如果你当前指定了较旧的 -C target-cpu(例如 sm_60):
    1. 移除该标志,让其默认使用 sm_70
    2. 将其更新为 sm_70 或更高的架构。
  • 如果你已经指定了 -C target-cpu=sm_70(或更高): 此次更新不应导致行为变化。

有关构建和配置 nvptx64-nvidia-cuda 的更多细节,请参阅平台支持文档。

0 浏览
Back to Blog

相关文章

阅读更多 »

白宫考虑在发布前审查AI模型

抱歉,我需要您提供要翻译的具体摘录或摘要文本,才能为您进行翻译。请粘贴相应的内容,我会尽快为您翻译成简体中文。