Jittor/jittor
Jittor is a high-performance deep learning framework based on JIT compiling and meta-operators.
Jittor – 一种即时编译的深度学习框架
是什么 – Jittor 是一个用 C++/CUDA 编写的全栈深度学习库,提供 Python 前端。它将整个计算图 即时编译(JIT)并使用元操作符系统为特定训练模型生成高度优化的内核。其设计遵循 PyTorch/TensorFlow-Eager 中熟悉的动态图风格,您只需编写普通的 Python 代码,框架便会自动将其转换为高效的原生代码。
核心理念
- 即时编译 – 每个操作符及其周围图在运行时即时编译,使编译器能够针对确切的张量形状和硬件生成特化代码。
- 元操作符 – 高层次的构建模块,可组合或自定义,允许用户在不离开 Python 的情况下编写新操作符(例如自定义卷积)。
- 统一图执行 – Jittor 构建动态图,但也能融合操作以实现最佳性能,类似于静态图框架。
- 后端灵活性 – 支持 CPU、NVIDIA CUDA、AMD ROCm 以及 Hygon DCU;核心为 C++/CUDA,用户 API 为纯 Python。
可以做什么
- 无需额外配置即可直接训练经典视觉模型(ResNet、检测、分割、生成模型)。
- 使用提供的模型库,实验可微分渲染、几何深度学习、强化学习等。
- 用 C++/CUDA 编写高性能自定义操作符,并自动进行 JIT 编译。
- 使用内置的 jtune 工具进行性能分析和调优。
安装
- Pip –
python -m pip install jittor(Linux 需要python3-dev和libomp-dev)。 - Docker – 预构建镜像
jittor/jittor(仅 CPU)和jittor/jittor-cuda(GPU)。 - 手动 – 克隆仓库,安装 C++ 编译器(g++ ≥ 5.4 或 clang ≥ 8),安装 Python ≥ 3.7,然后
sudo pip install ./jittor。 - GPU 支持为可选;安装 CUDA 后设置
jt.flags.use_cuda = 1,或在 Windows 上让 Jittor 自动下载。
快速示例(两层回归模型) – README 包含一个最小脚本,展示典型工作流:
import jittor as jt, numpy as np
from jittor import nn, Module
class Model(Module):
def __init__(self):
self.l1 = nn.Linear(1, 10)
self.relu = nn.Relu()
self.l2 = nn.Linear(10, 1)
def execute(self, x):
return self.l2(self.relu(self.l1(x)))
model = Model()
opt = nn.SGD(model.parameters(), lr=0.1)
for x, y in data_generator():
pred = model(x)
loss = ((pred - y) ** 2).mean()
opt.step(loss)
print('loss', loss.data.item())
代码与 PyTorch 风格模块相似,但底层 Jittor 会 JIT 编译整个前向-反向传播以实现最大速度。
学习资源
- 官方网站和文档: https://cg.cs.tsinghua.edu.cn/jittor/
- 用于基础、元操作符、自定义操作符、性能分析等的交互式笔记本。
- 社区论坛、QQ 群,以及第三方项目“Awesome Jittor”列表。
生态系统
- 模型库涵盖图像分类、检测、分割、生成模型、可微分渲染、几何学习和强化学习。
- 工具:
jtune用于内核调优,性能分析器,以及模型导出/导入工具。 - 可通过自定义 C++/CUDA 操作符和 Python 元操作符扩展。
许可证 – Apache 2.0(参见 LICENSE.txt 文件)。
引用 – 若在研究中使用 Jittor,请引用 README 中提供的 2020 年《中国科学:信息科学》论文。
相关
- 项目
- 项目
- 项目
- 项目
- 项目