MLIR

Genel Bakış

MLIR veya Multi-Level Intermediate Representation, model gösterimi 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 formatı ve kitaplığıdır.

MLIR, temelinde, modern optimizasyon derleyicileri için esnek bir altyapıdır. Bu, ara gösterimler (IR) için bir belirtimden ve bu gösterim üzerinde dönüşümler gerçekleştirmek için bir kod araç setinden oluştuğu anlamına gelir. (Derleyici sözlüğünde, daha yüksek seviyeli temsillerden daha düşük seviyeli temsillere geçerken, bu dönüşümlere "alçaltmalar" denilebilir)

MLIR derece etkilenir LLVM ve utanmazca ondan çok büyük fikirleri yeniden kullanır. Esnek bir sisteme sahiptir ve aynı derleme biriminde birden çok soyutlama düzeyini birleştiren grafiklerin gösterilmesine, analiz edilmesine ve dönüştürülmesine izin verir. Bu soyutlamalar, TensorFlow işlemlerini, iç içe geçmiş çok yü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ı
  • Donanım üreticileri, donanımlarını TPU'lar, telefonlardaki taşınabilir sinir donanımı ve diğer özel ASIC'ler gibi TensorFlow'a bağlamanın bir yolunu arıyor
  • Derleyicileri ve donanım hızlandırmayı optimize etmekten yararlanmak isteyen dil bağları 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.

MLIR genel bakış diyagramı