Pertukaran Kestabilan Berangka
Perkara yang memerlukan perhatian apabila ketepatan dikurangkan
Pertukaran Kestabilan Berangka ialah pelajaran CUDA Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran CUDA Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Kelajuan Ada Harganya
Matematik Tensor Core berketepatan rendah adalah pantas, tetapi bit yang lebih sedikit bermakna ralat pembundaran. Kestabilan berangka ialah seni memastikan hasil kekal boleh dipercayai. ⚖️
Apakah Ralat Pembundaran
Setiap nilai berketepatan rendah dibundarkan kepada nombor terdekat yang boleh diwakili. Ralat pembundaran kecil itu tidak berbahaya sekali sahaja tetapi boleh terkumpul selepas banyak langkah.
Aliran Bawah FP16
Julat FP16 yang sempit menyebabkan nombor kecil menjadi sifar, yang dipanggil aliran bawah. Kecerunan dan pemberat kecil boleh hilang begitu sahaja semasa latihan.
Limpahan FP16
Julat sempit yang sama menyebabkan limpahan: nilai besar menjadi infiniti. Satu jumlah yang salah kemudiannya boleh merosakkan semua hasil seterusnya.
Penskalaan Rugi sebagai Penyelesaian
Pembaikan yang biasa digunakan ialah penskalaan kehilangan: gandakan nilai sebelum pengiraan FP16 supaya nilai tersebut keluar daripada zon aliran bawah, kemudian kecilkan semula selepas itu.
Mengapa Pengumpulan Lebar Membantu
Tensor Cores mengumpulkan hasil dalam FP32 atas sebab tertentu. Pengumpul yang lebih lebar itu menghalang ribuan penambahan kecil daripada tersasar dengan ketara.
BF16 Mengatasi Isu Julat
Oleh sebab BF16 mengekalkan eksponen FP32, ia jarang mengalami limpahan atau aliran bawah. Kelemahannya ialah ketepatan yang lebih rendah, bukannya julat yang mengecil.
Pembatalan Katastrofik
Menolak dua nombor yang hampir sama menghapuskan digit pendahulu, yang dipanggil pembatalan. Ketepatan rendah menjadikan ralat yang tinggal jauh lebih ketara.
Kekalkan Bahagian Kritikal dalam FP32
Pola yang selamat ialah ketepatan bercampur: lakukan pendaraban utama dalam FP16 atau BF16, tetapi kekalkan jumlah, norma dan kemas kini yang sensitif dalam FP32.
Sentiasa Sahkan Ketepatan
Jangan sekali-kali menganggap kernel yang pantas itu betul. Bandingkan dengan rujukan FP32 dan semak bahawa ralat kekal dalam toleransi yang boleh diterima.
Mengukur Ralat
Semakan mudah ialah perbezaan mutlak berbanding hasil yang dipercayai. Bandingkan ralat ini dengan ambang kecil yang Anda pilih.
float err = fabsf(gpu_result - cpu_result);Semakan Pantas
Mengapakah Tensor Cores mengumpulkan jumlah separa dalam FP32 walaupun inputnya FP16?
Ringkasan
Anda telah mempelajari pertukaran ketepatan: awasi limpahan dan aliran bawah FP16, gunakan penskalaan kehilangan dan pengumpulan FP32, serta sentiasa sahkan berbanding rujukan. 🎯
Pelajari C++ dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Pertukaran Kestabilan Berangka” percuma?
Ya — teks penuh “Pertukaran Kestabilan Berangka” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus CUDA Academy, tingkat taraf kepada CoddyKit PRO. Kursus CUDA Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pertukaran Kestabilan Berangka”?
Perkara yang memerlukan perhatian apabila ketepatan dikurangkan Anda berlatih CUDA Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan CUDA Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran CUDA Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Pertukaran Kestabilan Berangka” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran CUDA Academy ini?
Ya. Setiap pelajaran CUDA Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengiraan Teras Tensor
- Ketepatan Campuran: FP16, BF16, TF32
- API Fragmen WMMA
- Pertukaran Kestabilan Berangka