Proyek Torch-MLIR bertujuan untuk memberikan dukungan kompiler kelas satu dari ekosistem Pytorch ke ekosistem MLIR.
Proyek ini berpartisipasi dalam proses Inkubator LLVM: Dengan demikian, ini bukan bagian dari rilis LLVM resmi. Meskipun status inkubasi tidak selalu merupakan refleksi dari kelengkapan atau stabilitas kode, itu menunjukkan bahwa proyek belum disahkan sebagai komponen LLVM.
Pytorch Pytorch adalah kerangka pembelajaran mesin open source yang memfasilitasi transisi yang mulus dari penelitian dan prototipe ke penyebaran tingkat produksi.
MLIR Proyek MLIR menawarkan pendekatan baru untuk membangun arsitektur kompiler yang dapat diperluas dan dapat digunakan kembali, yang membahas masalah fragmentasi perangkat lunak, mengurangi biaya pengembangan kompiler spesifik domain, meningkatkan kompilasi untuk perangkat keras heterogen, dan mempromosikan kompatibilitas antara kompiler yang ada.
Torch-mlir Beberapa vendor telah mengadopsi MLIR sebagai lapisan tengah dalam sistem mereka, memungkinkan mereka untuk memetakan kerangka kerja seperti Pytorch, Jax, dan Tensorflow ke MLIR dan kemudian menurunkannya ke perangkat keras target mereka. Kami telah mengamati setengah lusin penurunan kustom dari Pytorch ke MLIR, membuatnya lebih mudah bagi vendor perangkat keras untuk fokus pada nilai unik mereka, daripada perlu menerapkan frontend Pytorch lain untuk MLIR. Tujuan utamanya adalah mirip dengan vendor perangkat keras saat ini yang menambahkan dukungan target LLVM, daripada masing -masing yang menerapkan dentang atau frontend C ++.
Kami memiliki beberapa jalur untuk menurunkan ke dialek MLIR obor.
#torch-mlir di LLVM Discord - Ini adalah saluran komunikasi paling aktiftorch-mlir dari Wacana LLVM Pada saat penulisan, kami merilis snapshot pra-buatan dari Torch-Mlir untuk Python 3.11 dan Python 3.10.
Jika Anda telah mendukung versi Python, perintah berikut menginisialisasi lingkungan virtual.
python3.11 -m venv mlir_venv
source mlir_venv/bin/activateAtau, jika Anda ingin beralih melalui beberapa versi Python menggunakan Conda, Anda dapat membuat lingkungan Conda dengan Python 3.11.
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pipKemudian, kami dapat menginstal obor-mlir dengan obor dan obor yang sesuai.
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 terutama merupakan proyek yang diintegrasikan ke dalam kompiler untuk menjembatani mereka ke Pytorch dan Onnx. Jika merenungkan integrasi baru, mungkin bermanfaat untuk merujuk ke hilir yang ada:
Sementara sebagian besar proyek dilakukan melalui jalur pengujian, ada beberapa cara agar pengguna akhir dapat secara langsung menggunakan API tanpa integrasi lebih lanjut:
# 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)]Proyek ini mengikuti konvensi proyek berbasis MLIR yang khas:
include/torch-mlir , Struktur lib untuk dialek/lulus kompiler C ++ MLIR.test untuk memegang kode tes.tools untuk torch-mlir-opt dan semacamnya.python untuk Kode Python Jika Anda ingin mengembangkan dan membangun obor-mlir dari sumber, silakan lihat catatan pengembangan