1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-jittor

Клонировать/Скачать
README.cn.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 06:50 2440e13

Jittor: Фреймворк для реального времени компиляции глубокого обучения

Логотип Jittor

Начало работы | Установка | Учебные материалы | English

Jittor — это высокопроизводительный фреймворк для глубокого обучения, основанный на реальном времени компиляции и мета-операторах. Фреймворк включает мощный компилятор и оптимизатор операторов, которые генерируют настраиваемые высокопроизводительные коды для ваших моделей. Jittor также включает обширную библиотеку высокопроизводительных моделей, охватывающую такие области, как распознавание изображений, обнаружение, сегментация, генерация, дифференциальное рендеринг, геометрическое обучение, обучение с подкреплением и другие.

Передняя часть Jittor написана на Python и использует модульное и динамическое графическое выполнение, что является наиболее распространенным интерфейсом для современных фреймворков глубокого обучения. Задняя часть написана на высокопроизводительных языках, таких как CUDA и C++.Ссылки:

Быстрый старт

Мы предоставили несколько ноутбуков Jupyter для быстрого старта с Jittor.

  • [Пример: Определение модели и обучение][1]
  • [Основы: Op, Var][2]
  • [Метаоперации: Реализация собственного слоя свертки с помощью метаопераций][3]

Установка

Jittor требует следующего окружения:| ОС | Процессор | Python | Компилятор | (Необязательно) Платформа GPU | |--------------------------------------------------------|-------------------------------------------|--------|----------------|-------------------------------------------------------------| | Linux
(Ubuntu, CentOS, Arch,
UOS, KylinOS, ...) | x86
x86_64
ARM
loongson | >= 3.7 | g++ >= 5.4 | Nvidia CUDA >= 10.0, cuDNN
или AMD ROCm >= 4.0
или Hygon DCU DTK >= 22.04 | | macOS
(>= 10.14 Mojave) | intel
Apple Silicon | >= 3.7 | clang >= 8.0 | - | | Windows 10 & 11 | x86_64 | >= 3.8 | - | Nvidia CUDA >= 10.2 cuDNN |Jittor предлагает три метода установки: pip, docker и ручная установка:

Установка с помощью pip

Ниже приведены команды установки для Ubuntu. Если вы используете другую операционную систему Linux (например, CentOS), убедитесь, что у вас установлены зависимости (Python>=3.7, g++>=5.4) или используйте метод установки docker. Если вы уже установили компилятор и соответствующую версию Python, мы настоятельно рекомендуем использовать этот метод (если доступ к GitHub невозможен, вы можете скачать Jittor с главной страницы):

sudo apt install python3.7-dev libomp-dev
python3.7 -m pip install jittor
# или установка из GitHub (последняя версия)
# python3.7 -m pip install git+https://github.com/Jittor/jittor.git
python3.7 -m jittor.test.test_example

Если тестовый запуск проходит успешно, поздравляем, вы завершили установку. Jittor автоматически ищет подходящий компилятор по пути, если вы хотите указать компилятор вручную, используйте переменные окружения cc_path и nvcc_path (необязательно).

Установка на macOS

На macOS используйте homebrew для установки дополнительных зависимостей.

brew install libomp

Затем вы можете установить Jittor через pip и проверить, что он успешно запускается.

python3.7 -m pip install jittor
python3.7 -m jittor.test.test_example

В настоящее время на macOS Jittor поддерживает только вычисления на CPU.

Установка на Windows

На Windows подготовьте Python>=3.8, инструкции по установке приведены ниже (для установки с помощью conda требуются дополнительные команды):```bash

проверьте версию Python (>=3.8)

python --version python -m pip install jittor

если используется conda

conda install pywin32


На Windows Jittor автоматически обнаруживает видеокарту и устанавливает соответствующую версию CUDA. Убедитесь, что ваш драйвер NVIDIA поддерживает CUDA 10.2 или выше. Вы также можете использовать следующую команду для ручной установки CUDA для Jittor:

```bash
python -m jittor_utils.install_cuda

Установка с помощью Docker

Мы предоставляем возможность установки с помощью Docker, что позволяет избежать настройки окружения. Инструкции по установке с помощью Docker следующие:

# Только CPU (Linux)
docker run -it --network host jittor/jittor
# CPU и CUDA (Linux)
docker run -it --network host --gpus all jittor/jittor-cuda
# Только CPU (Mac и Windows)
docker run -it -p 8888:8888 jittor/jittor

Для получения более подробных инструкций по установке с помощью Docker, обратитесь к руководству по установке Jittor с помощью Docker для Windows/Mac/Linux

Ручная установка

Мы пошагово покажем, как установить Jittor в Ubuntu 16.04, для других дистрибутивов Linux могут потребоваться аналогичные команды.

Шаг 1: Выбор вашего компилятора

# g++
sudo apt install g++ build-essential libomp-dev

# ИЛИ clang++-8
wget -O - https://raw.githubusercontent.com/Jittor/jittor/master/script/install_llvm.sh > /tmp/llvm.sh
bash /tmp/llvm.sh 8

Шаг 2: Установка Python и python-dev

Jittor требует версию Python>=3.7.

sudo apt install python3.7 python3.7-dev

Шаг 3: Запуск Jittor

Полный фреймворк является компилируемым в реальном времени. Давайте установим Jittor через pip.

git clone https://github.com/Jittor/jittor.git
sudo pip3.7 install ./jittor
export cc_path="clang++-8"
# если используется другой компилятор, измените cc_path
# export cc_path="g++"
# export cc_path="icc"

Запуск простого теста

python3.7 -m jittor.test.test_example


Если тест прошел успешно, то ваш Jittor готов к использованию.


### Опциональный шаг 4: Включение CUDA


Использование CUDA в Jittor очень просто, достаточно установить переменную окружения `nvcc_path`

```bash
# Замените эту переменную на путь к вашему nvcc
export nvcc_path="/usr/local/cuda/bin/nvcc" 
# Запуск простого теста CUDA
python3.7 -m jittor.test.test_cuda 

Если тест прошел успешно, то вы можете включить CUDA в Jittor, установив флаг use_cuda.

import jittor as jt
jt.flags.use_cuda = 1

Опциональный шаг 5: Тестирование обучения Resnet18

Чтобы проверить целостность Jittor, вы можете запустить тест обучения Resnet18. Обратите внимание, что этот тест требует 6 ГБ видеопамяти.

python3.7 -m jittor.test.test_resnet

Если эти тесты провалились, пожалуйста, сообщите нам об ошибках, мы очень欢迎您参与到Jittor的开发中^ _ ^

Учебник

В разделе учебника мы кратко объясним основные концепции Jittor.

Для обучения моделей с помощью Jittor вам нужно знать два основных понятия:

  • Var: основной тип данных Jittor
  • Operations: операции Jittor, аналогичные numpy

Типы данныхСначала давайте начнем с Var. Var — это основной тип данных Jittor, и для повышения производительности вычисления в Jittor асинхронны. Если вам нужно получить доступ к данным, вы можете использовать Var.data для синхронного доступа к данным.

import jittor as jt
a = jt.float32([1, 2, 3])
print(a)
print(a.data)
# Вывод: float32[3,]
# Вывод: [ 1. 2. 3.]

Кроме того, вы можете присвоить переменной имя.

a.name('a')
print(a.name())
# Вывод: a

Операции с данными

Операции Jittor аналогичны numpy. Давайте попробуем несколько операций, создадим Var a и b с помощью оператора jt.float32 и сложим их. Выведем информацию о этих переменных, и вы заметите, что они имеют одинаковую форму и тип.

import jittor as jt
a = jt.float32([1, 2, 3])
b = jt.float32([4, 5, 6])
c = a * b
print(a, b, c)
print(type(a), type(b), type(c))
# Вывод: float32[3,] float32[3,] float32[3,]
# Вывод: <class 'jittor_core.Var'> <class 'jittor_core.Var'> <class 'jittor_core.Var'>

Кроме того, все операции jt.xxx(Var,...) имеют сокращения Var.xxx(...). Например:

c.max() # сокращение для jt.max(c)
c.add(a) # сокращение для jt.add(c, a)
c.min(keepdims=True) # сокращение для jt.min(c, keepdims=True)

Если вы хотите узнать все операции, поддерживаемые Jittor, вы можете запустить help(jt.ops). Все операции, которые вы найдете в jt.ops.xxx, также доступны по сокращенному имени jt.xxx.

help(jt.ops)
# Вывод:
#   abs(x: core.Var) -> core.Var
#   add(x: core.Var, y: core.Var) -> core.Var
#   array(data: array) -> core.Var
#   binary(x: core.Var, y: core.Var, op: str) -> core.Var
#   ......
```### Дополнительные учебные материалы

Если вы хотите узнать больше о Jittor, ознакомьтесь с следующими ноутбуками:

* Быстрый старт
    * [Пример: определение модели и обучение][1]
    * [Основные понятия: Op, Var][2]
    * [Мета-операторы: реализация собственного слоя свертки с помощью мета-операторов][3]
* Расширенные темы
    * [Пользовательские операторы: написание операторов на C++ и CUDA и их немедленное компиляция][4]
    * [Анализатор производительности: анализ вашей модели][5]
    * Jtune: инструмент для настройки производительности

[1]: python/jittor/notebook/example.src.md	"Пример"
[2]: python/jittor/notebook/basics.src.md	"Основные понятия"
[3]: python/jittor/notebook/meta_op.src.md	"Мета-операторы"
[4]: python/jittor/notebook/custom_op.src.md	"Пользовательские операторы"
[5]: python/jittor/notebook/profiler.src.md	"Анализатор производительности"

Эти ноутбуки можно запустить на вашем компьютере с помощью команды `python3.7 -m jittor.notebook`.


## Вклад

Jittor ещё молод. В нём могут быть ошибки и проблемы. Пожалуйста, сообщите о них в нашей системе отслеживания ошибок. Мы приветствуем ваш вклад в Jittor. Кроме того, если у вас есть идеи по поводу Jittor, пожалуйста, сообщите нам.

Вы можете помочь Jittor следующими способами:

* Цитирование Jittor в ваших статьях
* Рекомендация Jittor своим друзьям
* Вклад в код
* Вклад в учебные материалы и документацию
* Открытие issue
* Ответ на вопросы, связанные с Jittor
* Поддержка проекта
* Постоянное следование за Jittor
* ...## Контакт

Официальный сайт: http://cg.cs.tsinghua.edu.cn/jittor/

Электронная почта: jittor@qq.com

Открытие issue: https://github.com/Jittor/jittor/issues

QQ группа: 761222083

## Команда

Jittor в настоящее время поддерживается [группой по компьютерной графике Тsinghua University](https://cg.cs.tsinghua.edu.cn/). Если вы также интересуетесь Jittor и хотите улучшить его, присоединяйтесь к нам!

## Цитирование

@article{hu2020jittor, title={Jittor: новая глубокая модель с мета-операторами и унифицированным графическим выполнением}, author={Hu, Shi-Min and Liang, Dun and Yang, Guo-Ye and Yang, Guo-Wei and Zhou, Wen-Yang}, journal={Science China Information Sciences}, volume={63}, number={222103}, pages={1--21}, year={2020} }


## Заявление о правах

Как указано в файле LICENSE.txt, Jittor использует лицензию Apache 2.0.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-jittor.git
git@api.gitlife.ru:oschina-mirror/mirrors-jittor.git
oschina-mirror
mirrors-jittor
mirrors-jittor
master