Bahasa pengaturcaraan Mojo telah mengambil langkah besar ke hadapan dengan menambah sokongan untuk GPU Apple Silicon dalam keluaran malam terkininya. Perkembangan ini bertujuan untuk menjadikan pengaturcaraan GPU lebih mudah diakses dengan menyasarkan perkakasan yang sudah berada di tangan berjuta-juta pembangun - komputer Mac moden. Walau bagaimanapun, pengumuman ini telah mencetuskan perdebatan sengit dalam komuniti pengaturcaraan tentang sama ada Mojo dapat mengatasi halangan besar untuk penggunaan meluas.
Menjadikan Pengaturcaraan GPU Lebih Demokratik
Sokongan GPU Apple Silicon yang baharu dari Mojo mewakili percubaan untuk menurunkan halangan kepada pengaturcaraan GPU. Daripada memerlukan perkakasan NVIDIA yang mahal untuk menulis kernel tersuai, pembangun kini boleh bereksperimen dengan pecutan GPU menggunakan komputer Mac sedia ada mereka. Pelaksanaan ini berfungsi dengan semua cip siri M1-M4 yang menjalankan macOS 15 atau lebih baharu, walaupun ia memerlukan alatan pembangunan khusus termasuk Xcode 16.
Pendekatan teknikal melibatkan penyusunan kod Mojo kepada bitcode Apple Intermediate Representation (AIR), yang kemudiannya ditukar kepada format yang serasi dengan Metal untuk pelaksanaan. Proses ini berlaku di belakang tabir melalui MetalDeviceContext khusus yang menguruskan keseluruhan saluran paip daripada penyusunan hingga pelaksanaan.
Nota teknikal: AIR (Apple Intermediate Representation) ialah format kod peringkat rendah Apple yang digunakan untuk pengaturcaraan GPU Metal, manakala Metal ialah API grafik dan pengiraan Apple yang serupa dengan CUDA atau OpenCL.
Keperluan Sistem untuk Sokongan GPU Apple Silicon Mojo:
- Mac Apple Silicon (cip siri M1-M4)
- macOS 15 atau yang lebih baharu
- Xcode 16 atau yang lebih baharu
- Metal Shading Language 3.2 (versi bitcode AIR 2.7.0)
Keupayaan Semasa Yang Terhad Menimbulkan Persoalan
Walaupun sokongan awal adalah menjanjikan, pelaksanaan semasa mempunyai batasan yang ketara. Graf MAX asas belum berfungsi lagi, bermakna model AI tidak dapat dijalankan pada GPU Apple Silicon. Banyak ciri canggih seperti operasi atom, intrinsik tertentu, dan kebolehoperasian PyTorch masih hilang. Malah contoh mudah seperti operasi pengurangan belum berfungsi lagi.
Batasan ini telah menyebabkan beberapa ahli komuniti mempersoalkan sama ada usaha tersebut menangani keperluan pembangun sebenar. Perbincangan mendedahkan perpecahan asas: sementara sesetengah pihak melihat potensi dalam menjadikan pengaturcaraan GPU lebih mudah diakses, yang lain berpendapat bahawa kebanyakan pembangun bergantung pada perpustakaan sedia ada yang sangat dioptimumkan daripada menulis kernel tersuai.
Batasan Semasa:
- Tiada sokongan untuk intrinsik bagi kebanyakan keupayaan perkakasan
- Contoh reduction.mojo dan pendaraban matriks kompleks tidak berfungsi
- Teka-teki GPU 16+ memerlukan ciri perkakasan yang lebih canggih
- Tiada sokongan graf MAX asas
- Tiada ops tersuai MAX
- Tiada kebolehoperasian PyTorch
- Belum boleh menjalankan atau melayani model AI
Perdebatan Cabaran Penggunaan
Perbincangan komuniti telah mendedahkan perselisihan pendapat yang tajam tentang prospek masa depan Mojo. Pengkritik menunjukkan kepada bilangan kecil pembangun yang sebenarnya menulis kernel GPU tersuai, mencadangkan bahawa kebanyakan kerja pembelajaran mesin bergantung pada perpustakaan pra-dibina yang sangat dioptimumkan daripada rangka kerja seperti PyTorch. Mereka berpendapat bahawa peningkatan prestasi 30% daripada kernel tersuai adalah sangat kecil berbanding dengan peningkatan 500%+ yang diperoleh daripada naik taraf perkakasan atau pengoptimuman infrastruktur.
Peningkatan 30% yang anda peroleh daripada kernel dan helah penyusun adalah benar-benar remeh berbanding dengan peningkatan 500%+ yang anda peroleh daripada naik taraf perkakasan, menambah pengimbangan beban dan penghalaan, caching KV dan awalan, operasi kolektif yang dioptimumkan dll.
Penyokong membalas bahawa menjadikan pengaturcaraan GPU lebih mudah boleh mengembangkan kumpulan pembangun yang mampu menulis kernel tersuai. Mereka menunjukkan potensi Mojo untuk keserasian merentas platform dan janjinya untuk menyamai prestasi C++ sambil mengekalkan sintaks seperti Python.
Kebimbangan Model Perniagaan dan Persoalan Sumber Terbuka
Tema berulang dalam perbincangan komuniti tertumpu pada sifat komersial Mojo. Tidak seperti CUDA, yang datang percuma dengan perkakasan NVIDIA, Mojo dibangunkan oleh syarikat komersial yang perlu menjana pendapatan. Ini telah mewujudkan keraguan di kalangan pembangun yang bimbang tentang membina di atas platform yang mungkin memerlukan yuran pelesenan atau boleh mengubah hala tuju berdasarkan keperluan perniagaan.
Perbandingan dengan bahasa lain yang disokong secara komersial seperti Swift (Apple) dan Go (Google) telah muncul, dengan sesetengah pihak berpendapat bahawa penggunaan yang berjaya adalah mungkin walaupun pemilikan korporat. Walau bagaimanapun, yang lain menunjukkan percubaan yang gagal seperti Swift for TensorFlow sebagai kisah amaran.
Nota teknikal: CUDA ialah platform pengiraan selari NVIDIA yang datang percuma dengan GPU mereka tetapi bukan sumber terbuka, manakala Mojo merancang untuk menjadi sumber terbuka sepenuhnya menjelang akhir 2025.
Kesimpulan
Sokongan GPU Apple Silicon dari Mojo mewakili pencapaian teknikal yang menarik, tetapi perdebatan komuniti menyerlahkan cabaran kompleks yang dihadapi oleh mana-mana bahasa pengaturcaraan baharu dalam ruang AI/ML. Walaupun keupayaan teknikal adalah mengagumkan, persoalan tentang penggunaan, pembangunan ekosistem, dan kemampanan model perniagaan masih belum diselesaikan. Kejayaan inisiatif ini berkemungkinan bergantung pada sama ada Modular dapat menangani kebimbangan ini sambil terus mengembangkan keupayaan dan kelebihan prestasi Mojo.