
Vx, heterojen bellek ve topolojisini tip sistemine dahil eder
Vx, CPU, GPU, NPU ve hızlandırıcıların belleğini tip kontrolünün bir parçasına dönüştüren, açık transferler ve makineye özgü yerleştirmelerle heterojen hesaplama için bir sistem programlama dilidir.
Bellek konumu tipin bir parçasıdır
Vx, heterojen hesaplamayı dil düzeyinde ele alır ve hızlandırıcı üzerindeki yerleştirmeye şeffaf bir runtime'a güvenmez. NPU'nun yüksek bant genişliğli belleğine bağlı bir tensörün, aynı tensörün ana bilgisayarın DRAM'inde bulunduğundan farklı bir tipi vardır ve bu konumlar arasındaki taşıma açık bir transfer gerektirir. Apple'in birleşik belleğinde bu transfer neredeyse ücretsiz derlenir, ancak kaynakta veri yerelliğinin ikili profillemeden de doğrulandığı belirtilir.
Derleyici, cihaz işaretçilerinde ana bilgisayardan erişim hatalarını, ana bilgisayar ifadelerinde bağlı NPU değerlerini ve iş kümelerinin hedef bellek alanını aşan yerleştirmeleri kontrol eder. Diğer kurallar arasında asenkron transfer görünürlüğüne kadar okunan arabellekler, transfer sonrası kullanım hataları, bellek alanları arasında açıkça bildirilmeyen yol ile transfer ve bölgelerde adlandırılmamış ayrım yapılması yer alır. Asenkron transfer görünürlüğü sözleşmeleri SMT doğrulayıcısı tarafından işlenir.
Makine dosyaları donanım sınırlarını belirler
Sabit maliyet modeli yerine Vx, belirli bir parçanın bellek hiyerarşisini ve birbirine bağlantısını tanımlayan makine dosyasını okur. Derleyici bu bilgiyi yerleştirmeleri onaylamak veya reddetmek için kullanır. Birim dönüşümleri tam sayılar kullanır: SI önekleri onluk, IEC önekleri ise ikiliktir; bu da GB ve GiB gibi büyüklüklerin anlamını korur.
Depo, H100, H200, B200, A100, MI300X, Apple M4 ve çoklu GPU düğümleri için makine dosyalarını içerir. Dosyalar kaynaklarını gösterir ve doğrulanamayan sayıları ayıklar.
Paralel ön Uç ve Çoklu Arka Uç
Vx'in veri odaklı ön ucunda her sembol, nominal tip ve monomorfik varyant düz 256-bitlik bir tanımlayıcı ile temsil edilir. Nominal tip sistemi ve tipler için zorunlu kutulama modülleri birbirinden ayrıştırılır; bu, derleme hattının sorgu motorunu ve kilit yarışı olmadan çekirdeklerde çalıştırmasını sağlar. Derleme düz diziler üzerinden geçer, işaretçilerle dolaşılan ağaçlar üzerinden değil.
Test setleri, seri ve paralel düzenlemelerin farklı iş parçacığı yapılandırmalarında bayt-özdeş MLIR çıktısı verdiğini, kıyaslama ölçeğinde doğrular. Bu garanti ön ucun çıktısına uygulanır; kalan işleme LLVM aittir. Arka uçlar x86-64 ve arm64 CPU'ları, NVIDIA GPU'ları, Apple AMX ve ANE'yi ve dağıtılmış manifest ile yönetilen uzak bölgeleri içerir. Üreticiler, derleyiciyi yamalamak yerine MLIR geçiş eklemleri ile Vx'i genişletebilir.
Sabit, verimliliğe duyarlı yükler için tasarlandı
Vx, farklı silikon türlerinde doğru ve hızlı olması gereken yazılımlar için tasarlanmıştır. Proje, ahead-of-time, veri odaklı ve statik olarak bölgeye ayrılmış tasarımın, mimariyi değiştiren, tensör biçimlerini kontrol eden ve bu kararlar hâlâ değişirken dinamik olarak uzatan iş yüklerine daha az uygun olduğunu kabul eder. Kurulum varyantları Apple Silicon üzerinde macOS ve Linux x86_64 içerir; eşlik eden kılavuzlar ise dili, topolojileri, bellek yerleştirmelerini ve makine dosyalarını kapsar.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.