Проект Torch-Mlir направлен на то, чтобы обеспечить поддержку компилятора первого класса от экосистемы Pytorch в экосистему Mlir.
Этот проект участвует в процессе инкубатора LLVM: как таковой, он не является частью какого -либо официального выпуска LLVM. Хотя статус инкубации не обязательно является отражением полноты или стабильности кода, это указывает на то, что проект еще не одобрен как компонент LLVM.
Pytorch Pytorch-это структура машинного обучения с открытым исходным кодом, которая облегчает бесшовный переход от исследований и прототипирования к развертыванию на уровне производства.
MLIR Проект MLIR предлагает новый подход к расширяемой и многоразовой архитектурам компиляции, которые решают проблему фрагментации программного обеспечения, снижают стоимость разработки компиляторов, специфичных для домена, улучшают компиляцию для гетерогенного оборудования и способствуют совместимости между существующими компиляторами.
Torch-Mlir Несколько поставщиков приняли MLIR в качестве среднего уровня в своих системах, что позволило им отображать структуры, такие как Pytorch, Jax и TensorFlow в Mlir, и впоследствии понизите их до целевого оборудования. Мы наблюдали полдюжины пользовательских снижений от Pytorch до MLIR, что облегчает поставщикам аппаратного обеспечения сосредоточиться на их уникальной стоимости, а не на необходимости реализовать еще один фронт Pytorch для MLIR. Конечная цель состоит в том, чтобы быть аналогично текущим поставщикам оборудования, добавляющим целевую поддержку LLVM, а не каждую реализующую Clang или C ++ Frontend.
У нас мало путей, чтобы опуститься до диалекта горелки.
#torch-mlir Channel на Discord LLVM - это самый активный канал связиtorch-mlir дискурса LLVM На момент написания мы выпускаем предварительно созданные снимки Torch-Mlir для Python 3.11 и Python 3.10.
Если вы поддерживали версию Python, следующие команды инициализируют виртуальную среду.
python3.11 -m venv mlir_venv
source mlir_venv/bin/activateИли, если вы хотите переключить несколько версий Python с помощью Conda, вы можете создать среду Conda с Python 3.11.
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pipЗатем мы можем установить Torch-Mlir с соответствующим ночным ущерб-факелом и Torchvision.
pip install --pre torch-mlir torchvision
--extra-index-url https://download.pytorch.org/whl/nightly/cpu
-f https://github.com/llvm/torch-mlir-release/releases/expanded_assets/dev-wheels
Torch-Mlir-это в первую очередь проект, который интегрирован в компиляторы, чтобы соединить их с Pytorch и Onnx. Если размышлять о новой интеграции, может быть полезно ссылаться на существующие нижние потоки:
Хотя большая часть проекта осуществляется через пути тестирования, есть некоторые способы, которыми конечный пользователь может напрямую использовать API без дальнейшей интеграции:
# Get the latest example if you haven't checked out the code
wget https://raw.githubusercontent.com/llvm/torch-mlir/main/projects/pt1/examples/fximporter_resnet18.py
# Run ResNet18 as a standalone script.
python projects/pt1/examples/fximporter_resnet18.py
# Output
load image from https://upload.wikimedia.org/wikipedia/commons/2/26/YellowLabradorLooking_new.jpg
...
PyTorch prediction
[( ' Labrador retriever ' , 70.65674591064453), ( ' golden retriever ' , 4.988346099853516), ( ' Saluki, gazelle hound ' , 4.477451324462891)]
torch-mlir prediction
[( ' Labrador retriever ' , 70.6567153930664), ( ' golden retriever ' , 4.988325119018555), ( ' Saluki, gazelle hound ' , 4.477458477020264)]Проект следует за соглашениями типичных проектов на основе MLIR:
include/torch-mlir , структуру lib для C ++ Mlir Compiler Dialects/Passes.test на хранение тестового кода.tools для torch-mlir-opt и тому подобное.python Top Level для кода Python Если вы хотите разработать и построить Torch-Mlir из Source, пожалуйста, посмотрите на заметки о разработке