CUDA Academy · Pelajaran

Pertukaran Stabilitas Numerik

Bagian yang memerlukan kehati-hatian saat menggunakan presisi lebih rendah

Pelajaran 4 dari 413 langkah

Pertukaran Stabilitas Numerik adalah pelajaran CUDA Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CUDA Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CUDA Academy mencakup 4 pelajaran total.

Kecepatan Memiliki Biaya

Perhitungan Tensor Core berpresisi lebih rendah memang cepat, tetapi bit yang lebih sedikit berarti kesalahan pembulatan. Stabilitas numerik adalah seni menjaga agar hasil tetap dapat dipercaya. ⚖️

Pengertian Kesalahan Pembulatan

Setiap nilai berpresisi rendah dibulatkan ke angka terdekat yang dapat direpresentasikan. Kesalahan pembulatan kecil tersebut tidak berbahaya sekali saja, tetapi dapat menumpuk setelah banyak langkah.

Underflow FP16

Rentang FP16 yang sempit membuat angka kecil jatuh menjadi nol, yang disebut underflow. Gradien dan bobot yang sangat kecil dapat menghilang begitu saja selama pelatihan.

Overflow FP16

Rentang sempit yang sama menyebabkan overflow: nilai besar berubah menjadi tak terhingga. Satu jumlah yang buruk kemudian dapat merusak semua hasil berikutnya.

Penskalaan Kerugian sebagai Solusi

Perbaikan yang umum adalah penskalaan loss: kalikan nilai terlebih dahulu sebelum perhitungan FP16 agar nilainya keluar dari zona underflow, lalu skalakan kembali setelahnya.

Mengapa Akumulasi Lebar Membantu

Tensor Cores melakukan akumulasi dalam FP32 karena suatu alasan. akumulator yang lebih lebar itu mencegah ribuan penjumlahan kecil melenceng terlalu jauh.

BF16 Menghindari Masalah Rentang

Karena BF16 mempertahankan eksponen FP32, BF16 jarang mengalami overflow atau underflow. Kelemahannya adalah presisi yang lebih rendah, bukan rentang yang menyempit.

Pembatalan Katastrofik

Mengurangkan dua angka yang berdekatan menghapus digit-digit awal; proses ini disebut pembatalan. Presisi rendah membuat error yang tersisa jauh lebih terlihat.

Pertahankan Bagian Kritis dalam FP32

Pola yang aman adalah presisi campuran: lakukan perkalian dalam jumlah besar dengan FP16 atau BF16, tetapi pertahankan penjumlahan, norma, dan pembaruan yang sensitif dalam FP32.

Selalu Validasi Akurasi

Jangan pernah menganggap kernel yang cepat pasti benar. Bandingkan dengan referensi FP32 dan pastikan error tetap berada dalam toleransi yang dapat diterima.

Mengukur Error

Pemeriksaan sederhana adalah selisih absolut terhadap hasil tepercaya. Bandingkan error ini dengan ambang kecil yang Anda pilih.

float err = fabsf(gpu_result - cpu_result);

Pemeriksaan Singkat

Mengapa Tensor Cores mengakumulasi jumlah parsial dalam FP32 meskipun inputnya berupa FP16?

Rangkuman

Anda telah mempelajari kompromi presisi: waspadai overflow dan underflow FP16, gunakan penskalaan loss dan akumulasi FP32, serta selalu lakukan validasi terhadap referensi. 🎯

Gratis untuk memulai

Belajar C++ dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pertukaran Stabilitas Numerik” gratis?

Ya — teks lengkap “Pertukaran Stabilitas Numerik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CUDA Academy, upgrade ke CoddyKit PRO. Kursus CUDA Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pertukaran Stabilitas Numerik”?

Bagian yang memerlukan kehati-hatian saat menggunakan presisi lebih rendah Kamu berlatih CUDA Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai CUDA Academy?

Tidak diperlukan pengalaman sebelumnya. CUDA Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pertukaran Stabilitas Numerik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran CUDA Academy ini?

Ya. Setiap pelajaran CUDA Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa yang Dihitung Tensor Core
  2. Presisi Campuran: FP16, BF16, TF32
  3. API Fragmen WMMA
  4. Pertukaran Stabilitas Numerik
← Kembali ke CUDA Academy