前途科技前途科技
  • 服务
  • 关于
  • AI
    • AI 大模型
    • 具身智能
    • 算力芯片
  • 科技
    • 智能终端
    • 软件·互联网
    • 汽车·出行
    • 科学前沿
  • 资源中心
    • 深度研究
      • AI 前沿
      • 教程
      • AI 知识库
      • 案例研究
    • 行业报告
      • 白皮书
      • 行业报告
      • 研究报告
      • 技术分享
      • 专题报告
    • 精选案例
      • 金融行业
      • 医疗行业
      • 教育行业
      • 零售行业
      • 制造行业
  • 服务
  • 关于
联系我们
技术/10.06 · 09:33/13 MIN/作者:苏晚/0 阅读

新硬件接入 PyTorch:从补丁地狱到标准化工作流

PyTorch 加速器集成工作组在 2026 年上半年交出两套基础设施:跨仓库 CI 中继让下游硬件厂商在 PR 合并前就能反馈兼容性问题,测试套件重构将 60 万条用例从只给 CUDA 写的改造成任何后端都能复用的参数化模板。这两项改动直接降低国产芯片、边缘 AI 加速器接入 PyTorch 的工程成本,也为开源生态树立了标准化集成机制的范本。

问题:硬件多样化遇上集成碎片化

PyTorch 的硬件生态正在快速分化。除了英伟达 CUDA、苹果 MPS、AMD ROCm、英特尔 XPU 这些"一线"后端,还有大量通过 PrivateUse1 机制接入的国产加速器、边缘 AI 芯片和专用硅片。每增加一款新硬件,都要解决同一批问题:

  • 测试套件绑死特定硬件:PyTorch 维护着超过 60 万条测试用例,覆盖算子、自动微分、性能分析、分布式训练等各层。但这些测试大多为 CUDA 写死——硬编码的 device="cuda"、torch.cuda.synchronize()、@onlyCUDA 装饰器随处可见。新后端要复用这套测试,只能自己打补丁、维护分支,每次 PyTorch 升级都要重新对齐。
  • 上游看不到下游的 CI 状态:PyTorch 主仓库的 CI 跑得再完善,也只覆盖它自己支持的几款硬件。下游硬件厂商(比如某国产 NPU 团队)维护着自己的适配仓库,但 PyTorch 贡献者在合并 PR 时根本不知道这个改动会不会把下游打挂——只能等代码合并后,硬件厂商升级依赖时才发现问题,那时再回滚已经来不及了。

这两个瓶颈让"接入 PyTorch"从技术问题变成了维护噩梦:每次上游发版,下游都要花几周时间重新验证、修补丁、回归测试。而 PyTorch 发版节奏还在加快,这套人工对齐的模式已经不可持续。

方案一:跨仓库 CI 中继(CRCR)——让上游看见下游

PyTorch 加速器集成工作组在 2026 年上半年推出了 Cross-Repository CI Relay(CRCR),用一套全自动管线打通上下游的 CI 可见性。

工作流程

当有人向 pytorch/pytorch 提交 PR 或推送新 commit 时,webhook 会并行触发所有已注册的下游仓库(比如 Intel XPU、AMD ROCm、vLLM、SGLang、Hugging Face Transformers,以及任何通过 PrivateUse1 接入的硬件后端)。每个下游仓库跑完自己的 CI 后,通过 GitHub OIDC token 认证身份,将结果回传到 PyTorch 的统一面板 hud.pytorch.org/crcr。

CRCR 架构:webhook 触发下游并行 CI,结果汇总到统一面板

图 1:CRCR 架构。图片来源:PyTorch Blog

这套机制解决了两个长期痛点:

  1. 合并前可见:PyTorch 维护者在合并 PR 之前就能看到这个改动对所有下游的影响,不用等代码入库后才发现兼容性问题。
  2. 单点汇总:所有跨仓库 CI 的结果都进同一个面板,不用逐个去下游仓库翻 CI 日志。

四级参与模型与五层安全校验

CRCR 设计了分级准入机制(L1 到 L4),让下游仓库逐步建立信任:

  • L1:只接收 dispatch 通知,不回传结果。适合刚开始适配的团队,先把 CI 跑起来。
  • L2:可以把结果报告到 HUD 面板,但不影响 PyTorch 的合并决策(non-blocking)。
  • L3:结果会显示在 PR 的 check 列表里,但仍然是 non-blocking。
  • L4:成为 blocking check——如果这个下游 CI 失败,PyTorch 的 PR 就不能合并。

这个设计的核心是渐进式信任:新接入的硬件不会一上来就拥有"一票否决权",得先证明自己的 CI 稳定、不误报,才能逐级晋升。

安全方面,CRCR 用了五层防护:

  1. OIDC 身份验证:回调必须带 GitHub 签发的 OIDC token,密码学级别确认调用方身份。
  2. 白名单授权:只有列入 allowlist 的仓库才能参与。
  3. 速率限制:防止某个下游仓库刷屏或 DoS。
  4. 状态机检查:每个 CI 任务都有明确的生命周期(pending → running → success/failure),不符合状态转移规则的回调会被拒绝。
  5. 信任数据与自报告数据严格分离:即使某个下游仓库被攻破,它也只能篡改自己在面板上的显示状态,无法影响 PyTorch 主仓库的构建基础设施或合并逻辑。

接入成本

对下游维护者来说,接入 CRCR 只需要两步:

  1. 提交一个 PR,把自己的仓库加入 allowlist。
苏晚
苏晚Su Wan

前途科技 · 前沿主笔

关注 AI 与前沿科技的观察者,前途科技前沿内容主笔。

查看全部文章

想了解 AI 如何助力您的企业?

免费获取企业 AI 成熟度诊断报告,发现转型机会

置顶文章

新硬件接入 PyTorch:从补丁地狱到标准化工作流
置顶

新硬件接入 PyTorch:从补丁地狱到标准化工作流

表格预测搬进上下文:NVIDIA Kumo Tabular 不训练不调参
置顶

表格预测搬进上下文:NVIDIA Kumo Tabular 不训练不调参

前途科技前途科技
服务关于快讯技术商业报告
微信咨询二维码

咨询微信

扫码添加微信咨询

前途科技微信公众号

微信公众号

扫码关注

Copyright © 2026 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。|京ICP备17045010号-1|京公网安备 11010502033860号|隐私政策|服务条款
  • 在自己仓库里添加一个轻量级的 workflow 文件(GitHub Actions YAML),监听 repository_dispatch 事件并回传结果。
  • 不需要写任何自定义认证代码——OIDC token 由 GitHub Actions 自动注入,开发者只需要在回调时把它带上。

    方案二:测试重构——从硬编码到参数化

    CRCR 解决了"上游看不到下游"的问题,但下游仍然要面对另一个难题:PyTorch 的 60 万条测试用例大多是为 CUDA 写的,新后端要复用它们,得先把硬编码全改掉。

    工作组在 2026 年上半年启动了系统性的测试套件重构,目标是把所有测试改造成"设备无关"的参数化模板。这项工作通过一个中央 tracking issue、两份 RFC(测试用例重构 + 测试类分类)推进,目前已跟踪 259 个子任务。

    三维改造

    1. 设备无关化迁移

    把硬编码的设备引用替换成参数化调用:

    • device="cuda" → device=device(从参数传入)
    • torch.cuda.synchronize() → getattr(torch, device.type).synchronize()
    • @onlyCUDA 装饰器 → instantiate_device_type_tests()(自动为所有注册后端生成测试实例)

    2. 测试类三分类

    并非所有测试都需要在所有硬件上跑。工作组把测试类分成三档:

    • accelerator-unrelated(与加速器无关):纯 CPU 逻辑,比如测试 Dispatcher(算子分发器)的路由规则。这类测试只在 CPU 上跑一次就够了。
    • accelerator-agnostic(设备无关):测试的是框架行为,不依赖特定硬件特性。比如"某个算子在任意设备上都应该支持反向传播"。这类测试会参数化到所有后端。
    • accelerator-specific(特定后端):测试某个硬件的专有特性,比如 CUDA 的 cuDNN 集成、Apple MPS 的 Metal 后端。这类测试只在对应硬件上跑。

    测试分类:CPU-only、设备无关、特定后端三档分流

    图 2:测试重构架构——三分类后,每个后端只跑它该跑的测试。图片来源:PyTorch Blog

    3. 标准化跳过机制

    有些功能并非所有硬件都支持(比如某些边缘 AI 芯片不支持 float64)。工作组统一了跳过测试的接口,让后端可以声明"我不支持这个特性",测试框架会自动跳过相关用例,而不是报错或要求打补丁。

    实际收益

    这套重构直接降低了新后端的接入成本:

    • 不用维护测试分支:以前每次 PyTorch 升级,硬件厂商都要重新 merge 上游、解决冲突、修补丁。现在测试本身就是参数化的,升级后直接跑,不需要改代码。
    • 覆盖面自动扩大:当 PyTorch 添加新的算子测试时,所有已接入的后端自动获得这些测试——不用每个厂商自己再写一遍。
    • 减少重复劳动:以前 10 个硬件厂商要各自维护一套"CUDA 测试的 XPU/ROCm/NPU 版本",现在只需要一套参数化模板,10 个后端共享。

    其他进展:PrivateUse1 性能分析、分布式支持、编译器集成

    除了 CRCR 和测试重构,工作组在 2026 年上半年还推进了几项配套能力:

    • PrivateUse1 后端的性能分析支持:通过 PrivateUse1 接入的硬件现在可以把自己的性能事件(类似 CUDA 的 nvprof)接入 PyTorch Profiler,在 TensorBoard 里看到完整的执行时间线。
    • OpenReg 参考后端持续成熟:OpenReg 是官方维护的"最小可用后端",展示了如何正确实现 PrivateUse1 的各层接口(Runtime、Operators、Distributed、Profiling、Compile)。新硬件团队可以把它当作起点,只改硬件相关的部分。
    • 分布式训练能力:PrivateUse1 后端现在可以注册自己的 ProcessGroup 实现(类似 NCCL 之于 CUDA),支持 torch.distributed.all_reduce 等集合通信原语。
    • 编译器后端集成:硬件可以接入 torch.compile 的后端注册机制,让 PyTorch 2.x 的编译优化也能用上专有硬件的算子融合、内存规划等能力。

    这些能力的共同点是标准化接口 + 参考实现:PyTorch 不再要求每个硬件"自己想办法接进来",而是提供明确的扩展点、文档、示例代码,甚至自动化测试。

    为什么这套方法值得借鉴

    1. 用基础设施而非人力解决协调问题

    CRCR 的本质是把"PyTorch 维护者与硬件厂商之间的沟通成本"转化为一次性的基础设施投入。以前每次 PR 可能影响下游时,都要手动去各个硬件社区问"你们测过吗"、等回复、催进度。现在这个流程全自动化了:webhook 触发、CI 跑完、结果汇总,从 PR 提交到看到所有下游状态,只需要几分钟。

    2. 渐进式信任模型适合开放生态

    直接给新接入的硬件 blocking 权限风险太高(万一 CI 不稳定,会拖慢整个项目);完全不给权限又没有约束力(下游 CI 挂了也没人在意)。L1 到 L4 的分级机制在两者之间找到了平衡:新团队可以低门槛加入(只需要一个 allowlist 条目),但要逐步证明自己的 CI 质量才能获得更高权限。

    3. 测试重构是"一次投入,长期受益"

    把 60 万条测试从硬编码改成参数化,工作量不小(259 个子任务还在推进中)。但一旦完成,每增加一款新硬件的边际成本就接近零——不需要每个厂商再写一遍测试,也不需要每次升级都重新对齐。这是典型的"N 方问题用 1 个方案解决":与其让 10 个硬件厂商各自维护分支,不如上游一次性做对。

    4. 安全与开放不矛盾

    CRCR 的五层安全校验展示了如何在开放生态里做访问控制:用密码学(OIDC)而非"信任承诺"验证身份,用白名单而非"来者不拒"控制准入,用状态机而非"自由发挥"约束行为,用数据隔离而非"全盘信任"限制影响范围。即使某个下游仓库被攻破,也只能影响它自己的 CI 状态显示,无法篡改 PyTorch 的构建结果或合并决策。

    对国内硬件生态的启示

    国产 AI 芯片、边缘计算加速器要进入主流开发者工具链,"能跑 PyTorch"是基本门槛。但"能跑"和"长期维护"是两回事:

    • 很多团队通过打补丁、fork 分支的方式接入 PyTorch,短期内能 demo,但每次 PyTorch 升级都要重新对齐,最终变成"只支持某个旧版本"。
    • 测试覆盖不足:没有系统化复用 PyTorch 的 60 万条测试,只跑了几个常见算子,结果用户在生产环境踩到边角 case 时才发现不支持。
    • 上游看不到下游:即使国内某芯片团队维护了完善的适配仓库,PyTorch 社区也不知道——PR 合并时没人检查兼容性,等发现问题已经是几个版本之后。

    CRCR 和测试重构提供的路径是:

    1. 通过 PrivateUse1 + OpenReg 快速接入:不用等 PyTorch 官方为你单独开后端,用标准扩展机制就能进来。
    2. 注册到 CRCR 白名单:让你的 CI 状态对上游可见,建立"我们在认真维护"的信号。
    3. 复用参数化测试套件:60 万条测试自动覆盖你的硬件,不用自己从头写。
    4. 逐步晋升到 L3/L4:当 CI 稳定性得到验证后,可以申请成为 non-blocking 或 blocking check,让 PyTorch 社区在合并 PR 时必须考虑你的兼容性。

    这套流程的关键是用标准化接口降低准入门槛,用自动化基础设施降低维护成本。它不要求每个硬件厂商都有一个常驻 PyTorch 社区的全职团队,只需要按规范实现接口、跑通 CI、定期升级依赖。

    结语

    硬件多样化是 AI 算力竞争的必然结果,但如果每款硬件都用不同的方式接入框架,生态就会碎片化——开发者不敢用"只在一两款硬件上测过"的模型,硬件厂商也很难说服用户切换。

    PyTorch 加速器集成工作组在 2026 年上半年交出的答卷,核心思路是把"集成"本身标准化:不是让每个硬件自己想办法,而是提供清晰的扩展点、自动化的验证管线、可复用的测试套件,以及渐进式的信任模型。这套方法已经在 Intel XPU、AMD ROCm、Apple MPS、Qualcomm AI Engine 以及多款通过 PrivateUse1 接入的硬件上得到验证。

    对国内 AI 芯片生态来说,这是一条可行的"接入主流、长期维护"路径:不用等框架为你单独开口子,用标准机制就能进来;不用每次升级都重新对齐,参数化测试自动覆盖;不用担心上游看不见你,CRCR 让你的 CI 状态直接显示在 PyTorch 的合并决策里。

    硬件军备竞赛比的不只是算力峰值,还有生态集成能力。谁能用最低成本接入主流框架、长期跟进上游演进、让开发者无感知切换,谁就能在这场竞争中占据主动。

    82亿美元买一份「负载说明书」:AMD 收购 World Labs 的真实标的
    置顶

    82亿美元买一份「负载说明书」:AMD 收购 World Labs 的真实标的

    //

    24小时热榜

    Hinton联手Bengio发表首篇RSI论文:AI研发自动化会触发智能爆炸吗?
    TOP1

    Hinton联手Bengio发表首篇RSI论文:AI研发自动化会触发智能爆炸吗?

    彭博行业研究:中美AI模型性能差距缩至3%
    TOP2

    彭博行业研究:中美AI模型性能差距缩至3%

    3

    英伟达200亿美元交易遭Groq前工程师起诉

    2小时前
    英伟达200亿美元交易遭Groq前工程师起诉
    4

    Reflection AI 发布首款开源大模型 Beam

    2小时前
    Reflection AI 发布首款开源大模型 Beam
    5

    AI耳机迎硬件重构:主控芯片与存储产业链全面卡位

    19小时前
    AI耳机迎硬件重构:主控芯片与存储产业链全面卡位
    6

    成本压力倒逼硅谷转向:开源模型正在接管企业AI工作流

    19小时前
    成本压力倒逼硅谷转向:开源模型正在接管企业AI工作流
    7

    紧跟特朗普政令,马斯克宣布SpaceXAI将改名SpaceXSI

    22小时前
    紧跟特朗普政令,马斯克宣布SpaceXAI将改名SpaceXSI
    8

    纽约时报曝OpenAI曾忽视安全警告

    22小时前
    纽约时报曝OpenAI曾忽视安全警告
    热门标签
    大模型AgentRAG微调私有化部署Prompt EngineeringChatGPTClaudeDeepSeek智能客服知识管理内容生成代码辅助数据分析金融零售制造医疗教育AI 战略数字化转型ROI 分析OpenAIAnthropicGoogle

    关注公众号

    前途科技微信公众号

    扫码关注,获取最新 AI 资讯

    免费获取 AI 落地指南

    3 步完成企业诊断,获取专属转型建议

    已有 200+ 企业完成诊断