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, 凭据扫描, 底层开发, 异构计算, 张量计算, 无后门, 机器学习基础设施, 深度学习, 硬件使能, 算子开发, 设备后端, 逆向工具