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 工具进行性能分析和调优。

安装

  • Pippython -m pip install jittor(Linux 需要 python3-devlibomp-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 年《中国科学:信息科学》论文。

相关

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