7 poin oleh GN⁺ 2025-07-15 | 3 komentar | Bagikan ke WhatsApp
  • MLX adalah framework array untuk peneliti machine learning berbasis Apple Silicon, dengan kemudahan penggunaan yang mirip NumPy dan PyTorch
  • Pekerjaan untuk menambahkan backend CUDA ke MLX sedang berlangsung
  • Tujuan utamanya adalah dukungan unified memory dan pemanfaatan luas perangkat keras NVIDIA
  • Saat ini baru contoh tutorial yang bisa dijalankan, dan build serta pengujian telah dikonfirmasi pada lingkungan Ubuntu 22.04 + CUDA 11.6
  • Sambil melewati masalah performa awal dan memperbaiki bottleneck, proses optimasi dan refactoring terus dilakukan berulang kali
  • Backend CUDA untuk MLX dikerjakan dengan dukungan Apple, dengan tujuan menghadirkan pengalaman yang konsisten saat mengembangkan di Mac dan melakukan deployment ke lingkungan komputasi besar melalui dukungan unified memory dan perangkat keras NVIDIA

Pengenalan framework MLX

  • MLX adalah framework array untuk machine learning yang dikembangkan oleh tim riset machine learning Apple
  • Framework ini dibuat agar engineer dan peneliti bisa bereksperimen secara efektif dan memvalidasi ide dengan cepat
  • Dukungan untuk Apple Silicon adalah ciri utamanya, tetapi kini melalui penambahan backend CUDA, cakupan operasinya sedang diperluas agar dapat berjalan juga di lingkungan GPU NVIDIA

Fitur utama

  • API yang familier: API Python menyediakan pengalaman seperti NumPy, sementara paket tingkat atas mlx.nn, mlx.optimizers menawarkan antarmuka yang mirip PyTorch
    • API C++, C, dan Swift juga disediakan, dengan konsistensi penggunaan yang sama seperti API Python
  • Transformasi fungsi yang dapat dikomposisikan: mencakup fitur seperti diferensiasi otomatis, vektorisasi otomatis, dan optimasi graph komputasi
  • Lazy evaluation: beberapa operasi dapat digabung dan hasilnya hanya dihitung saat benar-benar diperlukan, sehingga penggunaan resource lebih efisien
  • Pembuatan graph dinamis: meskipun shape data input berubah, eksekusi bisa langsung dilakukan tanpa kompilasi lambat, sehingga memudahkan pengembangan dan debugging
  • Model multi-device dan unified memory:
    • Sebelumnya hanya mendukung CPU dan Apple GPU, tetapi kini dukungan untuk lingkungan GPU NVIDIA sedang diupayakan lewat backend CUDA
    • Dengan mengadopsi struktur unified memory, objek yang sama dapat dioperasikan di semua perangkat yang didukung tanpa penyalinan memori
  • Desain ringkas dan dapat diperluas: memudahkan peneliti untuk memperluas dan meningkatkan framework

Perbedaan dari framework lain dan sumber inspirasinya

  • Mendapat inspirasi desain dari NumPy, PyTorch, Jax, ArrayFire, dan lain-lain
  • Secara khusus menekankan model unified memory, antarmuka yang ringkas, serta lingkungan eksekusi langsung/debugging

Contoh representatif dan bidang penggunaan

  • Repo MLX Examples berisi berbagai kode praktik
    • Pelatihan model bahasa Transformer
    • Pembuatan teks skala besar berbasis LLaMA dan fine-tuning menggunakan LoRA
    • Pembuatan gambar dengan Stable Diffusion
    • Termasuk contoh implementasi model terkini seperti pengenalan suara berbasis OpenAI Whisper

Arti penting MLX dan dukungan CUDA

  • MLX, yang sebelumnya merupakan framework berfokus pada Apple Silicon, kini memperluas potensi pemanfaatannya agar lebih umum di lingkungan GPU NVIDIA melalui adopsi backend CUDA
  • Dengan dukungan CUDA terbaru, MLX diperkirakan dapat memosisikan diri sebagai framework yang cocok baik untuk riset mutakhir maupun penggunaan industri di perangkat keras Apple dan NVIDIA

3 komentar

 
gosarinamu 2025-07-16

Yang diperlukan sebenarnya hanya membuatnya agar kita bisa memakai GPU Nvidia di macOS... heh heh.

 
yangeok 2025-07-16

Kabar bagus nih hehe, semoga dukungan CUDA segera hadir supaya pelatihan berkecepatan tinggi juga bisa dilakukan di Mac~!

 
GN⁺ 2025-07-15
Opini Hacker News
  • Saya ingin memastikan apakah pemahaman saya benar: pertama, program yang dibangun dengan MLX bisa berjalan di chip yang mendukung CUDA. Namun kedua, program CUDA tidak mungkin berjalan di Apple Silicon. Saya penasaran apakah alasan poin kedua adalah karena itu akan melanggar hak cipta (terutama parit pertahanan terkenal milik Nvidia)
    • Poin pertama benar. Ini memungkinkan pengembang mengembangkan di perangkat Apple yang spesifikasinya relatif lebih rendah (termasuk UMA), lalu menerapkan kode yang sudah jadi ke sistem Nvidia yang relatif lebih tinggi. Ini berguna karena berbagai alasan
    • Poin kedua bukan pelanggaran hak cipta. Reimplementasi API itu memungkinkan
    • Untuk poin kedua, sepertinya itu memang tidak benar. HIP milik AMD juga melakukan hal yang sama sejak sekitar 2017~2018 setelah meninggalkan OpenCL
    • Saya menginginkan poin ketiga. Akan bagus jika GPU NVIDIA bisa dihubungkan ke Apple Silicon lalu menggunakan CUDA. Saya membayangkan memakai Apple Silicon dan unified memory, GPU, serta CUDA bersama PyTorch, JAX, atau TensorFlow, meski saya sendiri belum benar-benar mencoba MLX
    • Alasan poin kedua tidak terjadi adalah karena itu jauh lebih sulit
  • Jika Anda berpikir, "Bukankah platform Apple tidak punya dukungan CUDA resmi?", perlu juga dicatat bahwa rangkaian patch ini mendukung hingga "platform Linux dengan CUDA 12 dan SM 7.0(Volta) atau lebih baru"
    Panduan instalasi
  • Proyek ini dipimpin oleh zcbenz, yang dikenal sebagai pembuat Electron dan lainnya
    Tentang zcbenz
  • Salah satu fitur utama MLX adalah penggunaan arsitektur unified memory (UMA), dan ada rasa penasaran tentang bagaimana ini bekerja
    Lihat bullet di readme repositori: MLX GitHub
    Rasanya menarik jika ini diperluas ke semua APU UMA (tanpa memandang vendor), tetapi ada pertanyaan apakah pendekatannya harus berbeda pada GPU diskret
    Setelah membaca komentar PR, tampaknya CUDA juga mendukung API UMA secara langsung dan menangani penyalinan secara transparan bila diperlukan
    • Dalam pengalaman saya, ada masalah bottleneck memori yang cukup parah karena menunggu penyalinan akibat kurangnya fitur prefetch. Jika seluruh dataset muat di VRAM, prefetch manual masih oke, tetapi di aplikasi saya (pelatihan ML) penurunan performanya terlalu besar sehingga akhirnya saya beralih langsung ke streaming load
  • Sedikit topik lain, cukup banyak orang yang mengerjakan MLX tampaknya tidak secara resmi terafiliasi dengan Apple. Sebagai contoh, lihat Twitter prince_canuma
    Ini menimbulkan pertanyaan apakah Apple mendukung dari belakang tanpa menampakkannya secara resmi. Ada juga rumor bahwa tim ini akan pindah
  • Di penjelasan PR tertulis "ongoing effort to add a CUDA backend"
    Artinya, kode MLX bisa dibangun dan dijalankan pada perangkat keras x86 + GeForce, bukan sebaliknya
  • Seperti komentar "akan jadi pengalaman pengembangan yang bagus jika bisa menulis/menguji kode di Mac lalu menerapkannya ke superkomputer", muncul pertanyaan apakah sekarang MLX bisa dipakai di Linux
    Saya sudah mencoba sendiri, dan hanya versi Python 3.12 yang ada di PyPI
    Halaman MLX-CUDA di PyPI
  • Saya penasaran apakah ini dipengaruhi oleh Strix Halo. Karena spesifikasi komputer kerja saya berlebih, saya membeli EVO-X2, dan ini setara atau lebih baik daripada mesin EPYC znver5 kelas menengah. Ini jauh mengungguli sebagian besar instance EC2 atau GCE (bahkan yang memakai NVMe). Harga perangkat keras ini adalah 1800
    Belakangan ini juga mulai muncul ulasan YouTuber yang menilai DGX Spark kalah efisien dari sisi harga dibanding Strix Halo. Kekurangannya, ROCm masih lemah untuk saat ini (meski tampaknya akan segera membaik). Jika CUDA bisa berjalan sempurna di perangkat Apple, maka meskipun Strix murah dan bagus, itu akan menjadi opsi yang layak dipertimbangkan serius
    • Strix Halo itu sama dengan AMD Ryzen AI Max+ 395. Ini dipakai di Framework Desktop dan berbagai mini PC. Bandwidth memori chip ini 200GB/s, yang sangat bagus untuk platform x86 biasa, tetapi masih jauh di bawah GPU Nvidia (misalnya 5090 adalah 1792GB/s) atau Apple M3 Ultra (800GB/s). Nilai harga-performanya luar biasa, tetapi untuk pekerjaan yang haus memori seperti LLM, rasanya ini baru saja masuk ambang performa minimum
    • Dari penjelasan PR, terlihat jelas bahwa targetnya adalah pelatihan cluster cloud
    • Sudah 10 tahun orang bilang komputasi neural network di GPU AMD akan segera menjadi pesaing Nvidia, tetapi itu masih belum terwujud
    • Ada rasa penasaran bagaimana perbandingannya dengan Mac mini m4
  • Saya sangat terkesan dengan model MLX. Bahkan jika model lokal dibuka untuk seluruh keluarga di rumah, tidak perlu khawatir soal risiko kebakaran seperti komputer Nvidia. Saya berharap Apple Silicon menjadi pesaing serius bagi kubu chip Nvidia. Saya juga penasaran apakah dukungan CUDA ini mungkin merupakan strategi embrace, extend, extinguish (EEE)
  • Apple berencana ke depan membangun data center berbasis chip seri m untuk dimanfaatkan dalam pengembangan aplikasi, pengujian, dan hosting layanan eksternal