genel bakış
MLIR veya Çok Düzeyli Ara Temsil, model temsili ile donanıma özel kod üreten düşük seviyeli derleyiciler/yürütücüler arasında yer alan derleyici yardımcı programlarının bir temsil biçimi ve kitaplığıdır.
MLIR, özünde modern optimize edici derleyiciler için esnek bir altyapıdır. Bu, ara temsiller (IR) için bir spesifikasyondan ve bu temsil üzerinde dönüşümler gerçekleştirmek için bir kod araç setinden oluştuğu anlamına gelir. (Derleyici dilinde, daha yüksek seviyeli temsillerden daha düşük seviyeli temsillere geçerken, bu dönüşümlere “indirmeler” denilebilir.)
MLIR , LLVM'den oldukça etkilenir ve ondan birçok harika fikri çekinmeden yeniden kullanır. Esnek bir tip sistemine sahiptir ve aynı derleme biriminde birden fazla soyutlama seviyesini birleştiren grafikleri temsil etmeye, analiz etmeye ve dönüştürmeye izin verir. Bu soyutlamalar, TensorFlow işlemlerini, iç içe çokyüzlü döngü bölgelerini ve hatta LLVM talimatlarını ve sabit donanım işlemlerini ve türlerini içerir.
MLIR'in aşağıdakiler dahil birçok grubun ilgisini çekmesini bekliyoruz:
- Makine öğrenimi modellerinin performansını ve bellek tüketimini optimize etmek isteyen derleyici araştırmacıları ve uygulayıcıları
- TPU'lar, telefonlardaki taşınabilir sinir donanımı ve diğer özel ASIC'ler gibi donanımlarını TensorFlow'a bağlamanın bir yolunu arayan donanım üreticileri
- Derleyicileri ve donanım hızlandırmayı optimize etmekten yararlanmak isteyen dil bağlamaları yazan kişiler.
TensorFlow ekosistemi, yazılım ve donanım yığınının birden çok düzeyinde çalışan bir dizi derleyici ve optimize edici içerir. MLIR'in kademeli olarak benimsenmesinin bu yığının her yönünü basitleştirmesini bekliyoruz.