Rumah > Artikel > Peranti teknologi > Panduan Membeli GPU Pembelajaran Dalam: Kad grafik manakah yang layak untuk relau alkimia saya?
Seperti yang kita sedia maklum, apabila menangani pembelajaran mendalam dan tugasan rangkaian saraf, adalah lebih baik untuk menggunakan GPU berbanding CPU, kerana apabila ia berkaitan dengan rangkaian saraf, GPU yang agak rendah sekalipun akan mengatasi prestasi CPU.
Pembelajaran mendalam ialah bidang yang memerlukan banyak pengkomputeran Pada tahap tertentu, pilihan GPU pada asasnya akan menentukan pengalaman pembelajaran yang mendalam.
Tetapi inilah masalahnya, cara memilih GPU yang betul juga adalah perkara yang memeningkan kepala dan memeningkan otak.
Bagaimana untuk mengelak daripada ditipu dan bagaimana untuk membuat pilihan yang menjimatkan kos?
Tim Dettmers, penulis blog ulasan terkenal yang telah menerima tawaran PhD daripada Stanford, UCL, CMU, NYU dan UW dan sedang belajar untuk PhD di University of Washington, membincangkan jenis GPU yang diperlukan dalam bidang pembelajaran mendalam , digabungkan dengan pengalamannya sendiri, menulis artikel panjang 10,000 perkataan, dan akhirnya memberikan GPU yang disyorkan dalam bidang DL.
Arah penyelidikan Tim Dettmers ialah pembelajaran mendalam tentang pembelajaran perwakilan dan pengoptimuman perkakasan laman web juga terkenal dalam bidang pembelajaran mendalam dan perkakasan komputer.
GPU yang disyorkan oleh Tim Dettmers dalam artikel ini semuanya daripada N Factory ia datang kepada pembelajaran mesin.
Editor juga telah menyiarkan pautan asal di bawah.
Pautan asal: https://timdettmers.com/2023/01/16/which-gpu-for-deep-learning /#GPU_Deep_Learning_Prestasi_per_Dollar
Berbanding dengan NVIDIA Turing Architecture RTX 20 Series Architecture Siri RTX 20, NVIDIA yang baharu Mempunyai lebih banyak kelebihan seperti latihan rangkaian jarang dan inferens. Ciri lain, seperti jenis data baharu, harus dilihat lebih sebagai ciri yang mudah digunakan, kerana ia memberikan peningkatan prestasi yang sama seperti seni bina Turing tetapi tidak memerlukan sebarang keperluan pengaturcaraan tambahan.
Siri Ada RTX 40 mempunyai lebih banyak kemajuan, seperti Tensor Memory Accelerator (TMA) dan operasi titik terapung 8-bit (FP8) yang diperkenalkan di atas. Siri RTX 40 mempunyai isu kuasa dan suhu yang serupa berbanding dengan RTX 30. Isu dengan kabel penyambung kuasa cair RTX 40 boleh dielakkan dengan mudah dengan menyambungkan kabel kuasa dengan betul.
Ampere membolehkan pendaraban matriks jarang automatik bagi struktur berbutir halus pada kelajuan padat. Bagaimana ini dilakukan? Ambil matriks berat sebagai contoh dan potong kepada kepingan 4 elemen. Sekarang bayangkan bahawa 2 daripada 4 elemen ini adalah sifar. Rajah 1 menunjukkan keadaan ini.
Rajah 1: Struktur yang disokong oleh fungsi pendaraban matriks jarang dalam GPU seni bina Ampere
Apabila anda mendarabkan matriks berat jarang ini dengan beberapa input padat, kefungsian teras Tensor Matriks Jarang Ampere secara automatik memampatkan matriks jarang menjadi perwakilan padat iaitu separuh saiz yang ditunjukkan dalam Rajah 2.
Selepas mampatan, jubin matriks yang dimampatkan padat dimasukkan ke dalam teras tensor, yang mengira pendaraban matriks dua kali ganda saiz biasa. Ini berkesan menghasilkan kelajuan 2x kerana keperluan lebar jalur dikurangkan separuh semasa pendaraban matriks dalam memori kongsi.
Rajah 2: Matriks jarang dimampatkan menjadi perwakilan padat sebelum pendaraban matriks.
Saya bekerja pada latihan rangkaian jarang dalam penyelidikan saya, dan saya juga menulis catatan blog tentang latihan jarang. Satu kritikan terhadap kerja saya ialah: "Anda mengurangkan FLOPS yang diperlukan oleh rangkaian, tetapi tidak menghasilkan kelajuan kerana GPU tidak boleh melakukan pendaraban matriks jarang yang pantas".
Dengan penambahan keupayaan pendaraban matriks jarang dalam Teras Tensor, algoritma saya atau algoritma latihan jarang lain, kini sebenarnya menyediakan sehingga 2x kelajuan semasa latihan.
Algoritma latihan jarang yang dibangunkan mempunyai tiga peringkat: (1) Tentukan kepentingan setiap lapisan. (2) Keluarkan pemberat yang paling tidak penting. (3) Menggalakkan pemberat baharu berkadar dengan kepentingan setiap lapisan.
Walaupun ciri ini masih dalam percubaan dan melatih rangkaian jarang masih belum biasa, mempunyai ciri ini pada GPU anda bermakna anda sudah berlatih untuk jarang Bersedia untuk masa hadapan.
Dalam kerja saya, sebelum ini saya telah menunjukkan bahawa jenis data baharu boleh meningkatkan ketepatan rendah semasa kestabilan perambatan belakang.
Rajah 4: Jenis data 8-bit pembelajaran mendalam berketepatan rendah. Latihan pembelajaran mendalam mendapat manfaat daripada jenis data yang sangat khusus
Pada masa ini, masalah terbesar ialah jika anda ingin melakukan perambatan belakang yang stabil dengan titik terapung 16-bit (FP16) Data FP16 biasa jenis hanya menyokong nombor dalam julat [-65,504, 65,504]. Jika kecerunan anda melepasi julat ini, kecerunan anda akan meletup ke dalam nilai NaN.
Untuk mengelakkan situasi ini dalam latihan FP16, kami biasanya melakukan penskalaan kerugian, iaitu, mendarabkan kerugian dengan nombor yang kecil sebelum perambatan belakang untuk mengelakkan letupan kecerunan ini.
Format Brain Float 16 (BF16) menggunakan lebih banyak bit untuk eksponen supaya julat nombor yang mungkin adalah sama dengan FP32, BF16 kurang ketepatan, iaitu digit bererti, tetapi kecerunan Ketepatan tidak begitu penting untuk pembelajaran.
Jadi apa yang BF16 lakukan ialah anda tidak perlu lagi melakukan sebarang penskalaan kerugian, dan anda tidak perlu risau tentang kecerunan meletup dengan cepat. Oleh itu, kita harus melihat peningkatan dalam kestabilan latihan dengan menggunakan format BF16, kerana terdapat sedikit kehilangan dalam ketepatan.
Apakah maknanya kepada anda. Menggunakan ketepatan BF16, latihan mungkin lebih stabil daripada menggunakan ketepatan FP16 sambil memberikan peningkatan kelajuan yang sama. Dengan ketepatan TF32, anda mendapat kestabilan hampir dengan FP32 sambil memberikan peningkatan kelajuan hampir kepada FP16.
Perkara yang menarik ialah untuk menggunakan jenis data ini, anda hanya menggantikan FP32 dengan TF32 dan FP16 dengan BF16 - tiada perubahan kod diperlukan.
Walau bagaimanapun, secara umum, jenis data baharu ini boleh dianggap sebagai jenis data malas kerana anda boleh melarikan diri dengan beberapa usaha pengaturcaraan tambahan (penskalaan kerugian yang betul, permulaan, Normalize, gunakan Apex) untuk mendapatkan semua faedah jenis data lama.
Oleh itu, jenis data ini tidak memberikan kelajuan, sebaliknya meningkatkan kemudahan penggunaan ketepatan rendah dalam latihan.
Walaupun reka bentuk kipas baharu siri RTX 30 melakukan kerja yang sangat baik untuk menyejukkan GPU, bukan -GPU Edisi Pengasas Isu tambahan mungkin timbul dengan reka bentuk kipas yang berbeza.
Jika GPU anda dipanaskan melebihi 80C, ia akan pendikit sendiri, memperlahankan kelajuan/kuasa pengkomputerannya. Penyelesaian kepada masalah ini ialah menggunakan pemanjang PCIe untuk mencipta ruang antara GPU.
Menyebarkan GPU dengan pemanjang PCIe sangat berkesan untuk menyejukkan, pelajar PhD yang lain di University of Washington dan saya telah menggunakan persediaan ini dengan berjaya. Ia tidak kelihatan cantik, tetapi ia mengekalkan GPU anda
Sistem di bawah telah berjalan selama 4 tahun tanpa sebarang masalah. Ini juga boleh digunakan jika anda tidak mempunyai ruang yang mencukupi untuk memuatkan semua GPU dalam slot PCIe.
Rajah 5: Sistem 4 kad grafik dengan port pengembangan PCIE, ia kelihatan seperti kucar-kacir, tetapi kecekapan penyejukan sangat tinggi . Anda boleh menetapkan had kuasa pada GPU anda. Hasilnya, anda akan dapat menetapkan had kuasa RTX 3090 secara pemrograman kepada 300W dan bukannya 350W standardnya. Dalam sistem 4-GPU, ini bersamaan dengan penjimatan 200W, yang mungkin cukup untuk menjadikan sistem 4x RTX 3090 boleh dilaksanakan dengan PSU 1600W.
Rajah 6: Mengurangkan had kuasa mempunyai sedikit kesan penyejukan. Menurunkan had kuasa RTX 2080 Ti sebanyak 50-60W menghasilkan suhu yang lebih rendah sedikit dan operasi kipas yang lebih senyap
Anda mungkin bertanya, "Tidakkah ini akan memperlahankan GPU? ?" Ya, ia memang akan jatuh, tetapi persoalannya ialah berapa banyak.
Saya menanda aras sistem 4x RTX 2080 Ti yang ditunjukkan dalam Rajah 5 pada had kuasa yang berbeza. Saya menanda aras masa untuk 500 kelompok mini BERT Large semasa inferens (tidak termasuk lapisan softmax). Memilih BERT Inferens besar memberikan tekanan terbesar pada GPU.
Rajah 7: Kejatuhan kelajuan diukur pada had kuasa yang diberikan pada RTX 2080 Ti
Kita dapat melihat bahawa menetapkan had kuasa tidak menjejaskan prestasi secara serius. Mengehadkan kuasa kepada 50W hanya mengurangkan prestasi sebanyak 7%.
Masalah kebakaran penyambung RTX 4090
Terdapat salah faham bahawa kord kuasa RTX 4090 terbakar kerana ia terlalu bengkok. Ini sebenarnya berlaku untuk hanya 0.1% pengguna, dan masalah utama ialah kabel tidak dipasang dengan betul.
1. Jika anda menggunakan kabel lama atau GPU lama, pastikan kenalan bebas daripada serpihan/habuk.
2. Gunakan penyambung kuasa dan pasangkannya ke alur keluar sehingga anda mendengar bunyi klik - ini adalah bahagian yang paling penting.
3. Uji kesesuaian dengan memulas kord dari kiri ke kanan. Kabel tidak boleh bergerak.
4. Periksa sentuhan dengan soket secara visual dan tiada jurang antara kabel dan soket.
Sokongan titik terapung 8-bit dalam H100 dan RTX40
Sokongan untuk titik terapung 8-bit (FP8) tersedia dalam siri RTX 40 dan H100 Kelebihan besar untuk GPU.
Ini lebih tinggi daripada keseluruhan kuasa pengkomputeran superkomputer terpantas dunia pada tahun 2007. RTX 4090 mempunyai 4 kali pengiraan FP8 dan setanding dengan superkomputer terpantas di dunia pada tahun 2010.
Seperti yang dapat dilihat, garis dasar 8-bit terbaik gagal memberikan prestasi titik sifar yang baik. Kaedah yang saya bangunkan, LLM.int8(), boleh melakukan pendaraban matriks Int8 dengan hasil yang sama seperti garis dasar 16-bit.
Tetapi Int8 sudah disokong oleh GPU generasi RTX 30/A100/Ampere Mengapakah FP8 satu lagi peningkatan besar dalam RTX 40? Jenis data FP8 jauh lebih stabil daripada jenis data Int8 dan mudah digunakan dalam spesifikasi lapisan atau fungsi bukan linear, yang sukar dilakukan dengan jenis data integer.
Ini akan menjadikan penggunaannya dalam latihan dan inferens sangat mudah dan mudah. Saya fikir ini akan menjadikan latihan dan inferens FP8 agak biasa dalam beberapa bulan.
Di bawah anda boleh melihat hasil utama yang berkaitan daripada kertas ini tentang jenis data Float vs Integer. Kita dapat melihat bahawa sedikit demi sedikit, jenis data FP4 mengekalkan lebih banyak maklumat daripada jenis data Int4, dengan itu meningkatkan purata ketepatan titik sifar LLM merentas 4 tugasan.
Mari kita lihat kedudukan prestasi asal GPU dan lihat siapa rentak terbaik .
Kita dapat melihat jurang yang besar antara prestasi 8-bit GPU H100 dan kad lama yang dioptimumkan untuk prestasi 16-bit.
Angka di atas menunjukkan prestasi relatif mentah GPU Contohnya, untuk inferens 8-bit, prestasi RTX 4090 adalah lebih kurang 0.33 kali ganda daripada H100 SMX.
Dengan kata lain, H100 SMX adalah tiga kali lebih pantas pada inferens 8-bit berbanding RTX 4090.
Untuk data ini, dia tidak memodelkan pengiraan 8-bit untuk GPU lama.
Oleh kerana inferens dan latihan 8-bit lebih cekap pada GPU Ada/Hopper, dan Tensor Memory Accelerator (TMA) menjimatkan banyak daftar yang sangat tepat dalam matriks 8-bit pendaraban .
Ada/Hopper juga mempunyai sokongan FP8, yang menjadikan latihan 8-bit lebih cekap pada Hopper/Ada, prestasi latihan 8-bit mungkin 3-4 kali ganda Latihan 16-bit.
Untuk GPU lama, prestasi inferens Int8 GPU lama adalah hampir dengan prestasi inferens 16-bit.
Masalahnya ialah, GPU berkuasa tetapi saya tidak mampu...
Bagi mereka yang tidak mempunyai belanjawan yang mencukupi, carta berikut ialah kedudukan prestasi setiap dolarnya (Prestasi setiap Dolar) berdasarkan harga dan statistik prestasi setiap GPU, yang menggambarkan keberkesanan kos daripada GPU.
Memilih GPU yang menyelesaikan tugas pembelajaran mendalam dan sesuai dengan bajet boleh dibahagikan kepada langkah berikut:
Tetapi ia mungkin GPU yang ideal untuk pemula yang baru mempelajari pembelajaran mendalam.
Sesetengah GPU ini bagus untuk pertandingan Kaggle untuk berjaya dalam pertandingan Kaggle, kaedah kerja adalah lebih penting daripada saiz model, jadi banyak GPU yang lebih kecil sangat sesuai.
Kaggle dikenali sebagai platform pengumpulan terbesar di dunia untuk saintis data, dengan pakar berkumpul di sini, dan ia juga mesra kepada pemula.
GPU terbaik jika digunakan untuk penyelidikan akademik dan operasi pelayan nampaknya GPU A6000 Ada.
Pada masa yang sama, H100 SXM juga sangat menjimatkan kos, dengan memori yang besar dan prestasi yang kukuh.
Dari pengalaman peribadi, jika saya membina gugusan kecil untuk makmal korporat/akademik, saya akan mengesyorkan 66-80% GPU A6000 dan 20-33% GPU H100 SXM.
Setelah berkata begitu banyak, akhirnya kami sampai ke peringkat keselesaan GPU.
Tim Dettmers mencipta "carta aliran pembelian GPU" jika anda mempunyai belanjawan yang mencukupi, anda boleh menggunakan konfigurasi yang lebih tinggi Jika anda tidak mempunyai belanjawan yang mencukupi, sila rujuk pilihan kos efektif.
Pertama sekali, izinkan saya menekankan satu perkara: tidak kira GPU yang anda pilih, pastikan dahulu memorinya dapat memenuhi keperluan anda. Untuk melakukan ini, anda perlu bertanya kepada diri sendiri beberapa soalan:
Apa yang saya mahu lakukan dengan GPU? Patutkah saya menggunakannya untuk menyertai pertandingan Kaggle, mempelajari pembelajaran mendalam, melakukan penyelidikan CV/NLP, atau bermain projek kecil?
Jika anda mempunyai belanjawan yang mencukupi, anda boleh menyemak penanda aras di atas dan memilih GPU yang terbaik untuk anda.
Anda juga boleh menganggarkan memori GPU yang diperlukan dengan menjalankan masalah anda dalam vast.ai atau Lambda Cloud untuk satu tempoh masa untuk melihat sama ada ia memenuhi keperluan anda.
Jika anda hanya memerlukan GPU sekali-sekala (selama beberapa jam setiap beberapa hari) dan tidak perlu memuat turun dan memproses set data yang besar, vast.ai atau Lambda Cloud juga akan berfungsi dengan baik Kerja.
Walau bagaimanapun, jika GPU digunakan setiap hari selama sebulan dan kekerapan penggunaan adalah tinggi (12 jam sehari), GPU awan biasanya bukan pilihan yang baik.
Atas ialah kandungan terperinci Panduan Membeli GPU Pembelajaran Dalam: Kad grafik manakah yang layak untuk relau alkimia saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!