Editorial Ilmu Komputer & AI
Open AccessOA2026
Mempercepat Penyelesaian Banyak Sistem Linear Umum Berukuran Sangat Kecil pada GPU: Aplikasi pada Hukum Konstitutif
Solver LUpp khusus untuk sistem sangat kecil mencapai percepatan hingga 17,7x dibandingkan MAGMA dalam evaluasi hukum konstitutif pada GPU NVIDIA H100
Tristan Chenaille; Francesca Cuteri; Rapha{ë}l Prat; Guillaume Latu; Thomas Helfer· 2026· DOI 10.48550/arXiv.2609.15217
Masalah inti
Banyak aplikasi ilmiah dan rekayasa memerlukan penyelesaian sejumlah besar sistem linear independen pada GPU. Meskipun solver yang dipercepat GPU sudah mapan untuk sistem kecil hingga besar, sistem berukuran sangat kecil—yang didefinisikan di sini sebagai sistem dengan dimensi di bawah 32—tetap menantang karena intensitas aritmetika yang rendah dan overhead peluncuran kernel. Tantangan ini sangat terasa dalam evaluasi hukum konstitutif, ketika jutaan titik integrasi diproses secara independen. Setiap pembaruan konstitutif biasanya bergantung pada metode iteratif Newton, dan setiap iterasi memerlukan penyelesaian presisi ganda sistem linear persegi umum berukuran sangat kecil menggunakan faktorisasi LU dengan pivoting parsial (LUpp). Penelitian ini dilakukan dalam prototipe tertutup (closed-source), yang berfungsi sebagai demonstrator untuk memindahkan ke GPU NVIDIA evaluasi hukum konstitutif yang saat ini disediakan pada CPU oleh TFEL/MFront, sebuah alat pembangkitan kode sumber terbuka untuk pengetahuan material. Penulis membandingkan beberapa solver LUpp presisi ganda, termasuk implementasi dari pustaka aljabar linear GPU (cuSolverDx, MAGMA) dan kernel CUDA yang dirancang khusus,
Inovasi
Eksperimen pada GPU NVIDIA H100 menunjukkan bahwa solver LUpp khusus yang diusulkan dalam penelitian ini dapat mengungguli pendekatan terkini yang ada untuk kelas beban kerja ini. Percepatan yang dicapai hingga 6,5x dibandingkan cuSolverDx dan hingga 17,7x dibandingkan MAGMA. Hasil ini menunjukkan bahwa strategi penyelesaian LUpp terbaik sangat bergantung pada beberapa faktor, termasuk ukuran sistem dan konteks aplikasi. Untuk sistem linear mandiri, kernel khusus menunjukkan keunggulan signifikan untuk dimensi di bawah 32. Dalam alur kerja evaluasi hukum konstitutif secara penuh, manfaatnya bahkan lebih nyata karena kemampuan memanggil solver langsung dari kode perangkat, mengurangi overhead peluncuran kernel dan memungkinkan integrasi yang lebih baik dengan loop Newton. Penelitian ini juga menemukan bahwa menugaskan beberapa thread untuk setiap sistem tidak selalu merupakan strategi yang paling efisien; untuk sistem yang sangat kecil, satu thread per sistem mungkin lebih disukai untuk menghindari overhead sinkronisasi. Tekanan register dan okupansi sangat penting untuk kinerja, dan kernel khusus disetel untuk menyeimbangkan faktor-faktor ini. Percepatan konsisten di berbagai ukura
Banyak aplikasi ilmiah dan rekayasa memerlukan penyelesaian sejumlah besar sistem linear independen pada GPU. Meskipun solver yang dipercepat GPU sudah mapan untuk sistem kecil hingga besar, sistem berukuran sangat kecil—yang didefinisikan di sini sebagai sistem dengan dimensi di bawah 32—tetap menantang karena intensitas aritmetika yang rendah dan overhead peluncuran kernel. Tantangan ini sangat terasa dalam evaluasi hukum konstitutif, ketika jutaan titik integrasi diproses secara independen. Setiap pembaruan konstitutif biasanya bergantung pada metode iteratif Newton, dan setiap iterasi memerlukan penyelesaian presisi ganda sistem linear persegi umum berukuran sangat kecil menggunakan faktorisasi LU dengan pivoting parsial (LUpp). Penelitian ini dilakukan dalam prototipe tertutup (closed-source), yang berfungsi sebagai demonstrator untuk memindahkan ke GPU NVIDIA evaluasi hukum konstitutif yang saat ini disediakan pada CPU oleh TFEL/MFront, sebuah alat pembangkitan kode sumber terbuka untuk pengetahuan material. Penulis membandingkan beberapa solver LUpp presisi ganda, termasuk implementasi dari pustaka aljabar linear GPU (cuSolverDx, MAGMA) dan kernel CUDA yang dirancang khusus, pertama pada batch besar sistem linear mandiri dan kemudian dalam alur kerja evaluasi hukum konstitutif secara penuh. Penelitian ini bertujuan mengidentifikasi strategi penyelesaian LUpp terbaik, yang ditunjukkan bergantung pada ukuran sistem dan konteks aplikasi, serta membahas aspek kunci seperti tekanan register, okupansi, kemampuan memanggil solver LUpp langsung dari kode perangkat, dan apakah menugaskan beberapa thread untuk setiap sistem merupakan yang paling efisien.
Penelitian ini mengevaluasi beberapa solver LUpp presisi ganda untuk sistem linear berukuran sangat kecil pada GPU NVIDIA. Solver tersebut mencakup implementasi dari pustaka aljabar linear GPU (cuSolverDx dan MAGMA) dan kernel CUDA yang dirancang khusus. Perbandingan dilakukan dalam dua tahap: pertama pada batch besar sistem linear mandiri, dan kemudian dalam alur kerja evaluasi hukum konstitutif secara penuh, ketika setiap titik integrasi memerlukan rangkaian sistem linear yang berbeda, satu per iterasi dari loop Newton-nya sendiri. Kinerja setiap solver dinilai pada GPU NVIDIA H100. Faktor kunci yang dianalisis meliputi tekanan register, okupansi, kemampuan memanggil solver LUpp langsung dari kode perangkat, dan efisiensi penugasan beberapa thread per sistem. Kernel khusus dirancang untuk mengoptimalkan faktor-faktor ini bagi sistem berukuran sangat kecil. Penelitian ini juga mempertimbangkan overhead peluncuran kernel dan dampak batching. Algoritma LUpp menyelesaikan sistem linear dengan memfaktorkan , dengan adalah matriks permutasi, adalah segitiga bawah, dan adalah segitiga atas, lalu menyelesaikan dan melalui substitusi maju dan mundur. Untuk sistem berukuran sangat kecil, langkah faktorisasi dan substitusi dilakukan dengan sinkronisasi minimal. Metrik kinerja adalah total waktu penyelesaian, dan percepatan dilaporkan relatif terhadap cuSolverDx dan MAGMA.
Mengapa penting
Penelitian ini menyoroti bahwa menyelesaikan banyak sistem linear berukuran sangat kecil pada GPU memerlukan strategi khusus yang berbeda dari strategi untuk sistem yang lebih besar. Faktor kunci yang memengaruhi kinerja adalah tekanan register, okupansi, kemampuan memanggil solver LUpp langsung dari kode perangkat, dan pemetaan thread ke sistem. Kernel CUDA khusus dirancang untuk meminimalkan penggunaan register dan memaksimalkan okupansi sekaligus menghindari sinkronisasi yang tidak perlu. Kemampuan memanggil solver dari kode perangkat sangat penting dalam alur kerja hukum konstitutif, karena memungkinkan seluruh iterasi Newton dieksekusi dalam satu kernel, menghilangkan transfer memori global perantara dan overhead peluncuran kernel. Hasil ini menunjukkan bahwa untuk sistem berukuran sangat kecil, satu thread per sistem sering kali mengungguli pendekatan multi-thread karena biaya sinkronisasi yang lebih rendah. Penelitian ini juga mencatat bahwa strategi optimal bergantung pada konteks aplikasi dan ukuran sistem tertentu, dan bahwa pendekatan yang berlaku untuk semua tidak efektif. Temuan ini berimplikasi pada aplikasi lain yang memerlukan banyak penyelesaian linear berukuran sangat kecil, seperti solver implisit dalam dinamika fluida komputasional dan simulasi waktu nyata. Penulis menyarankan bahwa optimasi lebih lanjut dapat dicapai dengan memanfaatkan struktur matriks atau dengan menggunakan pendekatan presisi campuran. Prototipe ini menunjukkan kelayakan memindahkan evaluasi hukum konstitutif TFEL/MFront ke GPU, dengan potensi percepatan yang signifikan dalam simulasi skala besar.
Siapa yang sebaiknya membaca
Praktisi dan peneliti ilmu komputer
Membuka konten member…