Rumah >Peranti teknologi >AI >Memilih GPU terbaik untuk pembelajaran mendalam

Memilih GPU terbaik untuk pembelajaran mendalam

WBOY
WBOYke hadapan
2023-05-20 17:04:061730semak imbas

Apabila bekerja pada projek pembelajaran mesin, terutamanya apabila berurusan dengan pembelajaran mendalam dan rangkaian saraf, adalah lebih baik untuk bekerja dengan GPU daripada CPU kerana walaupun GPU yang sangat asas akan mengatasi prestasi CPU apabila ia berkaitan dengan rangkaian saraf.

Memilih GPU terbaik untuk pembelajaran mendalam

Tetapi GPU manakah yang patut anda beli? Artikel ini akan meringkaskan faktor yang berkaitan untuk dipertimbangkan supaya anda boleh membuat pilihan termaklum berdasarkan belanjawan anda dan keperluan pemodelan khusus.

Mengapa GPU lebih baik untuk pembelajaran mesin daripada CPU?

CPU (Unit Pemprosesan Pusat) adalah kerja utama komputer Ia sangat fleksibel Ia bukan sahaja perlu memproses arahan daripada pelbagai program dan perkakasan, tetapi juga mempunyai keperluan kelajuan pemprosesan tertentu. Untuk melaksanakan dengan baik dalam persekitaran berbilang tugas ini, CPU mempunyai sebilangan kecil unit pemprosesan yang fleksibel dan pantas (juga dipanggil teras).

GPU (Unit Pemprosesan Grafik) GPU tidak begitu fleksibel apabila melibatkan pelbagai tugas. Tetapi ia boleh melakukan sejumlah besar pengiraan matematik kompleks secara selari. Ini dicapai dengan mempunyai bilangan teras ringkas yang lebih besar (beribu hingga berpuluh ribu) yang boleh mengendalikan banyak pengiraan mudah secara serentak.

Keperluan untuk melakukan berbilang pengiraan secara selari adalah sesuai untuk:

  • Perenderan grafik - objek grafik bergerak perlu sentiasa mengira trajektori mereka, yang memerlukan banyak matematik selari yang sentiasa pengiraan berulang.
  • Mesin dan pembelajaran mendalam - banyak pengiraan matriks/tensor, GPU boleh memprosesnya secara selari.
  • Sebarang jenis pengiraan matematik boleh dibahagikan untuk dijalankan secara selari.

Perbezaan utama antara CPU dan GPU telah diringkaskan pada blog Nvidia sendiri:

Memilih GPU terbaik untuk pembelajaran mendalam

Unit Pemprosesan Tensor (TPU)

Dengan perkembangan kecerdasan buatan dan pembelajaran mesin/mendalam, kini terdapat lebih banyak teras pemprosesan khusus yang dipanggil teras tensor. Mereka lebih pantas dan lebih cekap apabila melakukan pengiraan tensor/matriks. Kerana jenis data yang kami berurusan dalam pembelajaran mesin/mendalam ialah tensor.

Walaupun terdapat TPU khusus, beberapa GPU terbaharu turut menyertakan banyak teras tensor, yang akan kami ringkaskan kemudian.

Nvidia vs AMD

Ini akan menjadi bahagian yang agak pendek kerana jawapan kepada soalan ini pastinya Nvidia

Walaupun mungkin untuk menggunakan GPU AMD untuk mesin/pembelajaran mendalam , Tetapi setakat penulisan ini, GPU Nvidia lebih serasi dan secara amnya lebih baik disepadukan ke dalam alatan seperti TensorFlow dan PyTorch (contohnya, sokongan PyTorch untuk GPU AMD kini hanya tersedia di Linux).

Menggunakan GPU AMD memerlukan penggunaan alat tambahan (ROCm), yang memerlukan sedikit kerja tambahan dan versi mungkin tidak dikemas kini dengan cepat. Keadaan ini mungkin bertambah baik pada masa hadapan, tetapi buat masa ini, lebih baik untuk kekal dengan Nvidia.

Atribut Utama Pemilihan GPU

Memilih GPU yang mencukupi untuk tugasan pembelajaran mesin anda dan bersesuaian dengan belanjawan anda pada asasnya bermuara kepada keseimbangan empat faktor utama:

  • Berapakah jumlah memori yang ada pada GPU?
  • Berapa banyak CUDA dan/atau teras tensor yang ada pada GPU?
  • Apakah seni bina cip yang digunakan oleh kad?
  • Apakah adakah keperluan kuasa, jika ada?

Saya akan meneroka aspek ini satu demi satu di bawah, dengan harapan dapat memberi anda pemahaman yang lebih baik tentang perkara yang penting kepada anda.

Memori GPU

Jawapannya, semakin banyak semakin baik

Ia benar-benar bergantung pada tugas anda dan seberapa besar model tersebut. Sebagai contoh, jika anda memproses imej, video atau audio, maka mengikut definisi anda akan memproses jumlah data yang agak besar, dan GPU RAM akan menjadi pertimbangan yang sangat penting.

Selalu ada cara untuk menyelesaikan masalah kehabisan ingatan (seperti mengurangkan saiz kelompok). Tetapi ini akan membuang masa latihan, jadi keperluan perlu diseimbangkan dengan baik.

Berdasarkan pengalaman, syor saya adalah seperti berikut:

  • 4GB: Saya rasa ini adalah minimum mutlak, selagi anda tidak berurusan dengan model yang terlalu kompleks atau imej yang besar , video Atau audio, yang berfungsi dalam kebanyakan kes, tetapi tidak mencukupi untuk kegunaan harian. Jika anda baru bermula dan ingin mencubanya tanpa melibatkan diri sepenuhnya, anda boleh mulakan dengannya
  • 8GB: Ia adalah permulaan yang bagus untuk pembelajaran harian dan boleh menyelesaikan kebanyakan tugas tanpa melebihi had RAM, Tetapi masalah boleh timbul apabila bekerja dengan model imej, video atau audio yang lebih kompleks.
  • 12GB: Saya rasa ini adalah keperluan paling asas untuk penyelidikan saintifik. Boleh mengendalikan kebanyakan model yang lebih besar, walaupun yang berfungsi dengan imej, video atau audio.
  • 12GB+: Lebih banyak lagi baik, anda akan dapat mengendalikan set data yang lebih besar dan saiz kelompok yang lebih besar. Di atas 12GB adalah tempat harga benar-benar mula meningkat.

Secara umumnya, jika kosnya sama, anda lebih baik memilih kad "lebih perlahan" dengan lebih banyak memori. Perlu diingat bahawa kelebihan GPU ialah daya pemprosesan yang tinggi, yang sangat bergantung pada RAM yang tersedia untuk memindahkan data melalui GPU.

Teras CUDA dan Teras Tensor

Ini sebenarnya sangat mudah, semakin banyak semakin baik.

Pertimbangkan RAM dahulu, kemudian CUDA. Untuk pembelajaran mesin/mendalam, teras Tensor adalah lebih baik (lebih cepat, lebih cekap) daripada teras CUDA. Ini kerana ia direka dengan tepat untuk pengiraan yang diperlukan dalam bidang mesin/pembelajaran mendalam.

Tetapi itu tidak penting kerana kernel CUDA sudah cukup pantas. Jika anda boleh mendapatkan kad yang mengandungi teras Tensor, itu adalah satu kelebihan yang hebat, cuma jangan terlalu bergantung padanya.

Anda akan melihat "CUDA" disebut berkali-kali kemudian, mari kita ringkaskan dahulu:

Teras CUDA - ini adalah pemproses fizikal pada kad grafik, biasanya terdapat beribu-ribu daripadanya, 4090 adalah sudah 16,000.

CUDA 11 - Nombor mungkin berubah, tetapi ini merujuk kepada perisian/pemacu yang dipasang untuk membolehkan kad grafik berfungsi dengan baik. NV mengeluarkan versi baharu dengan kerap, dan ia boleh dipasang dan dikemas kini seperti mana-mana perisian lain.

Algebra CUDA (atau Kuasa Kira) - Ini menerangkan nama kod kad grafik dalam lelaran kemas kininya. Ini ditetapkan pada perkakasan, jadi hanya boleh ditukar dengan menaik taraf kepada kad baharu. Ia dibezakan dengan nombor dan nama kod. Contoh: 3. x[Kepler],5. x[Maxwell], 6. x [Pascal], 7. x[Turing] dan 8. x(Ampere).

Seni Bina Cip

Ini sebenarnya lebih penting daripada yang anda fikirkan. Kami tidak membincangkan AMD di sini, saya hanya mempunyai "Huang Lama" di mata saya.

Seperti yang telah kami katakan di atas, 30 kad siri adalah seni bina Ampere, dan 40 siri terbaharu ialah Ada Lovelace. Biasanya Huang akan menamakan seni bina itu dengan nama seorang saintis dan ahli matematik terkenal Kali ini dia memilih Ada Lovelace, anak perempuan penyair terkenal British Byron, ahli matematik wanita dan pengasas program komputer yang menubuhkan konsep gelung dan subrutin.

Untuk memahami kuasa pengkomputeran kad, kita perlu memahami dua aspek:

  • Peningkatan fungsi yang ketara
  • Fungsi penting di sini ialah, latihan ketepatan campuran :

Terdapat banyak faedah menggunakan format nombor dengan ketepatan kurang daripada titik terapung 32-bit. Mula-mula mereka memerlukan kurang ingatan, membolehkan latihan dan penggunaan rangkaian saraf yang lebih besar. Kedua, mereka memerlukan kurang lebar jalur memori, sekali gus mempercepatkan operasi pemindahan data. Operasi matematik ketiga berjalan lebih pantas dengan ketepatan yang dikurangkan, terutamanya pada GPU dengan Teras Tensor. Latihan ketepatan campuran mencapai semua faedah ini sambil memastikan tiada kehilangan ketepatan khusus tugas berbanding latihan ketepatan penuh. Ia melakukan ini dengan mengenal pasti langkah-langkah yang memerlukan ketepatan penuh dan menggunakan titik terapung 32-bit sahaja untuk langkah tersebut dan titik terapung 16-bit di tempat lain.

Berikut ialah dokumen rasmi Nvidia Jika anda berminat, anda boleh membacanya:

https://docs.nvidia.com/deeplearning/performance/mixed-precision-training/index. .html

Latihan ketepatan hibrid hanya boleh dilakukan jika GPU anda mempunyai seni bina 7.x (Turing) atau lebih tinggi. Ini bermakna siri RTX 20 atau lebih tinggi pada desktop, atau siri "T" atau "A" pada pelayan.

Sebab utama latihan ketepatan campuran mempunyai kelebihan sedemikian ialah ia mengurangkan penggunaan RAM Tensor Core akan mempercepatkan latihan ketepatan campuran Jika tidak, menggunakan FP16 juga akan menjimatkan memori video dan boleh melatih saiz kelompok yang lebih besar. secara tidak langsung meningkatkan kelajuan latihan.

Sama ada ia akan ditinggalkan

Jika anda mempunyai keperluan yang sangat tinggi untuk RAM tetapi tidak mempunyai wang yang mencukupi untuk membeli kad mewah, maka anda boleh memilih GPU yang lebih lama pada yang kedua -pasaran tangan. Terdapat kelemahan yang agak besar untuk ini...kehidupan kad itu telah berakhir.

Contoh biasa ialah Tesla K80, yang mempunyai 4992 teras CUDA dan 24GB RAM. Pada tahun 2014, ia dijual pada harga kira-kira $7,000. Harga semasa berkisar antara 150 hingga 170 dolar AS! (Harga ikan masin sekitar 600-700) Anda pasti sangat teruja untuk memiliki memori yang besar dengan harga yang begitu kecil.

Tetapi ada masalah yang sangat besar. Seni bina pengkomputeran K80 ialah 3.7 (Kepler), yang tidak lagi disokong bermula dari CUDA 11 (versi CUDA semasa ialah 11.7). Ini bermakna kad itu telah tamat tempoh, sebab itu ia dijual dengan murah.

Jadi apabila memilih kad terpakai, pastikan anda menyemak sama ada ia menyokong versi terkini pemandu dan CUDA Ini adalah perkara yang paling penting.

Kad Permainan Bertaraf Tinggi VS Kad Stesen Kerja/Pelayan

Lao Huang pada asasnya membahagikan kad itu kepada dua bahagian. Kad grafik pengguna dan kad grafik stesen kerja/pelayan (iaitu kad grafik profesional).

Terdapat perbezaan yang jelas antara kedua-dua bahagian, untuk spesifikasi yang sama (RAM, teras CUDA, seni bina) kad grafik pengguna biasanya akan lebih murah. Tetapi kad profesional biasanya mempunyai kualiti yang lebih baik dan penggunaan tenaga yang lebih rendah (sebenarnya, bunyi turbin agak kuat, yang baik apabila diletakkan di dalam bilik komputer, tetapi agak bising apabila diletakkan di rumah atau di makmal).

Kad profesional mewah (sangat mahal), anda mungkin perasan bahawa ia mempunyai banyak RAM (cth. RTX A6000 mempunyai 48GB, A100 mempunyai 80GB!). Ini kerana mereka biasanya menyasarkan pasaran profesional pemodelan 3D, pemaparan dan mesin/pembelajaran mendalam, yang memerlukan tahap RAM yang tinggi. Sekali lagi, jika anda mempunyai wang, beli sahaja A100! (H100 adalah versi baru A100 dan tidak boleh dinilai pada masa ini)

Tetapi saya secara peribadi berpendapat bahawa kita harus memilih kad permainan mewah pengguna, kerana jika anda tidak Jika anda tidak mempunyai wang yang mencukupi, anda tidak akan membaca artikel ini, betul

Pilih cadangan

Jadi pada akhirnya saya membuat beberapa cadangan berdasarkan bajet dan keperluan. Saya membahagikannya kepada tiga bahagian:

  • Bajet rendah
  • Bajet sederhana
  • Bajet tinggi

Bajet yang tinggi tidak memerlukan apa-apa menjadi pertimbangan Di luar kad grafik pengguna mewah. Sekali lagi, jika anda mempunyai wang: beli A100 atau H100.

Artikel ini akan memasukkan kad yang dibeli di pasaran terpakai. Ini adalah terutamanya kerana saya fikir barangan terpakai adalah sesuatu yang perlu dipertimbangkan jika anda mempunyai bajet yang rendah. Kad Siri Desktop Profesional (T600, A2000 dan A4000) turut disertakan di sini, kerana beberapa konfigurasinya lebih buruk sedikit daripada kad grafik pengguna yang serupa, tetapi penggunaan kuasa adalah lebih baik dengan ketara.

Bajet Rendah

Memilih GPU terbaik untuk pembelajaran mendalam

Bajet Sederhana

Memilih GPU terbaik untuk pembelajaran mendalam

Bajet Tinggi

Memilih GPU terbaik untuk pembelajaran mendalam

Perkhidmatan Dalam Talian/Awan

Jika anda memutuskan bahawa membelanjakan wang pada kad grafik bukan untuk anda, anda boleh memanfaatkan Google Colab, yang membolehkan anda menggunakan GPU secara percuma.

Tetapi ada had masa, jika anda menggunakan GPU terlalu lama mereka akan menendang anda keluar dan kembali ke CPU. Ia juga akan mengambil kembali GPU jika ia tidak aktif terlalu lama, mungkin semasa anda menulis kod. GPU juga diperuntukkan secara automatik, jadi anda tidak boleh memilih GPU tepat yang anda mahukan (anda juga boleh mendapatkan Colab Pro dengan harga $9.99 sebulan, yang secara peribadi saya fikir adalah lebih baik daripada bajet rendah, tetapi memerlukan tangga, dan $49.99 Colab Pro+ agak Mahal, tidak disyorkan).

Pada masa penulisan, GPU berikut tersedia melalui Colab:

Memilih GPU terbaik untuk pembelajaran mendalam

Seperti yang dinyatakan sebelum ini, K80 mempunyai 24GB RAM dan 4992 teras CUDA, Ia pada asasnya dua kad K40 dipautkan bersama. Ini bermakna apabila anda menggunakan K80 dalam Colab, anda sebenarnya mempunyai akses kepada separuh kad, jadi itu hanya teras 12GB dan 2496 CUDA.

Ringkasan

Akhirnya, 4090 masih dalam keadaan monyet pada asasnya, anda perlu tergesa-gesa untuk membelinya atau mencari scalper pada harga yang lebih tinggi

Tetapi 16384. CUDA + 24GB, berbanding 10496 CUDA daripada 3090, ia benar-benar Sangat wangi.

Jika harga 4080 16G 9728CUDA boleh mencecah dalam lingkungan 7000, ia sepatutnya menjadi pilihan yang sangat kos efektif. Jangan anggap 12G 4080, ia tidak layak diberi nama.

7900XTX AMD juga sepatutnya menjadi pilihan yang baik, tetapi keserasian adalah isu besar Jika sesiapa mengujinya, anda boleh meninggalkan mesej.

40 siri Lao Huang telah bermain monyet, jadi jika anda tidak tergesa-gesa, anda boleh menunggu sedikit lagi:

Anda tidak membelinya, saya tidak' t beli, dan ia akan dikurangkan sebanyak 200 esok

Atas ialah kandungan terperinci Memilih GPU terbaik untuk pembelajaran mendalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam