Torch-Mlir 프로젝트는 Pytorch 생태계에서 MLIR 생태계로 일류 컴파일러 지원을 제공하는 것을 목표로합니다.
이 프로젝트는 LLVM 인큐베이터 프로세스에 참여하고 있습니다. 따라서 공식 LLVM 릴리스의 일부가 아닙니다. 인큐베이션 상태가 반드시 코드의 완전성 또는 안정성을 반영하는 것은 아니지만 프로젝트가 아직 LLVM의 구성 요소로 승인되지는 않았 음을 나타냅니다.
Pytorch Pytorch는 오픈 소스 머신 러닝 프레임 워크로 연구 및 프로토 타이핑에서 생산 수준 배포로의 원활한 전환을 용이하게합니다.
MLIR MLIR 프로젝트는 확장 가능하고 재사용 가능한 컴파일러 아키텍처를 구축하기위한 새로운 접근 방식을 제공하며, 소프트웨어 조각화 문제를 해결하고, 도메인 별 컴파일러 개발 비용을 줄이고, 이종 하드웨어의 컴파일을 개선하며, 기존 컴파일러 간의 호환성을 촉진합니다.
Torch-Mlir 몇몇 공급 업체는 시스템의 중간 계층으로 MLIR을 채택하여 Pytorch, Jax 및 Tensorflow와 같은 프레임 워크를 MLIR로 매핑하고 이후 대상 하드웨어로 낮추는 데 도움이되었습니다. 우리는 Pytorch에서 MLIR 로의 6 개의 맞춤형 내부를 관찰하여 하드웨어 공급 업체가 MLIR의 또 다른 Pytorch 프론트 엔드를 구현할 필요가 아니라 고유 한 가치에 더 쉽게 집중할 수 있도록했습니다. 궁극적 인 목표는 Clang 또는 C ++ 프론트 엔드를 구현하는 각각이 아니라 LLVM 대상 지원을 추가하는 현재 하드웨어 공급 업체와 유사합니다.
우리는 Torch mlir 방언으로 내려갈 경로가 거의 없습니다.
#torch-mlir 채널 - 이것은 가장 활발한 커뮤니케이션 채널입니다.torch-mlir 섹션 글을 쓰는 시점에서 Python 3.11 및 Python 3.10 용 Torch-Mlir의 사전 구축 된 스냅 샷을 출시합니다.
Python 버전을 지원 한 경우 다음 명령은 가상 환경을 초기화합니다.
python3.11 -m venv mlir_venv
source mlir_venv/bin/activate또는 Conda를 사용하여 여러 버전의 Python을 전환하려면 Python 3.11을 사용하여 Conda 환경을 만들 수 있습니다.
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pip그런 다음 해당 토치와 토치와 함께 토치 -mlir를 설치할 수 있습니다.
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 및 Onx에 연결하는 프로젝트입니다. 새로운 통합을 고려하는 경우 기존 다운 스트림을 참조하는 것이 도움이 될 수 있습니다.
대부분의 프로젝트는 테스트 경로를 통해 행사되지만 최종 사용자가 추가 통합없이 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 구조.test .torch-mlir-opt 등을위한 tools .python 상단 레벨 디렉토리 소스에서 Torch-Mlir를 개발하고 구축하려면 개발 노트를 참조하십시오.