StableHLO yol haritası

Yazma sırasında StableHLO, derleyici arayüzü olarak MHLO/HLO'nun yerini almaya hazırdır. TensorFlow, JAX ve PyTorch tarafından üretilebilir, XLA ve IREE tarafından tüketilebilir. MHLO/HLO tarafından sağlanan herkese açık tüm özelliklerin yanı sıra ek işlevlere sahiptir.

Bu belgede StableHLO projesi için atılacak sonraki adımlar açıklanmaktadır. Bu açıklamada, sorun izleyicide yer alan devam eden çalışmalar kategorize edilir ve bu çalışmalar planlanan teslimatlar halinde düzenlenir.

Aşamalar

2023'te iki önemli aşamayı planlıyoruz: 1) İşlemin ilk sürümünü ve ilk uyumluluk garantilerini sunacak StableHLO v0.9, 2) Yüksek öncelikli iyileştirmeler uygulayacak ve tam uyumluluk garantileri sağlamaya başlayacak StableHLO 1.0 sürümü.

StableHLO v0.9, statik şekilli işlemler ve başlangıç uyumluluk garantileri için spesifikasyon ile zenginleştirilmiş MHLO/HLO sürümünü yansıtır. Uyumluluk RFC'si uyarınca bu sürüm, 1 aylık ileriye ve geriye dönük uyumluluk sağlayacaktır. Bu mütevazı garantiler, lehçe gelişimi konusunda deneyim kazanmayı sağlayacak ve tüm garantiler uygulanmadan önce temizleme için biraz zaman tanıyacaktır. 2023'ün 1. çeyreğinde StableHLO v0.9'u yayınlamayı planlıyoruz.

StableHLO v1.0, ön uç sözleşmesinin temizlenmesi (StableHLO programlarının bugünün lehçeler ve kaydedilmemiş özelliklerin karışımı yerine yalnızca StableHLO diyalektindeki işlemleri içermesi amacıyla) ve bir referans uygulaması sağlamak gibi yüksek öncelikli iyileştirmeler uygulayacaktır. StableHLO 1.0 sürümünü 2023'ün ikinci yarısında yayınlamayı planlıyoruz.

İş akışları

Geliştirme sürecini yukarıda belirtilen ara hedeflere göre düzenlemek için sorun izleyicideki biletleri birden fazla iş akışı altında sınıflandırdık ve bu iş akışlarını ara hedeflere bağladık. Sınırlı sayıda bilet (%10'dan az) belirli bir iş akışına atanmaz ve belirli bir ara hedefin parçası değildir.

(P0) Uyumluluk Uygulama iş akışı, bir uyumluluk test paketi ile birlikte uyumluluk RFC'sini uygulamak için hazırlanmıştır. Bu işin çoğunun StableHLO v0.9'da, geri kalanı ise StableHLO v1.0'da tamamlanır.

(P0) Ön Uç Sözleşmesi iş akışı, StableHLO ön uçları tarafından kullanılan ancak henüz StableHLO spesifikasyonunda bulunmayan özelliklerin% 100'ünün uygulanmasından oluşur. Bu iş akışının amacı, StableHLO programlarının bugünün lehçeler ve kaydedilmemiş özelliklerden oluşan karışımı yerine yalnızca StableHLO diyalektindeki işlemleri içermesini sağlamaktır. Bu iş akışındaki işlerin tamamını veya neredeyse tamamını StableHLO 1.0 sürümünde tamamlamayı planlıyoruz.

(P0) Referans Uygulama iş akışı, StableHLO spesifikasyonunda tanımlandığı gibi StableHLO işlemlerinin% 100'ü için bir çevirmen uygulanması ile ilgili çalışmaları düzenler. Bu iş akışındaki işlerin tamamını veya neredeyse tamamını StableHLO 1.0 sürümünde tamamlamayı planlıyoruz.

(P0) Belgeler iş akışı, StableHLO yapımcılarının veya tüketicilerinin ihtiyaç duyabileceği tüm bilgileri sağlamak için kullanılır. StableHLO spesifikasyonu, önemli bir teslimatın yanı sıra StableHLO API ve StableHLO serileştirme biçimi için bir referanstır. İş akışının önemli parçaları StableHLO v1.0'da, daha düşük öncelikli öğeler ise sürekli olarak teslim edilecek.

(P1) Uygunluk Paketi iş akışı, referans uygulamayı StableHLO arka uçları tarafından sağlanan uygulamalarla karşılaştıran bir test paketi sunmadan oluşur. Referans uygulaması için yapılan testler, bir dizi uygunluk paketi sağladığından bu iş akışının P0 önceliği yoktur. Ancak bu paketin ilginç başka test senaryolarıyla daha da genişletilmesi gelecekteki çalışmalar için faydalı bir alan olabilir.

(P1) Spesifikasyon Uyumluluğu iş akışı, StableHLO işlemlerinin% 100'ünün StableHLO spesifikasyonunda tanımlandığı gibi StableHLO diyalektinde uygulanmasını sağlar. StableHLO diyalekti zaten makul düzeyde uyumlu olduğundan bu iş akışının P0 önceliği yoktur, ancak halen birçok küçük öğe kalmaya devam etmektedir (özellikle doğrulayıcı uygulamasının köşesindeki durumlarda) ve bunlar aşamalı olarak ele alınacaktır.

(P1) Yeni Özellikler iş akışı, StableHLO yol haritasını tamamlar ve StableHLO opeti için yeni işlevlerden oluşan bir ragtag koleksiyonundan oluşur (StableHLO diyalekti veya StableHLO bağlamaları değil, yani diğer iş akışları). Bu yeni özelliklerden birkaçının StableHLO v1.0'da yayınlanması planlanmıştır ancak bunların çoğu, şu anda herhangi bir ara hedefin parçası olmayan düşük öncelikli öğelerdir.

(P1) Public API iş akışı, StableHLO dili için C/C++/Python bağlamalarını sunmaya özeldir. Mevcut C++/Python bağlamaları zaten makul olduğundan bu iş akışının P0 önceliği yoktur. Bununla birlikte, özellikle bu bağlamalar için stabilite sağlama konusunda yapılması gereken çok iş var. Bu durum, şu anda uyumluluk RFC'si kapsamında yer almasa da gelecekteki çalışmalar için yararlı bir alan olabilir.