Aşağıdaki adımları izleyin: vhlo_checklist.md
VHLO olarak değiştirin.
VHLO Diyaleti nedir?
VHLO (Sürümlü StableHLO) Diyalekti, serileştirme ve kararlılık için kullanılır. Belirli bir noktada StableHLO diyalektinin anlık görüntüsünü bağımsız program öğelerinin sürümünü oluşturur.
VHLO, sürümlü işlemleri, türleri ve özellikleri olan yalnızca ekleme yapılabilen bir diyalekttir. Diğer bir deyişle, lehçeye bir özellik eklendikten sonra değiştirilemez hiçbir şekilde etkilemeyecek.
Bir işlem, tür veya özellikte yapılacak tüm değişiklikler için
lehçesi de var. Örneğin, yükleme sırasında StableHLO'ya varsayımsal bir my_op
0.9.0'da değiştirilmiştir, ancak 0.11.0'da değiştirilmiştir, VHLO'da şunlar olur:
// This represents the StableHLO version of the op from 0.9.0 -> 0.10.0
// Both the lower and the upper bound of versions are inclusive
def VHLO_MyOpV1 : VHLO_Op<"my_op_v1", "0.9.0", "0.10.0"> {
let arguments = (ins
VHLO_AnyType:$operand
);
let results = (outs VHLO_AnyType:$result);
}
// This represents the StableHLO version of the op from 0.11.0 -> current
def VHLO_MyOpV2 : VHLO_Op<"my_op_v2", "0.11.0", "current"> {
let arguments = (ins
VHLO_AnyType:$operand,
VHLO_AnyAttr:$attr // New attribute added to StableHLO in 0.11.0
);
let results = (outs VHLO_AnyType:$result);
}
StableHLO diyalektinde işlemlerin yalnızca en son sürümü bulunur. Yarış
örneğin, 0.11.0 sürümündeki StableHLO lehçesinde yalnızca StableHLO_MyOp
bulunur.
operand
ve attr
içerir. VHLO ise operasyonun her aşamasını
evrimden bahsedeceğiz.
VHLO neden faydalıdır?
Sürümlü bir lehçeye sahip olmak, önceki kelimelerin önceki sürümlerini hedeflememize, StableHLO işletim sistemi. Bu, ilk ve son derece başarılı olma, VHLO diyalektindeki işlemler arasındaki dönüşümler.
İleriye dönük uyumluluk: Yönlendirme uyumluluğu, VHLO'ya dönüştürme ve operasyonları hedef sürüme düşürme. Bir VHLO programı hedef sürüme düşürülebilir. Bir sürüm çalıştıran tüketicide seri haline getirilebilir ve StableHLO'ya dönüştürülebilir VHLO, hedef sürümden büyük veya ona eşittir. Çünkü VHLO, değiştirmeyecektir.
Bu alt sürüme geçme dönüşümü, işletim sisteminin önceki sürümleri kullanılır. Bu, yönlendirme uyumluluğunun sırasında değil, yapımcıda bulunur.
Geriye dönük uyumluluk: Geriye dönük uyumluluk, mobil uygulama sürümünün VHLO işlemlerini en son sürümlerine (gerekirse) uygular ve sonra bir işlemi tekrar StableHLO. Uyumluluk penceresindeki tüm VHLO programları yeni sürüme geçirilebilir StableHLO'ya dönüştürdük. Bu, tüketicilerin farklı versiyonlarının aynı modeli seri durumdan çıkarabileceği anlamına geliyor. Önceki sürümden VHLO yükü.
Daha da önemlisi, VHLO, serileştirmenin arka planında soyutlanır. Bu, makine öğreniminin çerçevelerin (üreticiler) yalnızca StableHLO işlemlerini ve derleyiciyi hedeflemesi gerekir arka uçların (tüketicilerin) yalnızca son sürüm olan sürümü desteklemesi gerekir. StableHLO işlem seti. VHLO ile VHLO arasında gerçekleşen dönüşümler makinelerle gerçekleştirilir depoda tutulur.
MLIR Bayt Kodu Biçimi Sürümleri
İleriye dönük uyumluluğu sağlamak için StableHLO sürümleri ilişkili MLIR Bayt Kodu Biçimi sürümü. Ayrıca, StableHLO, MLIR bayt kodu biçiminin en son sürümünü kullanır. MLIR Bayt Kodu Biçimi sürümü artırıldı. StableHLO'nun bir sonraki sürümünde alt sürümü artırın ve Version.cpp parametresini güncelleyin inceleyebilirsiniz.
MLIR bayt kodu biçimi ve bunun StableHLO'da kullanılmasının gerekçesi hakkında ayrıntılı bilgi için: bytecode.md'ye bakın.