Начало работы | Установка | Учебные материалы | English
Jittor — это высокопроизводительный фреймворк для глубокого обучения, основанный на реальном времени компиляции и мета-операторах. Фреймворк включает мощный компилятор и оптимизатор операторов, которые генерируют настраиваемые высокопроизводительные коды для ваших моделей. Jittor также включает обширную библиотеку высокопроизводительных моделей, охватывающую такие области, как распознавание изображений, обнаружение, сегментация, генерация, дифференциальное рендеринг, геометрическое обучение, обучение с подкреплением и другие.
Передняя часть Jittor написана на Python и использует модульное и динамическое графическое выполнение, что является наиболее распространенным интерфейсом для современных фреймворков глубокого обучения. Задняя часть написана на высокопроизводительных языках, таких как CUDA и C++.Ссылки:
Мы предоставили несколько ноутбуков Jupyter для быстрого старта с Jittor.
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 и ручная установка:
Ниже приведены команды установки для 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 используйте homebrew для установки дополнительных зависимостей.
brew install libomp
Затем вы можете установить Jittor через pip и проверить, что он успешно запускается.
python3.7 -m pip install jittor
python3.7 -m jittor.test.test_example
В настоящее время на macOS Jittor поддерживает только вычисления на CPU.
На Windows подготовьте Python>=3.8, инструкции по установке приведены ниже (для установки с помощью conda требуются дополнительные команды):```bash
python --version python -m pip install jittor
conda install pywin32
На Windows Jittor автоматически обнаруживает видеокарту и устанавливает соответствующую версию CUDA. Убедитесь, что ваш драйвер NVIDIA поддерживает CUDA 10.2 или выше. Вы также можете использовать следующую команду для ручной установки CUDA для Jittor:
```bash
python -m jittor_utils.install_cuda
Мы предоставляем возможность установки с помощью 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 могут потребоваться аналогичные команды.
# 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
Jittor требует версию Python>=3.7.
sudo apt install python3.7 python3.7-dev
Полный фреймворк является компилируемым в реальном времени. Давайте установим 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
Чтобы проверить целостность Jittor, вы можете запустить тест обучения Resnet18. Обратите внимание, что этот тест требует 6 ГБ видеопамяти.
python3.7 -m jittor.test.test_resnet
Если эти тесты провалились, пожалуйста, сообщите нам об ошибках, мы очень欢迎您参与到Jittor的开发中^ _ ^
В разделе учебника мы кратко объясним основные концепции 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 )