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_"))
相关推荐
HackTwoHub6 分钟前
解锁 AI 红队全新玩法!Claude-Red 攻防 Skill 库,内置 SQLi、XXE、文件上传等 Web 专项 Skill,一键导入快速落地渗透实战
前端·人工智能·web安全·网络安全·自动化·系统安全
石小石Orz7 分钟前
如何设计一个优秀的 Skills
前端·人工智能
BOTTLE_平9 分钟前
工具篇:用什么AI与选型避坑指南
大数据·人工智能
xd18557855511 分钟前
落枕缓解指南 —— 鸿蒙AI智能助手开发全流程解析
人工智能·华为·harmonyos·鸿蒙
天真小巫13 分钟前
2026.7.21总结
人工智能
浊酒南街15 分钟前
subprocess.run函数介绍
python
星空19 分钟前
【无标题】
python
齐齐大魔王1 小时前
机器学习(三)
人工智能·机器学习
To_OC8 小时前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click8 小时前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能