LLVM Creator, Yeni Mojo Programlama Dili Geliştiriyor

LLVM'nin kurucusu ve baş mimarı ve Swift programlama dilinin yaratıcısı Chris Lattner ile Tensorflow ve JAX gibi Google AI projelerinin eski başkanı Tim Davis, araştırma geliştirme için kullanım kolaylığını birleştiren yeni bir programlama dili olan Mojo'yu tanıttı. Yüksek performanslı son ürünleri formüle etme potansiyeline sahip hızlı prototipleme. Birincisi, Python dilinin tanıdık sözdiziminin kullanılmasıyla, ikincisi ise makine koduna derleme yeteneği, bellek korumalı mekanizmalar ve donanım hızlandırma araçlarının kullanımıyla elde edilir.

Proje, makine öğrenimi alanında geliştirme amacıyla kullanıma odaklanmış ancak Python'un yeteneklerini sistem programlama araçlarıyla genişleten ve çok çeşitli görevlere uygun genel amaçlı bir dil olarak sunulmaktadır. Örneğin dil, yüksek performanslı bilgi işlem, veri işleme ve dönüştürme gibi alanlara uygulanabilir. Mojo'nun ilginç bir özelliği, ".mojo" metin uzantısına ek olarak "🔥" emoji karakterini kod dosyalarının uzantısı olarak (örneğin, "helloworld.🔥") belirtme yeteneğidir.

Şu anda dil yoğun bir geliştirme aşamasındadır ve test için yalnızca çevrimiçi arayüz sunulmaktadır. Etkileşimli web ortamının işleyişine ilişkin geri bildirimler alındıktan sonra, yerel sistemlerde çalıştırılacak ayrı derlemelerin daha sonra yayınlanacağına söz veriliyor. Projeye ilişkin derleyici, JIT ve diğer geliştirmelerin kaynak kodunun, iç mimari tamamlandıktan sonra açılması planlanıyor (kapalı kapılar ardında çalışan bir prototip geliştirme modeli, LLVM, Clang ve Süratli). Mojo sözdizimi Python diline dayandığından ve yazım sistemi C/C++'a yakın olduğundan, gelecekte C/C++ ve Python ile yazılmış mevcut projelerin Mojo'ya çevirisini basitleştirecek araçlar geliştirmeyi planlıyorlar. Python kodunu ve Mojo'yu birleştiren hibrit projeler geliştirmek.

Proje, hesaplamaların gerçekleştirilmesine heterojen sistemlerin mevcut donanım kaynaklarını dahil edecek şekilde tasarlanmıştır. Örneğin GPU'lar, özel makine öğrenimi hızlandırıcıları ve işlemci talimat vektörleri (SIMD), Mojo uygulamalarını çalıştırmak ve hesaplamaları paralelleştirmek için kullanılabilir. Mevcut CPython optimizasyon çalışmasına katılmak yerine Python dilinin ayrı bir alt kümesini geliştirmek için gösterilen nedenler arasında derlemeye odaklanma, sistem programlama yeteneklerinin entegrasyonu ve kodun GPU'larda ve çeşitli cihazlarda çalıştırılmasına izin veren temelde farklı bir iç mimarinin kullanılması yer alıyor. donanım hızlandırıcıları Ancak Mojo geliştiricileri mümkün olduğunca CPython ile uyumlu kalmayı amaçlıyor.

Mojo, hem JIT kullanılarak yorumlama modunda hem de çalıştırılabilir dosyalara (AOT, önceden) derlemek için kullanılabilir. Derleyici, otomatik optimizasyon, önbelleğe alma ve dağıtılmış derleme için yerleşik modern teknolojilere sahiptir. Mojo dilindeki kaynak metinler, LLVM projesi tarafından geliştirilen ve veri akış grafiğinin işlenmesini optimize etmek için ek yetenekler sağlayan düşük seviyeli ara kod MLIR'ye (Çok Seviyeli Orta Temsilcilik) dönüştürülür. Derleyici, makine kodu oluşturmak için MLIR'ı destekleyen çeşitli arka uçları kullanmanıza olanak tanır.

Hesaplamaları hızlandırmak için ek donanım mekanizmalarının kullanılması, yoğun hesaplamalar sırasında C/C++ uygulamalarından daha üstün performans elde edilmesini mümkün kılar. Örneğin, Mandelbrot kümesi oluşturmak için bir uygulama test edilirken, Mojo dilinde derlenmiş bir uygulamanın AWS bulutunda (r7iz.metal-16xl) çalıştırıldığında C++ uygulamasından 6 kat daha hızlı olduğu ortaya çıktı (0.03 saniye vs.) 0.20 saniye) ve ayrıca standart CPython 35 kullanıldığında Python uygulamasından 3.10.9 bin kat daha hızlı (0.03 saniyeye karşı 1027 saniye) ve PYPY kullanıldığında 1500 kat daha hızlı (0.03 saniyeye karşı 46.1 saniye) .

Makine öğrenimi problemlerini çözme alanındaki performansı değerlendirirken, Mojo dilinde yazılan AI yığın Modüler Çıkarım Motoru, TensorFlow kütüphanesini temel alan bir çözümle karşılaştırıldığında, bir dil modelini bir sistem üzerinde işlerken 3 kat daha hızlıydı. Öneri oluşturma modelinin yürütülmesini işlerken 6.4 kat daha hızlı ve görsel bilgilerin işlenmesine yönelik modellerle çalışırken 2.1 kat daha hızlı bir Intel işlemci. AMD işlemcileri kullanırken, Mojo kullanırken kazançlar sırasıyla 3.2, 5 ve 2.2 kat, ARM işlemcileri kullanırken ise 5.3, 7.5 ve 1.7 kat oldu. PyTorch tabanlı çözüm, Mojo'nun Intel CPU'larda 1.4, 1.1 ve 1.5 kat, AMD CPU'larda 2.1, 1.2 ve 1.5 kat ve ARM CPU'larda 4, 4.3 ve 1.3 kat gerisinde kaldı.

LLVM Creator, Yeni Mojo Programlama Dili Geliştiriyor

Dil, statik yazmayı ve referans ömrü takibi ve ödünç alma denetleyicisi gibi Rust'u hatırlatan düşük seviyeli bellek açısından güvenli özellikleri destekler. Dil, işaretçilerle güvenli çalışma olanaklarına ek olarak, düşük seviyeli çalışma için de özellikler sağlar; örneğin, İşaretçi türünü kullanarak güvenli olmayan modda belleğe doğrudan erişim, bireysel SIMD talimatlarını çağırma veya TensorCores ve AMX gibi donanım uzantılarına erişim. .

LLVM Creator, Yeni Mojo Programlama Dili Geliştiriyor

Tüm değişkenler için açık tür tanımlarına sahip işlevler için klasik ve optimize edilmiş Python kodunun ayrılmasını kolaylaştırmak amacıyla, "def" yerine ayrı bir "fn" anahtar sözcüğünün kullanılması önerilmektedir. Sınıflar için de benzer şekilde, derleme sırasında verileri bellekte statik olarak paketlemeniz gerekiyorsa (C'de olduğu gibi), "class" yerine "struct" türünü kullanabilirsiniz. Ayrıca C/C++ dillerindeki modülleri kolayca içe aktarmak da mümkündür; örneğin cos işlevini matematik kütüphanesinden içe aktarmak için “from “math.h” import cos” seçeneğini belirleyebilirsiniz.

Kaynak: opennet.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster