Vx adalah bahasa pemrograman sistem untuk komputasi heterogen di mana memori CPU, GPU, NPU dan akselerator adalah bagian dari sistem tipe. Benang host yang mendereferensikan pointer perangkat adalah kesalahan kompilasi, bukan kesalahan segmentasi. Ia tersedia untuk macOS pada Apple Silicon dan Linux x86_64. Heterogenitas kuuluu ke sistem tipe, bukan ke runtime. Di mana data berada adalah bagian dari tipe-nya. Kebanyakan bahasa memperlakukan akselerator sebagai infrastruktur: kamu menulis matematika, dan runtime yang besar dan tidak transparan memutuskan cara mengirimkannya. Vx memperlakukan akselerator sebagai semantik. Tensor yang ditempel di memori lebar banda tinggi NPU memiliki tipe yang berbeda dari yang ada di memori DRAM host, dan menyeberang di antara mereka membutuhkan transfer() eksplisit — bahkan ketika batas hardware bebas. Pada memori terpadu Apple, transfer ini dikompilasi menjadi hampir tidak ada. Namun masih ditulis, karena lokalitas data harus dapat dibuktikan dengan membaca kode sumber, bukan dengan profil biner.
Kompilator mengecualikan pengetikan ruang alamat, penerimaan kapasitas, kontrak jahit, tipe linear, jangkauan topologi, dan masalah autodiff. Mesin dideklarasikan, bukan diasumsikan. Kebanyakan compiler mengenkodekan model biaya secara keras. Vx membacanya. File mesin menjelaskan hierarki memori dan konektivitas bagian nyata, dan kompiler menerima atau menolak penempatan berdasarkan itu. Satuan adalah konversi bilangan bulat tepat, bukan bilangan floating-point: awalan SI adalah desimal (GB = 10^9), awalan IEC adalah biner (GiB = 2^30). Angka yang disalin dari lembar spesifikasi vendor berarti apa yang dimaksudkan oleh lembar itu. Repositori menyertakan file mesin untuk H100, H200, B200, A100, MI300X, Apple M4 dan node multi-GPU — masing-masing menyebut sumbernya dan menandakan angka yang tidak terverifikasi sebagai tidak terverifikasi.
Bagaimana cara kompilasinya: Frontend paralel berorientasi data. Setiap simbol, tipe nominal, dan varian monomorf adalah identifier datar 256-bit. Sistem tipe nominal ditambah dengan boxing wajib untuk tipe rekursif memisahkan modul, sehingga pipelining berjalan paralel di inti tanpa mesin kueri dan tanpa persaingan kunci. Kompilasi berjalan melalui array datar, bukan melalui pohon yang diikuti oleh pointer. Sumber yang sama menghasilkan MLIR yang identik pada level byte, apakah dibangun secara serial atau paralel. Ini ditegaskan dalam suite uji daripada hanya diharapkan — pada skala benchmark, dengan satu utiga, dengan empat utiga, dan ketika kumpulan utiga sepenuhnya dijalankan dari jalur, ditambah korpus yang di-rekompilasi dalam proses segar sehingga setiap jalankan memiliki benih hash sendiri.
Pertanyaan yang Sering Diajukan: Apa Vx dan apa yang membuatnya unik?
Vx adalah bahasa pemrograman sistem untuk komputasi heterogen di mana tipe memori untuk CPU, GPU, NPU dan akselerator adalah bagian dari sistem tipe. Ini mencegah kesalahan runtime seperti segfault dengan mendeteksi dereferensi pointer perangkat pada waktu kompilasi. Ia memperlakukan akselerator sebagai komponen semantik bukan sebagai infrastruktur, yang membutuhkan transfer data eksplisit antara ruang memori bahkan ketika batas hardware bebas.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing