artyom-beilis/pytorch_dlprim

DLPrimitives/OpenCL out of tree backend for pytorch

解决的问题

它为 PyTorch 提供了 OpenCL 后端,允许用户在更广泛的硬件设备(包括 AMD、Nvidia 和 Intel GPU)上运行和训练神经网络,即使这些设备没有原生的 CUDA 支持。

运作原理

该项目实现了一个基于 dlprimitives 库的“out-of-tree”后端,负责处理实际的算子实现。通过导入 pytorch_ocl 包,用户可以使用设备字符串 ocl(或旧版 PyTorch 的 privateuseone)来指定其 OpenCL 兼容设备,而不是使用 cuda。

目标对象

希望在 PyTorch 工作负载中使用来自不同供应商(AMD、Intel、Nvidia)的 OpenCL 兼容 GPU 的开发者和研究人员,特别适用于视觉网络。

特点

  • 广泛的硬件支持:已在 AMD (RX 6600XT, RX 560)、Nvidia (GTX 960) 和 Intel (HD 530, UHD 770, Arc A380) 设备上进行测试。
  • 视觉网络验证:针对多种 torchvision 模型进行了 CPU 参考验证,包括 ResNet、MobileNet、EfficientNet 和 ViT。
  • PyTorch 兼容性:支持 PyTorch 1.13 和 2.4+ 版本。
  • 专用 API:包含用于内存管理和同步的特定函数,例如 torch.ocl.empty_cache() 和 torch.ocl.synchronize()。

相关

  • 项目
  • 项目
  • 项目
  • 项目