pytorch自定义backend

使用PrivateUse1定义out-of-tree backend

pytorch tutotial Facilitating New Backend Integration by PrivateUse1

相关api:
torch.utils.rename_privateuse1_backend

distributed backend

pytorch tutorial Customize Process Group Backends Using Cpp Extensions

相关api:
torch.distributed.Backend.register_backend
torch.distributed.init_process_group
ProcessGroup::allreduce
fallback example1
fallback example2

分布式算子fallback处理

Flaggems
FlagCX

报错:

NotImplementedError: Could not run 'c10d::allreduce_' with arguments from the 'Autogradtxda' backend.

解决

参考CPU,为DispatchKey AutogradCPU(_表示整个module?)设置fallback:

以上修改会让此接口返回True:

python 复制代码
print("AutogradCPU backend fallback registered:", torch._C._dispatch_has_backend_fallback(
            torch._C.DispatchKey.AutogradCPU
        ))
调试代码段
python 复制代码
print(f"! rank {MY_RANK} privateuse1_backend_name: {torch._C._get_privateuse1_backend_name()}")

# 查看 c10d::allreduce_ 是否在 多个 dispatch key 上有 kernel
print("AutogradPrivateUse1 kernel registered:", torch._C._dispatch_has_kernel_for_dispatch_key(
    "c10d::allreduce_",
    torch._C.DispatchKey.AutogradPrivateUse1
))  # 应为 False
print("AutogradCPU kernel registered:", torch._C._dispatch_has_kernel_for_dispatch_key(
    "c10d::allreduce_",
    torch._C.DispatchKey.AutogradCPU
))  # 应为 False
print("CPU kernel registered:", torch._C._dispatch_has_kernel_for_dispatch_key(
    "c10d::allreduce_",
    torch._C.DispatchKey.CPU
))  # 应为 True
print("PrivateUse1 kernel registered:", torch._C._dispatch_has_kernel_for_dispatch_key(
    "c10d::allreduce_",
    torch._C.DispatchKey.PrivateUse1
))  # 应为 True

# 查看AutogradPrivateUse1, AutogradCPU, 是否有 backend fallback
print("AutogradPrivateUse1 backend fallback registered:", torch._C._dispatch_has_backend_fallback(
    torch._C.DispatchKey.AutogradPrivateUse1
))  # 应为 True

print("AutogradCPU backend fallback registered:", torch._C._dispatch_has_backend_fallback(
    torch._C.DispatchKey.AutogradCPU
))  # 应为 True

# export TORCH_LOGS=all IS NEEDED
print(torch._C._dispatch_dump("c10d::allreduce_"))
相关推荐
番茄不是西红柿kk6 分钟前
AtomGit CodingPlan限时免费、限量 500 人/天
人工智能
深圳市益普科技有限公司12 分钟前
SMT 产线 MES 怎么管“钢网、刮刀、feeder”这些易耗辅料:防错与寿命追踪
人工智能
科研小牛马17 分钟前
北航何静:DeepSeek Harness,部署操作教程
人工智能
朝阳资本论18 分钟前
机器人的智能短板,大晓世界模型补齐
人工智能
YFJ_mily20 分钟前
9.24早鸟通道即将关闭|IMRA2026智能制造机器人自动化IEEE会议|往届EI稳定检索,设有学生专属投稿权益
人工智能·机器学习·机器人·自动化·智能制造·rdlink研发家·马鞍山会议
山哥ol20 分钟前
【Geany 环境配置与中文乱码解决参考】
python
陌シ未央ゞ27 分钟前
基于BM25算法和RRF实现的混合索引(java版)
人工智能·spring boot·后端·算法
jsl_jsl_jsl27 分钟前
《Skill 与定时任务:让 Agent 在没人说话时也能干活》
人工智能
事界见闻28 分钟前
网页版AI 3D工具通常能完成哪些基础工作?生成、处理与导出流程对比
人工智能·3d
renhongxia130 分钟前
数字孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·算法·机器学习·数字孪生