{"id":15038930,"url":"https://github.com/jittor/jittor","last_synced_at":"2025-10-20T01:05:07.014Z","repository":{"id":37017272,"uuid":"248248401","full_name":"Jittor/jittor","owner":"Jittor","description":"Jittor is a high-performance deep learning framework based on JIT compiling and meta-operators.","archived":false,"fork":false,"pushed_at":"2025-04-22T12:20:49.000Z","size":19566,"stargazers_count":3138,"open_issues_count":255,"forks_count":316,"subscribers_count":61,"default_branch":"master","last_synced_at":"2025-04-23T17:06:31.638Z","etag":null,"topics":["cuda","deep-learning","gpu","jittor","python"],"latest_commit_sha":null,"homepage":"https://cg.cs.tsinghua.edu.cn/jittor/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jittor.png","metadata":{"files":{"readme":"README.cn.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-18T14:06:07.000Z","updated_at":"2025-04-22T12:20:55.000Z","dependencies_parsed_at":"2023-02-14T05:30:32.372Z","dependency_job_id":"b545c861-75ab-4c23-9f30-4c1a06553289","html_url":"https://github.com/Jittor/jittor","commit_stats":{"total_commits":1451,"total_committers":63,"mean_commits":23.03174603174603,"dds":"0.47691247415575466","last_synced_commit":"733828ec97fb420c5fd07a198fb447d9c9492ef1"},"previous_names":[],"tags_count":330,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jittor%2Fjittor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jittor%2Fjittor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jittor%2Fjittor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jittor%2Fjittor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jittor","download_url":"https://codeload.github.com/Jittor/jittor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253746922,"owners_count":21957655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuda","deep-learning","gpu","jittor","python"],"created_at":"2024-09-24T20:40:49.016Z","updated_at":"2025-10-20T01:05:01.979Z","avatar_url":"https://github.com/Jittor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jittor: 即时编译深度学习框架\n\n![Jittor Logo](https://cg.cs.tsinghua.edu.cn/jittor/favicon_package_v0/JittorLogo_Final1220.svg)\n\n\n[快速开始](#快速开始) | [安装](#安装) | [教程](#教程) | [English](./README.md)\n\n\nJittor 是一个基于即时编译和元算子的高性能深度学习框架，整个框架在即时编译的同时，还集成了强大的Op编译器和调优器，为您的模型生成定制化的高性能代码。Jittor还包含了丰富的高性能模型库，涵盖范围包括：图像识别，检测，分割，生成，可微渲染，几何学习，强化学习等等。\n\n\nJittor前端语言为Python。前端使用了模块化和动态图执行的设计，这是目前最主流的深度学习框架接口设计。后端则使用高性能语言编写，如CUDA，C++。\n\n\n相关链接：\n*  [Jittor官网](https://cg.cs.tsinghua.edu.cn/jittor/)\n*  [Jittor教程](https://cg.cs.tsinghua.edu.cn/jittor/tutorial/)\n*  [Jittor模型库](https://cg.cs.tsinghua.edu.cn/jittor/resources/)\n*  [Jittor文档](https://cg.cs.tsinghua.edu.cn/jittor/assets/docs/index.html)\n*  [Github](https://github.com/jittor/jittor)， [GitLink](https://www.gitlink.org.cn/jittor/jittor)， [Gitee](https://gitee.com/jittor/jittor)\n*  [Jittor 论坛](https://discuss.jittor.org/)\n*  [Jittor 精选仓库](https://github.com/Jittor/jittor/blob/master/AWESOME-JITTOR-LIST.md)\n*  即时通信: QQ Group(761222083)\n\n\n\n下面的代码演示了如何一步一步使用Python代码，从头对一个双层神经网络建模。\n\n```python\nimport jittor as jt\nfrom jittor import Module\nfrom jittor import nn\nimport numpy as np\n\nclass Model(Module):\n    def __init__(self):\n        self.layer1 = nn.Linear(1, 10)\n        self.relu = nn.Relu() \n        self.layer2 = nn.Linear(10, 1)\n    def execute (self,x) :\n        x = self.layer1(x)\n        x = self.relu(x)\n        x = self.layer2(x)\n        return x\n\ndef get_data(n): # generate random data for training test.\n    for i in range(n):\n        x = np.random.rand(batch_size, 1)\n        y = x*x\n        yield jt.float32(x), jt.float32(y)\n\n\nlearning_rate = 0.1\nbatch_size = 50\nn = 1000\n\nmodel = Model()\noptim = nn.SGD(model.parameters(), learning_rate)\n\nfor i,(x,y) in enumerate(get_data(n)):\n    pred_y = model(x)\n    dy = pred_y - y\n    loss = dy * dy\n    loss_mean = loss.mean()\n    optim.step(loss_mean)\n    print(f\"step {i}, loss = {loss_mean.data.sum()}\")\n```\n\n\n\n## 大纲\n\n- [快速开始](#快速开始)\n- [安装](#安装)\n- [教程](#教程)\n- [贡献](#贡献)\n- [团队](#团队)\n- [版权声明](#版权声明)\n\n\n## 快速开始\n\n\n我们提供了一些jupyter notebooks来帮助您快速入门Jittor。\n\n- [示例：模型定义与训练][1]\n- [基础：Op, Var][2]\n- [元算子：通过元算子实现自己的卷积层][3]\n\n\n## 安装\n\nJittor框架对环境要求如下:\n\n\n| OS                                                     | CPU                                 | Python | Compiler     | (Optional) GPU platform                                |\n|--------------------------------------------------------|-------------------------------------|--------|--------------|---------------------------------------------|\n| Linux\u003cbr\u003e(Ubuntu, CentOS, Arch, \u003cbr\u003eUOS, KylinOS, ...) | x86 \u003cbr\u003ex86_64 \u003cbr\u003eARM \u003cbr\u003eloongson | \u003e= 3.7 | g++ \u003e=5.4    | Nvidia CUDA \u003e= 10.0, [cuDNN](https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar) \u003cbr\u003e or [AMD ROCm](https://docs.amd.com/) \u003e= 4.0 \u003cbr\u003e or [Hygon DCU DTK](https://tycloud.hpccube.com/doc/1.0.6/11277/general-handbook/software-tutorial/jittor.html) \u003e= 22.04 |\n| macOS \u003cbr\u003e(\u003e= 10.14 Mojave)                            | intel\u003cbr\u003eApple Silicon              | \u003e= 3.7 | clang \u003e= 8.0 | -                                           |\n| Windows 10 \u0026 11                                        | x86_64                              | [\u003e= 3.8](https://www.python.org/downloads/windows/) | -            | Nvidia CUDA \u003e= 10.2 [cuDNN](https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows)                               |\n\nJittor 提供了三种安装方法：pip、docker和手动安装：\n\n\n## Pip 安装\n\n\n下面将展示Ubuntu的安装命令，如果您在使用其他Linux操作系统（如CentOS）， 请安装好依赖（Python\u003e=3.7, g++\u003e=5.4）或者使用**docker安装**， 如果您已经装好编译器和对应版本的Python,我们强烈推荐您使用这种方法\n(如果无法访问github, 可以通过Jittor主页下载):\n\n```bash\nsudo apt install python3.7-dev libomp-dev\npython3.7 -m pip install jittor\n# or install from github(latest version)\n# python3.7 -m pip install git+https://github.com/Jittor/jittor.git\npython3.7 -m jittor.test.test_example\n```\n\n如果测试运行通过,恭喜你已经安装完成.\njittor会自动在路径中寻找合适的编译器, 如果您希望手动指定编译器, 请使用环境变量 `cc_path` 和 `nvcc_path`(可选).\n\n### macOS 安装\n\n\nmacOS 请使用 [homebrew](https://brew.sh) 安装额外的依赖。\n\n\n```bash\nbrew install libomp\n```\n\n之后您可以通过 pip 安装 jittor，并测试是否可以成功运行。\n\n\n```bash\npython3.7 -m pip install jittor\npython3.7 -m jittor.test.test_example\n```\n\n目前在 macOS 中，jittor 只支持 CPU 计算。\n\n\n### Windows安装\n\n\nWindows 请准备好Python\u003e=3.8，安装方法如下(conda安装需要额外命令)：\n\nWindows user please prepare Python\u003e=3.8, install instructions are list below(conda needs extra instructions)：\n\n```bash\n# check your python version(\u003e=3.8)\npython --version\npython -m pip install jittor\n# if conda is used\nconda install pywin32\n```\n\nWindows 下，jittor会自动检测显卡并安装对应的 CUDA， 请确保您的NVIDIA驱动支持CUDA 10.2 以上，您还可以使用如下命令手动为Jittor安装CUDA：\n\n\n```bash\npython -m jittor_utils.install_cuda\n```\n\n\n\n## Docker 安装\n\n我们提供了Docker安装方式，免去您配置环境，Docker安装方法如下：\n\n\n```\n# CPU only(Linux)\ndocker run -it --network host jittor/jittor\n# CPU and CUDA(Linux)\ndocker run -it --network host --gpus all jittor/jittor-cuda\n# CPU only(Mac and Windows)\ndocker run -it -p 8888:8888 jittor/jittor\n```\n\n关于Docker安装的详细教程，可以参考[Windows/Mac/Linux通过Docker安装计图](https://cg.cs.tsinghua.edu.cn/jittor/tutorial/2020-5-15-00-00-docker/)\n\n## 手动安装\n\n\n我们将逐步演示如何在Ubuntu 16.04中安装Jittor，其他Linux发行版可能可以使用类似的命令。\n\n\n### 步骤一：选择您的后端编译器\n\n```bash\n# g++\nsudo apt install g++ build-essential libomp-dev\n\n# OR clang++-8\nwget -O - https://raw.githubusercontent.com/Jittor/jittor/master/script/install_llvm.sh \u003e /tmp/llvm.sh\nbash /tmp/llvm.sh 8\n```\n\n### 步骤二：安装Python和python-dev\n\n\nJittor需要python的版本\u003e=3.7。\n\n```bash\nsudo apt install python3.7 python3.7-dev\n```\n\n\n### 步骤三：运行Jittor\n\n\n整个框架是即时编译的。 让我们通过pip安装jittor\n\n```bash\ngit clone https://github.com/Jittor/jittor.git\nsudo pip3.7 install ./jittor\nexport cc_path=\"clang++-8\"\n# if other compiler is used, change cc_path\n# export cc_path=\"g++\"\n# export cc_path=\"icc\"\n\n# run a simple test\npython3.7 -m jittor.test.test_example\n```\n\n如果通过了测试，那么您的Jittor已经准备就绪。\n\n\n### 可选步骤四：启用CUDA\n\n\n在Jittor中使用CUDA非常简单，只需设置环境值`nvcc_path`\n\n```bash\n# replace this var with your nvcc location \nexport nvcc_path=\"/usr/local/cuda/bin/nvcc\" \n# run a simple cuda test\npython3.7 -m jittor.test.test_cuda \n```\n\n如果测试通过，则可以通过设置`use_cuda`标识符在Jittor中启用CUDA。\n\n```python\nimport jittor as jt\njt.flags.use_cuda = 1\n```\n\n\n### 可选步骤五：测试训练Resnet18\n\n\n要检查Jittor的完整性，您可以运行Resnet18训练测试。需要注意的是，这个测试需要6G显存。\n\n```bash\npython3.7 -m jittor.test.test_resnet\n```\n\n如果这些测试失败，请为我们报告错误，我们十分欢迎您为Jittor做出贡献^ _ ^\n\n\n## 教程\n\n\n在教程部分，我们将简要解释Jittor的基本概念。\n\n\n要使用Jittor训练模型，您需要了解两个主要概念：\n\n* Var：Jittor的基本数据类型\n* Operations：Jittor的算子与numpy类似\n\n\n### 数据类型\n\n\n首先，让我们开始使用Var。Var是jittor的基本数据类型，为了运算更加高效Jittor中的计算过程是异步的。 如果要访问数据，可以使用`Var.data`进行同步数据访问。\n\n```python\nimport jittor as jt\na = jt.float32([1,2,3])\nprint (a)\nprint (a.data)\n# Output: float32[3,]\n# Output: [ 1. 2. 3.]\n```\n\n\n此外我们可以给变量起一个名字。\n\n```python\na.name('a')\nprint(a.name())\n# Output: a\n```\n\n\n### 数据运算\n\n\n Jittor的算子与numpy类似。 让我们尝试一些运算， 我们通过Op`jt.float32`创建Var `a`和`b`，并将它们相加。 输出这些变量相关信息，可以看出它们具有相同的形状和类型。\n\n```python\nimport jittor as jt\na = jt.float32([1,2,3])\nb = jt.float32([4,5,6])\nc = a*b\nprint(a,b,c)\nprint(type(a), type(b), type(c))\n# Output: float32[3,] float32[3,] float32[3,]\n# Output: \u003cclass 'jittor_core.Var'\u003e \u003cclass 'jittor_core.Var'\u003e \u003cclass 'jittor_core.Var'\u003e\n```\n\n除此之外，我们使用的所有算子`jt.xxx(Var,...)`都具有别名`Var.xxx(...)`。 例如：\n\n```python\nc.max() # alias of jt.max(c)\nc.add(a) # alias of jt.add(c, a)\nc.min(keepdims=True) # alias of jt.min(c, keepdims=True)\n```\n\n\n如果您想知道Jittor支持的所有运算，可以运行`help(jt.ops)`。 您在`jt.ops.xxx`中找到的所有运算都可以通过别名`jt.xxx`。\n\n```python\nhelp(jt.ops)\n# Output:\n#   abs(x: core.Var) -\u003e core.Var\n#   add(x: core.Var, y: core.Var) -\u003e core.Var\n#   array(data: array) -\u003e core.Var\n#   binary(x: core.Var, y: core.Var, op: str) -\u003e core.Var\n#   ......\n```\n\n### 更多教程\n\n\n如果您想进一步了解Jittor，请查看以下notebooks：\n\n* 快速开始\n    * [示例：模型定义与训练][1]\n    * [基本概念：Op, Var][2]\n    * [元算子：通过元算子实现自己的卷积层][3]\n* 进阶\n    * [自定义算子：使用C ++和CUDA编写您的算子，并其进行即时编译][4]\n    * [性能分析器：分析您的模型][5]\n    * Jtune：性能调优工具\n\n\n\n[1]: python/jittor/notebook/example.src.md\t\"示例\"\n[2]: python/jittor/notebook/basics.src.md\t\"基本概念\"\n[3]: python/jittor/notebook/meta_op.src.md\t\"元算子\"\n[4]: python/jittor/notebook/custom_op.src.md\t\"自定义算子\"\n[5]: python/jittor/notebook/profiler.src.md\t\"性能分析器\"\n\n\n这些notebooks可以通过python3.7 -m jittor.notebook在您自己的计算机中运行。\n\n\n## 贡献\n\n\nJittor还很年轻。 它可能存在错误和问题。 请在我们的错误跟踪系统中报告它们。 我们欢迎您为Jittor做出贡献。 此外，如果您对Jittor有任何想法，请告诉我们。\n\n您可以用以下方式帮助Jittor：\n\n* 在论文中引用 Jittor\n* 向身边的好朋友推荐 Jittor\n* 贡献代码\n* 贡献教程和文档\n* 提出issue\n* 回答 jittor 相关问题\n* 点亮小星星\n* 持续关注 jittor\n* ……\n\n\n\n\n## 联系我们\n\n官方主页： http://cg.cs.tsinghua.edu.cn/jittor/\n\n电子邮件：jittor@qq.com\n\n提出issue：https://github.com/Jittor/jittor/issues\n\n\n\n\n\nQQ 群：761222083\n\n\n\n## 团队\n\n\nJittor目前由[清华大学计算机图形学组](https://cg.cs.tsinghua.edu.cn/)维护。 如果您也对Jittor感兴趣并希望对其进行改进，请加入我们！\n\n\n## 引用\n\n```\n@article{hu2020jittor,\n  title={Jittor: a novel deep learning framework with meta-operators and unified graph execution},\n  author={Hu, Shi-Min and Liang, Dun and Yang, Guo-Ye and Yang, Guo-Wei and Zhou, Wen-Yang},\n  journal={Science China Information Sciences},\n  volume={63},\n  number={222103},\n  pages={1--21},\n  year={2020}\n}\n```\n\n\n## 版权声明\n\n\n如LICENSE.txt文件中所示，Jittor使用Apache 2.0版权协议。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjittor%2Fjittor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjittor%2Fjittor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjittor%2Fjittor/lists"}