torch-spyre/torch-spyre

GitHub: torch-spyre/torch-spyre

为 IBM Spyre AI 加速器提供 PyTorch 设备后端支持,使其能够作为独立设备运行 PyTorch 张量运算。

Stars: 33 | Forks: 71

# Torch Spyre Device 启用 本项目包含 PyTorch 层的 C++ 和 Python 代码,用于在 PyTorch 中支持将 [IBM Spyre device](./docs/spyre.md) 作为名为 `spyre` 的新设备。 ## 设置与构建 构建此项目目前需要 IBM Spyre Software Stack 的开发版本。 如果您是 IBM 内部员工,可以在内部 `#aiu-inductor` Slack 频道中找到说明。 ## 如何试用 非交互式简单脚本: ``` python3 -m pytest tests/ python3 examples/tensor_allocate.py python3 examples/softmax.py ``` 交互式: ``` python3 >>> import torch >>> x = torch.tensor([1,2], dtype=torch.float16, device="spyre") >>> x.device device(type='spyre', index=0) ``` 控制日志记录: * `TORCH_SPYRE_DEBUG=1` 启用 debug 日志 * `TORCH_SPYRE_DOWNCAST_WARN=0` 禁用 downcast 警告 (可选值: 0/1, true/false, on/off) * `DT_DEEPRT_VERBOSE=-1` 减少 Spyre stack 日志 * `DTLOG_LEVEL=error` 减少 Spyre stack 日志 ## 描述 该 IBM Spyre device 的 PyTorch backend 实现是基于一个独立的 PyTorch 树外 (out-of-tree) backend 示例,该示例利用了核心的 "PrivateUse1" backend。关于该项目,您可以访问此 [链接](https://github.com/pytorch/pytorch/tree/v2.9.1/test/cpp_extensions/open_registration_extension)。 与 open_registration_extension 不同,大部分代码将在 C++ 中完成,并利用底层的 spyre repositories。 ## 目录结构 本项目包含 2 个主要的开发目录: * `torch_spyre`: 包含启用 eager 模式所需的所有 Python 代码(目前正在更新中)。此 [链接](https://github.com/pytorch/pytorch/tree/v2.9.1/test/cpp_extensions/open_registration_extension) 描述了我们遵循的设计原则。从 Python 的角度来看,主要需要做的就是使用 PrivateUse1 注册设备。 * `torch_spyre/csrc`: 这里存放 PyTorch tensor 操作 / 管理函数的所有 Spyre 特定实现。
标签:AIU, AI 加速器, C++ 扩展, IBM Spyre, Out-of-tree Backend, PrivateUse1, Python, PyTorch, Softmax, 凭据扫描, 底层开发, 异构计算, 张量计算, 无后门, 机器学习基础设施, 深度学习, 硬件使能, 算子开发, 设备后端, 逆向工具