Hidet 是一个用 Python 编写的开源深度学习编译器。它支持将来自 PyTorch 和 ONNX 的 DNN 模型端到端编译为高效的 CUDA 内核。项目应用了一系列图级和算子级优化来提升性能。
目前,Hidet 主要专注于优化 NVIDIA GPU 上的推理工作负载,要求环境具备:
- Linux 操作系统
- CUDA Toolkit 11.6+
- Python 3.9+
请通过以下命令安装 hidet:
pip install hidet
你也可以通过从源码构建来安装 hidet。
通过 hidet 优化一个 PyTorch 模型(需要 PyTorch 2.3):
import torch
# 定义 PyTorch 模型
model = torch.hub.load('pytorch/vision:v0.6.0', 'resnet18', pretrained=True).cuda().eval()
x = torch.rand(1, 3, 224, 224).cuda()
# 通过 Hidet 编译模型
# 可选:设置优化选项(详见文档)
# import hidet
# hidet.torch.dynamo_config.search_space(2) # 调优每个可调优算子
model_opt = torch.compile(model, backend='hidet')
# 运行优化后的模型
y = model_opt(x)
查看以下教程以了解其他用法:
- 快速开始
Hidet 源自以下研究工作:
Hidet: 深度学习张量程序的任务映射编程范式
Yaoyao Ding, Cody Hao Yu, Bojian Zheng, Yizhi Liu, Yida Wang, and Gennady Pekhimenko.
ASPLOS '23
如果在你的研究中使用了 Hidet,欢迎引用我们的论文。
Hidet 目前由 CentML Inc 的团队积极开发。
我们欢迎来自社区的贡献。请参阅贡献指南了解更多详情。
Hidet 基于 Apache 2.0 许可证发布。