berita

Perusahaan startup memperkuat NVIDIA: menyimulasikan CUDA pada kartu AMD, mengkompilasi dan menjalankan program asli secara langsung

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Crecy berasal dari Kuil Aofei
    Qubit |. Akun publik QbitAI

Tanpa modifikasi atau konversi apa pun, kartu grafis AMD dapat menjalankan program CUDA asli!

Sebuah perusahaan start-up asal Inggris telah meluncurkan alat kompilasi program CUDA untuk AMD, yang gratis untuk penggunaan komersial.

Setelah alat tersebut dirilis, hal itu menimbulkan diskusi panas yang meluas di kalangan netizen danMencapai puncak daftar panas HackerNews



Alat tersebut disebut SCALE, dan pengembang memposisikannya sebagai perangkat pemrograman GPGPU (general-tujuan GPU).



Saat ini, 9 program termasuk kerangka model besar llama-cpp telah lulus pengujian dan berjalan normal.

Tidak seperti implementasi lainnya, SCALESimulasikan langsung instalasi toolkit CUDA, kompilasi dapat diselesaikan dari sumber tanpa konversi ke bahasa lain.

Oleh karena itu, SCALE juga dapat memberikan dukungan untuk bahasa perantara khusus NVIDIA seperti PTX inline.

Tidak perlu konversi, biarkan AMD menjalankan CUDA

Menurut pengenalan situs web resmi, SCALE terutama memiliki tiga kompiler nvcc yang kompatibel dengan tiga komponen, implementasi AMD dari runtime CUDA dan API driver, dan perpustakaan ROCm.

Kompiler dapat langsung mengkompilasi program yang ditulis dalam bahasa khusus CUDA termasuk nvcc, inline PTX, dll. menjadi kode biner yang dapat dijalankan pada GPU AMD.

Pustaka ROCm digunakan untuk menyediakan API "CUDA-X". SCALE menggunakan metode ini ketika berhadapan dengan pustaka seperti cuBLAS dan cuSOLVER.



Inovasi utama SCALE adalah ituTerima program CUDA apa adanya, tanpa harus memindahkannya ke bahasa lain,Kompatibel dengan nvcc dan dentangdan metode kompilasi lainnya, sementara alat dan skrip build yang ada (seperti cmake) dapat berfungsi secara normal.

Menurut pernyataan resmi, SCALE sepenuhnya kompatibel dengan CUDA, memungkinkanPengembang tidak perlu menulis kode terpisah untuk platform GPU yang berbeda

Ini sangat berbeda dengan HIP yang diluncurkan oleh AMD, karena HIP menulis ulang kode CUDA dengan cara tertentu dan mungkin tidak dapat memahami makro kompleks dengan benar, serta tidak mendukung bahasa kepemilikan seperti PTX inline.

Bahkan penulis SCALE percaya bahwa HIP tidak dapat menyelesaikan masalah kompatibilitas CUDA.

Selain itu, bahasa SCALE adalah superset dari CUDA, yang menyediakan beberapa halEkstensi bahasa opsional, yang dapat mempermudah dan efisien bagi pengembang yang ingin menghilangkan nvcc untuk menulis kode GPU.

Penulis mengungkapkan harapannya di masa depan pengembang dapat menulis kode satu kali dan menjalankannya pada platform perangkat keras yang berbeda, dan berupaya menjembatani kesenjangan kompatibilitas antara bahasa pemrograman CUDA yang populer dan vendor perangkat keras lainnya.

Saat ini, dukungan SCALE untuk berbagai seri GPU AMD adalah sebagai berikut:

  • Sudah didukung: gfx1030 (seri RX6000) dan gfx1100 (seri RX7000)
  • "tampaknya berfungsi": gfx1010 (seri RX5000) dan gfx1101
  • Beradaptasi: gfx900 (seri RX Vega)

Selain itu, penulis menguji beberapa proyek open source CUDA dan berhasil menjalankan 9 aplikasi CUDA menggunakan SCALE.



Namun, SCALE adalah proyek yang benar-benar baru, jadi penulis juga telah menyiapkan serangkaian tutorial mulai dari instalasi hingga kompilasi, memberikan berbagai jenis contoh program.

Langkah-langkah utama tutorial ini disertai dengan kode-kode yang relevan, bahkan menyertakan cara menentukan model GPU Anda sendiri, yang bisa dikatakan sangat detail.



Jika Anda mengalami masalah saat penggunaan, penulis juga memperkenalkan metode pemecahan masalah umum, dan juga membuka forum Discord untuk berkomunikasi langsung dengan tim pengembangan.



Startup yang membuat SCALE disebutKomputasi Spektral, didirikan di Inggris pada tahun 2018, mengklaim memiliki pemahaman mendalam tentang arsitektur CPU dan GPU, dan tujuannya adalah membantu pengembang memanfaatkan sumber daya komputasi secara efisien.



Netizen: Tantang parit Nvidia?

Beberapa netizen percaya bahwa jika SCALE benar-benar dapat memberikan efek (seperti yang diiklankan), hal itu akan menantang parit NVIDIA dan memungkinkan AMD untuk bersaing secara langsung dengannya.



Namun, masih terlalu dini untuk mengambil kesimpulan sekarang, karena pejabat SCALE juga mengakui bahwa masih ada beberapa kekurangan dibandingkan dengan CUDA asli.

Dan pengembang juga memperjelas bahwa beberapa API dan fungsi CUDA tidak didukung, tetapi tidak memberikan daftar spesifiknya.



Mengenai lebih banyak kekurangan dari "solusi AMD", seorang netizen yang mengaku pernah berkomunikasi dengan tim SCALE mengatakan bahwa SCALE saat ini tidak dapat mengoperasikan TensorCore, yang berarti framework akselerasi FlashAttention tidak dapat dijalankan di AMD.

Selain itu, karena kartu N memiliki unit perkalian matriks yang kuat, meskipun dapat dikompilasi dan dijalankan, kinerja kartu AMD mungkin tidak sebaik kartu N.



Beberapa netizen percaya bahwa alasan Nvidia mendominasi adalah karena AMD tidak mau berinvestasi untuk membuat GPU-nya memiliki performa pembelajaran mesin yang lebih tinggi (bukan hanya keunggulan CUDA).



Bahkan jika mereka berjalan dengan efisien, ada juga pertanyaan apakah kartu AMD benar-benar terjangkau dan mudah diakses.



Gelombang netizen lainnya percaya bahwa masalah terbesar bukanlah dapat berjalan secara teknis, tetapi masalah hukum di baliknya.

Masalah ini juga telah memicu diskusi luas, namun belum ada kesimpulannya.

Beberapa orang berpikir bahwa SCALE sama dipertanyakan secara hukum seperti ZLUDA (cara lain untuk menjalankan program CUDA di AMD) dan dapat menyebabkan tuntutan hukum dari NVIDIA.



Secara khusus, menurut ketentuan EULA NVIDIA, CUDA SDK hanya mengizinkan pengembangan aplikasi yang berjalan pada kartu N, yang mungkin melarang implementasi yang kompatibel seperti SCALE.



Namun langsung ada beberapa netizen yang mengatakan bahwa SCALE tidak menggunakan "SDK" NVIDIA, lalu bagaimana cara membicarakan perjanjian penggunaan SDK?



Singkatnya, apakah itu kelemahan teknis atau masalah hukum, diskusi mengenai alat baru ini masih berlangsung.

Mengenai apakah itu berguna atau tidak, terserah pada pengembang untuk memilih sendiri.

Tautan referensi:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560