MLIR

Genel Bakış

MLIR veya Çok Düzeyli Ara Gösterim, model gösterimi ile donanıma özgü kod üreten düşük düzeyli derleyiciler/yürütücüler arasında yer alan derleyici yardımcı programlarının bir temsil formatı ve kitaplığıdır.

MLIR, özünde modern optimizasyon derleyicileri için esnek bir altyapıdır. Bu, ara gösterimlere (IR) yönelik bir spesifikasyondan ve bu gösterim üzerinde dönüşümler gerçekleştirmek için bir kod araç setinden oluştuğu anlamına gelir. (Derleyici dilinde, yüksek seviyeli temsillerden alt seviyeli temsillere geçtikçe bu dönüşümlere "düşürmeler" adı verilebilir.)

MLIR, LLVM'den oldukça etkileniyor ve ondan gelen birçok harika fikri utanmadan yeniden kullanıyor. Esnek bir tür sistemine sahiptir ve aynı derleme biriminde birden fazla soyutlama düzeyini birleştiren grafiklerin temsil edilmesine, analiz edilmesine ve dönüştürülmesine olanak tanır. Bu soyutlamalar TensorFlow işlemlerini, iç içe geçmiş ç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 de dahil olmak üzere 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, TPU'lar, telefonlardaki taşınabilir sinir donanımları ve diğer özel ASIC'ler gibi donanımlarını TensorFlow'a bağlamanın bir yolunu arıyor
  • Derleyicileri optimize etme ve donanım hızlandırma avantajlarından 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.

MLIR'e genel bakış şeması