NVIDIA CCCL 3.1 Menambahkan Kontrol Determinisme Floating-Point untuk Komputasi GPU
Caroline Bishop 05 Mar 2026 17:46
NVIDIA CCCL 3.1 memperkenalkan tiga tingkat determinisme untuk reduksi paralel, memungkinkan pengembang menukar performa dengan reprodusibilitas dalam komputasi GPU.
NVIDIA telah meluncurkan kontrol determinisme di CUDA Core Compute Libraries (CCCL) 3.1, mengatasi masalah persisten dalam komputasi GPU paralel: mendapatkan hasil identik dari operasi floating-point di berbagai eksekusi dan perangkat keras yang berbeda.
Pembaruan ini memperkenalkan tiga tingkat determinisme yang dapat dikonfigurasi melalui API fase tunggal baru CUB, memberikan pengembang kontrol eksplisit atas trade-off reprodusibilitas-versus-performa yang telah mengganggu aplikasi GPU selama bertahun-tahun.
Mengapa Determinisme Floating-Point Penting
Inilah masalahnya: penambahan floating-point tidak sepenuhnya asosiatif. Karena pembulatan pada presisi terbatas, (a + b) + c tidak selalu sama dengan a + (b + c). Ketika thread paralel menggabungkan nilai dalam urutan yang tidak dapat diprediksi, Anda mendapatkan hasil yang sedikit berbeda setiap eksekusi. Untuk banyak aplikasi—pemodelan keuangan, simulasi ilmiah, komputasi blockchain, pelatihan machine learning—inkonsistensi ini menciptakan masalah nyata.
API baru memungkinkan pengembang menentukan secara tepat seberapa banyak reprodusibilitas yang mereka butuhkan melalui tiga mode:
Determinisme tidak terjamin memprioritaskan kecepatan murni. Ini menggunakan operasi atomik yang dieksekusi dalam urutan apa pun thread kebetulan berjalan, menyelesaikan reduksi dalam satu peluncuran kernel. Hasil mungkin sedikit berbeda antar eksekusi, tetapi untuk aplikasi di mana jawaban perkiraan sudah cukup, peningkatan performa substansial—khususnya pada array input yang lebih kecil di mana overhead peluncuran kernel mendominasi.
Determinisme run-to-run (default) menjamin output identik ketika menggunakan input, konfigurasi kernel, dan GPU yang sama. NVIDIA mencapai ini dengan menyusun reduksi sebagai pohon hierarkis tetap daripada mengandalkan atomik. Elemen digabungkan dalam thread terlebih dahulu, kemudian di seluruh warp melalui instruksi shuffle, kemudian di seluruh blok menggunakan memori bersama, dengan kernel kedua mengagregasi hasil akhir.
Determinisme GPU-to-GPU memberikan reprodusibilitas paling ketat, memastikan hasil identik di berbagai GPU NVIDIA yang berbeda. Implementasi menggunakan Reproducible Floating-point Accumulator (RFA) yang mengelompokkan nilai input ke dalam rentang eksponen tetap—default tiga bin—untuk mengatasi masalah non-asosiatifitas yang muncul saat menambahkan angka dengan magnitudo berbeda.
Trade-off Performa
Benchmark NVIDIA pada GPU H200 mengukur biaya reprodusibilitas. Determinisme GPU-to-GPU meningkatkan waktu eksekusi sebesar 20% hingga 30% untuk ukuran masalah besar dibandingkan dengan mode santai. Determinisme run-to-run berada di antara dua ekstrem.
Konfigurasi RFA tiga-bin menawarkan apa yang NVIDIA sebut sebagai "default optimal" menyeimbangkan akurasi dan kecepatan. Lebih banyak bin meningkatkan presisi numerik tetapi menambahkan penjumlahan perantara yang memperlambat eksekusi.
Detail Implementasi
Pengembang mengakses kontrol baru melalui cuda::execution::require(), yang membangun objek lingkungan eksekusi yang diteruskan ke fungsi reduksi. Sintaksnya sederhana—atur determinisme ke not_guaranteed, run_to_run, atau gpu_to_gpu tergantung pada kebutuhan.
Fitur ini hanya bekerja dengan API fase tunggal CUB; API dua fase yang lebih lama tidak menerima lingkungan eksekusi.
Implikasi Lebih Luas
Reprodusibilitas floating-point lintas platform telah menjadi tantangan yang diketahui dalam komputasi kinerja tinggi dan aplikasi blockchain, di mana kompiler yang berbeda, flag optimasi, dan arsitektur perangkat keras dapat menghasilkan hasil yang berbeda dari operasi yang secara matematis identik. Pendekatan NVIDIA untuk secara eksplisit mengekspos determinisme sebagai parameter yang dapat dikonfigurasi daripada menyembunyikan detail implementasi mewakili solusi pragmatis.
Perusahaan berencana untuk memperluas kontrol determinisme di luar reduksi ke primitif paralel tambahan. Pengembang dapat melacak kemajuan dan meminta algoritma spesifik melalui repositori GitHub NVIDIA, di mana masalah terbuka melacak roadmap determinisme yang diperluas.
Sumber gambar: Shutterstock- nvidia
- komputasi gpu
- cccl
- determinisme floating-point
- cuda








