Bu makalenin yazıldığı sırada StableHLO, derleyici arayüzü olarak MHLO/HLO'nun yerini almaya hazırdır. TensorFlow, JAX ve PyTorch tarafından üretilebilir, XLA ve çeşitli üçüncü taraf PJRT eklentileri tarafından kullanılabilir. MHLO/HLO tarafından sağlanan tüm herkese açık özelliklerin yanı sıra ek işlevlere sahiptir.
Bu belgede, sorun izleyiciye yansıtılan devam eden çalışmaları kategorilere ayırıp bu çalışmaları planlanan teslimatlara göre düzenleyen StableHLO projesinin sonraki adımları açıklanmaktadır.
Mevcut Dönüm Noktaları
Şu anki aşamalarımız iki temel trendi takip etmektedir:
- OpenXLA topluluğunun tamamı için StableHLO'nun avantajını en üst düzeye çıkarma.
- Tüm OpenXLA üyeleri için geliştirici deneyimini birleştirin.
- MHLO'nun kullanımdan kaldırılması: 2024'ün 4. çeyreğinde, MHLO'nun dahili olarak kullanımdan kaldırılmasını keşfetmeye başladık. Bu süreçte, normalleştirme ve klasör kalıpları gibi yararlı geçişleri StableHLO'ya taşıdık. Taşıma sürecinin şirket içinde önemsiz olduğu kanıtlandıktan sonra, StableHLO'ya harici taşımalar için zaman çizelgelerini içeren bir RFC paylaşmayı planlıyoruz. Bu, büyük olasılıkla 2025'in 1. çeyreğinde gerçekleşecek. Ekiplere 2025'in 1. çeyreğinde StableHLO'ya geçiş için yeterli zaman ve destek sağlamayı planlıyoruz.
- Donanımdan bağımsız optimizasyonları StableHLO'ya taşıma: Yukarıdaki eğilimi takip ederek, StableHLO'nun donanımdan bağımsız grafik basitleştirmelerini birleştirmek için en iyi yer olmasını istiyoruz. Böylece, StableHLO'dan XLA olmayan bir derleyici IR'ye dönüştürenler de dahil olmak üzere tüm PJRT eklentileri maksimum fayda sağlayabilir. Bu hedefin bir kısmı, Google AI Edge, JAX-Enzyme projesi ve diğer tüm projelerin StableHLO deposunda kullanılan kalıpları birleştirmeyi içerir. Bu birleştirme işleminin bir kısmı zaten başladı ancak iş akışı büyük oranda 2025'in 1. çeyreğinde hızlanacak ve tamamlanacak.
- OpenXLA bileşenleştirme: HLO için openxla/xla'da StableHLO repo kurulumuna (ref) benzeyen özel bileşenler oluşturmaya ve tüm OpenXLA arka uçlarını PJRT eklentilerinin arkasına taşımaya başladık. Ayrıca, bu PJRT eklentilerinde tespit ettiğimiz önemli kullanıcı deneyimi sorunlarını düzeltmek için de yatırım yapıyoruz. Örneğin, StableHLO eklentilerinde kesin StableHLO sürümü iletişimi sağlanarak yeni özellikler yeni eklentiler tarafından hemen kullanılabilir (ref).
- Kompozitlerin uçtan uca çalışmasını sağlayın: 2024'ün 3. çeyreğinde HLO'ya kompozitler ekledik ve soyutlamalar için tam derleyici yığın desteğini etkinleştirdik. 2024'ün 4. çeyreğinde XLA satır içi derleyicisine bileşenler hakkında bilgi verdik ve bilinmeyen bileşenleri ayrışımları ile satır içi olarak yerleştirmek için HLO/StableHLO'ya geçişler ekledik. Şu anda çerçeveden kompozit oluşturmak için özel JAX API'leri (PyTorch API'leri zaten mevcut) eklemenin yanı sıra kompozitlerin doğru şekilde nasıl kullanılacağına dair Colab dokümanları eklemeyi araştırıyoruz. Bu çalışma 2024'ün 4. çeyreğinde tamamlanacak.
Geçmiş Dönüm Noktaları
2024'ün ilk yarısında, herkese açık opset spesifikasyonunu tamamlama, referans yorumlayıcı, uyumluluk birimi testi ile cihaz üzerinde dağıtımı desteklemek için ileri ve geri uyumluluğu genişletme, karma işlemler aracılığıyla genişletilebilirlik, spesifikasyona dayalı dinamizm desteği, değerlendirilmiş altın sonuçlar içeren eksiksiz bir test verileri paketi yayınlama ve daha fazlası gibi yüksek öncelikli iyileştirmeler uygulayan StableHLO v1.0'ı kullanıma sunduk.