You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CUDA 12.8 deprecated GPU targets警告解读及Compute 6.1兼容方案咨询

CUDA 12.8警告处理与Compute 6.1设备支持方案

一、“离线编译”的定义

离线编译指nvcc在编译阶段直接生成针对特定GPU架构(sm_xx)的二进制SASS代码——这是可直接在对应硬件上运行的机器码,无需程序运行时再做编译。与之相对的是PTX(compute_xx)中间代码,它需要NVIDIA驱动在程序运行时通过JIT(即时编译)转换成SASS,属于“在线”编译环节。

二、警告的核心含义

CUDA 12.8的该警告明确:未来版本会移除对sm_75及更早架构的离线编译支持——也就是无法再直接生成sm_61、sm_70这类的二进制SASS,但仍支持生成这些架构对应的PTX代码(compute_61、compute_70),可通过运行时JIT兼容旧设备。

三、你的场景问题分析

当前你设置的compute_61,sm_61,是同时生成compute_61的PTX和sm_61的离线SASS。移除该设置后程序在Compute 6.1设备上无法运行,本质是丢失了compute_61的PTX,导致驱动无法通过JIT生成适配的SASS。

四、消除警告且保留Compute 6.1支持的正确设置

将Visual Studio的CUDA代码生成选项修改为:

compute_61,compute_75,sm_75
  • compute_61:保留针对Compute 6.1架构的PTX代码,确保驱动可在Compute 6.1设备上JIT生成可运行的SASS,实现向下兼容;
  • compute_75,sm_75:指定当前仍支持离线编译的最低架构(sm_75),生成对应的PTX和离线SASS,满足编译器对“有效离线编译目标”的要求,从而消除警告。

此设置既不会丢失对Compute 6.1设备的支持,也无需禁用警告即可消除提示。

补充说明(基于官方文档与社区总结)

  • compute_xx代表对应计算能力版本的PTX中间代码,用于JIT编译兼容该版本及更高规格的GPU;
  • sm_xx代表特定GPU架构的二进制SASS代码,是离线编译的产物,可直接在对应硬件上运行;
  • 只要保留目标架构的compute_xx,即使不生成对应的sm_xx,驱动也能通过JIT为旧设备生成适配的SASS,不会出现内核缺失错误。

内容的提问来源于stack exchange,提问作者Tyson Hilmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:08:19