DeepSeek V3 detail kertas: Cara menerobos monopoli CUDA!

Dua model DeepSeek yang baru-baru ini dirilis, DeepSeek-V3 dan DeepSeek-R1, mencapai kinerja yang sebanding dengan model serupa dari OpenAI dengan biaya yang jauh lebih rendah.

Menurut laporan media asing, hanya dalam waktu dua bulan, mereka melatih model bahasa MoE dengan 671 miliar parameter pada klaster 2.048 GPU H800, yang 10 kali lebih efisien daripada AI terbaik.

Terobosan ini tidak dicapai dengan menggunakan CUDA, tetapi melalui sejumlah besar pengoptimalan yang sangat halus dan penggunaan pemrograman PTX (eksekusi thread paralel) NVIDIA yang mirip perakitan.

DeepSeek telah dipaksa untuk mengambil jalan yang berbeda dari OpenAI dan perusahaan lain yang mengandalkan kekuatan komputasi brute force di bawah batasan perangkat keras. Perusahaan ini telah menggunakan serangkaian inovasi teknologi untuk mengurangi kebutuhan daya model sekaligus mencapai peningkatan kinerja.

Beberapa komentar yang antusias dari para netizen:

"Di dunia ini, jika ada kelompok orang yang cukup gila untuk mengatakan hal-hal seperti 'CUDA terlalu lambat!

Para geek jenius menyempurnakan PTX untuk memaksimalkan performa GPU

NVIDIA PTX (Parallel Thread Execution) adalah arsitektur set instruksi menengah yang dirancang khusus untuk GPU-nya, berada di antara bahasa pemrograman GPU tingkat tinggi (seperti CUDA C/C++) atau front end bahasa lain dan kode mesin tingkat rendah (streaming assembly atau SASS).

PTX adalah arsitektur set instruksi tingkat rendah yang menghadirkan GPU sebagai perangkat komputasi paralel data, memungkinkan pengoptimalan yang sangat halus seperti alokasi register dan penyetelan tingkat thread/thread-bundle yang tidak mungkin dilakukan dengan bahasa seperti CUDA C/C++.

Ketika PTX dikonversi ke SASS, PTX dioptimalkan untuk generasi GPU NVIDIA tertentu.

Saat melatih model V3, DeepSeek mengkonfigurasi ulang GPU NVIDIA H800:

Dari 132 inti prosesor stream, 20 dialokasikan untuk komunikasi antar-server, terutama untuk kompresi dan dekompresi data, untuk menerobos batas koneksi prosesor dan meningkatkan kecepatan pemrosesan transaksi.

Untuk memaksimalkan kinerja, DeepSeek juga menerapkan algoritma pipelining tingkat lanjut melalui penyesuaian level thread/thread bundle berbutir halus tambahan.

Pengoptimalan ini jauh melampaui tingkat pengembangan CUDA konvensional, tetapi sangat sulit untuk dipertahankan. Namun, tingkat pengoptimalan inilah yang sepenuhnya menunjukkan kemampuan teknis yang luar biasa dari tim DeepSeek.

Makalah V3 secara khusus menyebutkan rincian tentang PTX

Hal ini dikarenakan, di bawah tekanan ganda dari kekurangan GPU global dan pembatasan di Amerika Serikat, perusahaan seperti DeepSeek harus mencari solusi inovatif.

Untungnya, mereka telah membuat terobosan yang signifikan di bidang ini.

Seorang pengembang percaya bahwa "pemrograman GPU tingkat rendah adalah arah yang tepat. Semakin banyak pengoptimalan, semakin rendah biaya, atau anggaran kinerja yang dapat digunakan untuk kemajuan lain tanpa pengeluaran tambahan."

Terobosan ini memiliki dampak yang signifikan di pasar, dan beberapa investor percaya bahwa model baru ini akan mengurangi permintaan perangkat keras berkinerja tinggi, yang dapat mempengaruhi kinerja penjualan perusahaan seperti NVIDIA.

Namun, para veteran industri, termasuk mantan CEO Intel Pat Gelsinger, percaya bahwa aplikasi AI dapat memanfaatkan seluruh daya komputasi yang tersedia.

Gelsinger melihat terobosan yang dilakukan oleh DeepSeek ini sebagai cara baru untuk menyematkan kemampuan AI pada perangkat berbiaya rendah untuk pasar massal.

PTX dan CUDA

Jadi, apakah kehadiran DeepSeek berarti bahwa pengembangan LLM yang mutakhir tidak lagi membutuhkan cluster GPU berskala besar?

Akankah investasi besar dalam sumber daya komputasi oleh Google, OpenAI, Meta, dan xAI pada akhirnya menjadi sia-sia? Konsensus umum di antara para pengembang AI adalah tidak demikian.

Namun demikian, dapat dipastikan bahwa masih ada potensi yang sangat besar untuk dimanfaatkan dalam hal pemrosesan data dan pengoptimalan algoritme, dan metode pengoptimalan yang lebih inovatif pasti akan muncul di masa depan.

Dengan model V3 dari DeepSeek yang bersumber terbuka, detailnya diungkapkan secara rinci dalam laporan teknisnya.

Laporan ini mendokumentasikan pengoptimalan mendalam yang dilakukan oleh DeepSeek. Singkatnya, tingkat pengoptimalan dapat disimpulkan sebagai "mereka telah membangun kembali seluruh sistem dari bawah ke atas."

Seperti yang disebutkan di atas, saat melatih V3 menggunakan GPU H800, DeepSeek menyesuaikan unit komputasi inti GPU (core multiprosesor streaming, atau SM) untuk memenuhi kebutuhan spesifik.

Dari total 132 SM, mereka secara khusus mengalokasikan 20 SM untuk menangani tugas-tugas komunikasi antar-server, bukan tugas-tugas komputasi.

Kustomisasi ini dilakukan pada tingkat PTX (eksekusi thread paralel), yang merupakan set instruksi tingkat rendah dari GPU NVIDIA.

PTX berjalan pada tingkat yang mendekati bahasa assembly dan memungkinkan pengoptimalan yang sangat halus seperti alokasi register dan penyetelan tingkat thread/thread-bundle. Namun, kontrol yang baik ini rumit dan sulit untuk dipertahankan.

Inilah sebabnya mengapa pengembang biasanya lebih suka menggunakan bahasa pemrograman tingkat tinggi seperti CUDA, yang menyediakan pengoptimalan kinerja yang memadai untuk sebagian besar tugas pemrograman paralel dan menghilangkan kebutuhan akan pengoptimalan tingkat rendah.

Namun, ketika harus memaksimalkan efisiensi sumber daya GPU dan mencapai persyaratan pengoptimalan tertentu, pengembang harus menggunakan PTX.

Namun, hambatan teknis tetap ada

Dalam hal ini, pengguna Internet Ian Cutress mengatakan, "Penggunaan PTX oleh Deepseek tidak menghilangkan hambatan teknis CUDA."

CUDA adalah bahasa tingkat tinggi. Bahasa ini membuat pengembangan pustaka dan antarmuka dengan GPU NVIDIA menjadi lebih mudah dan mendukung pengembangan berulang yang cepat.

CUDA dapat mengoptimalkan kinerja dengan menyempurnakan kode yang mendasarinya (yaitu PTX), dan pustaka dasar sudah lengkap. Sebagian besar perangkat lunak tingkat produksi saat ini dibangun di atas CUDA.

PTX lebih mirip dengan bahasa rakitan yang dapat dimengerti secara langsung untuk GPU. Bahasa ini bekerja pada tingkat rendah dan memungkinkan pengoptimalan tingkat mikro.

Jika Anda memilih untuk memprogram dalam PTX, itu berarti tidak ada satupun pustaka CUDA bawaan yang disebutkan di atas yang dapat digunakan. Ini adalah tugas yang sangat membosankan yang membutuhkan keahlian mendalam dalam masalah perangkat keras dan runtime.

Namun, jika pengembang sepenuhnya memahami apa yang mereka lakukan, mereka memang dapat mencapai kinerja dan pengoptimalan yang lebih baik pada saat runtime.

Saat ini, arus utama ekosistem NVIDIA masih menggunakan CUDA.

Pengembang yang ingin mendapatkan kinerja ekstra 10-20% atau efisiensi daya dari beban komputasi mereka, seperti perusahaan yang menggunakan model di cloud dan menjual layanan token, memang telah mengoptimalkan dari tingkat CUDA ke tingkat PTX. Mereka bersedia menginvestasikan waktu karena hal tersebut sepadan dalam jangka panjang.

Perlu dicatat bahwa PTX biasanya dioptimalkan untuk model perangkat keras tertentu dan sulit untuk melakukan porting antara perangkat keras yang berbeda kecuali jika logika adaptasi ditulis secara khusus.

Selain itu, menyetel kernel komputasi secara manual membutuhkan ketekunan, keberanian, dan kemampuan khusus untuk tetap tenang, karena program dapat mengalami kesalahan akses memori setiap 5.000 siklus.

Tentu saja, untuk skenario-skenario di mana PTX benar-benar dibutuhkan, dan bagi para pengembang yang dibayar cukup untuk menangani masalah ini, kami menyatakan pengertian dan rasa hormat kami sepenuhnya.

Untuk semua pengembang lain, disarankan untuk terus menggunakan CUDA atau varian lanjutan lainnya yang berbasis CUDA (atau MLIR).

Posting serupa

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *