Berapa ukuran jaringan saraf yang dapat dilatih pada GPU tingkat konsumen saat ini? (1060.1070.1010)

9

Apakah mungkin untuk memberikan perkiraan praktis tentang ukuran jaringan saraf yang dapat dilatih pada GPU kelas konsumen umum ? Sebagai contoh:

The Emergence of Locomotion (Reinforcement) kertas melatih jaringan menggunakan aktivasi tanh dari neuron. Mereka memiliki 3 lapisan NN dengan 300.200 unit untuk Planar Walker . Tetapi mereka tidak melaporkan perangkat keras dan waktu ...

Tapi bisakah aturan praktis dikembangkan? Juga hanya berdasarkan hasil empiris saat ini, jadi misalnya:

X Unit menggunakan aktivasi sigmoid dapat menjalankan iterasi pembelajaran Y per jam pada 1060.

Atau menggunakan fungsi aktivasi a bukannya b menyebabkan penurunan kinerja kali.

Jika seorang siswa / peneliti / penasaran ingin membeli GPU untuk bermain-main dengan jaringan ini, bagaimana Anda memutuskan apa yang Anda dapatkan? A 1060 tampaknya adalah opsi anggaran level awal, tetapi bagaimana Anda bisa mengevaluasi jika tidak pintar untuk hanya mendapatkan netbook jelek daripada membangun desktop berdaya tinggi dan menghabiskan $ yang dihemat untuk infrastruktur cloud on-demand.

Motivasi untuk pertanyaan: Saya baru saja membeli 1060 dan (pintar, untuk menanyakan pertanyaan setelah itu ya) bertanya-tanya apakah saya seharusnya hanya menyimpan $ dan membuat akun Google Cloud. Dan jika saya dapat menjalankan simulasi tesis master saya pada GPU.

pascalwhoop
sumber

Jawaban:

5

Biasanya masalahnya adalah memasukkan model ke dalam RAM video. Jika tidak, Anda tidak dapat melatih model sama sekali tanpa upaya besar (seperti melatih bagian-bagian model secara terpisah). Jika ya, waktu adalah satu-satunya masalah Anda. Tetapi perbedaan waktu pelatihan antara GPU konsumen seperti Nvidia 1080 dan akselerator GPU yang jauh lebih mahal seperti Nvidia K80 tidak terlalu besar. Sebenarnya kartu konsumen terbaik lebih cepat daripada akselerator GPU, tetapi tidak memiliki properti lain seperti VRAM. Perbandingan dan tolok ukur acak: http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/ , https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080-and-tesla-p100-for-deep-learning-81a918d5b2c7

Untuk menghitung apakah model Anda cocok dengan VRAM, Anda tinggal memperkirakan berapa banyak data dan hyperparameter mana yang Anda miliki (input, output, bobot, layer, ukuran batch, tipe data apa, dan sebagainya).

C. Yduqoli
sumber
1
Jawaban yang bagus, tetapi model seperti apa yang tidak sesuai dengan Memori 6 / 8GB? Katakanlah setiap kumpulan data pelatihan + model. Saya tidak tahu bagaimana menghitung ukuran model tetapi saya tidak bisa membayangkan beberapa ribu neuron dan beratnya dapat mengisi Gigabytes Memori. Model pengenalan gambar Pretrained dari Google adalah beberapa ratus Megs tensorflow.org/tutorials/image_recognition dan yang dapat mengenali lebih dari yang lain di luar sana. Apple menanganinya on-chip di iPhone sehingga modelnya sendiri harus jauh lebih kecil daripada T-data. Dan itu tidak perlu semuanya dalam RAM, kan?
pascalwhoop
Saya sering bekerja dengan model NLP, kebanyakan RNN multi-layer, dan jika ukuran kosa kata besar, bahkan 8 GB mungkin tidak cukup. Ingat bahwa pelatihan biasanya membutuhkan lebih banyak ruang daripada prediksi (gradien juga mengambil ruang).
C. Yduqoli
3

Sebagai peringatan, saya akan menyarankan bahwa kecuali Anda mendorong batas teknologi yang mendasar, kecepatan komputasi dan sumber daya harus menjadi sekunder untuk alasan desain ketika mengembangkan arsitektur jaringan saraf.

Yang mengatakan, awal tahun ini saya menyelesaikan tesis MS saya yang melibatkan pipa analitik bioinformatika dengan data sekuensing genom keseluruhan - proyek yang membutuhkan lebih dari 100.000 jam waktu komputasi untuk berkembang menurut manajer pekerjaan klaster kami. Ketika Anda berada di tenggat waktu, sumber daya dapat menjadi kendala nyata dan kecepatan bisa menjadi sangat penting.

Jadi, untuk menjawab pertanyaan Anda saat saya memahaminya:

Apakah saya akan lebih baik menggunakan uang itu untuk membeli waktu di cloud?

Mungkin. Beberapa ratus dolar yang Anda habiskan untuk 1060 akan membawa Anda jauh melatih model Anda di awan. Lebih jauh, sejauh yang saya tahu, Anda tidak memerlukan GPU untuk melakukan cranking 100% setiap saat (Anda akan melakukannya jika, misalnya, menambang mata uang kripto). Akhirnya, dengan instance cloud Anda dapat meningkatkan skala, melatih beberapa model sekaligus, yang dapat mempercepat eksplorasi dan validasi arsitektur apa pun yang Anda pilih.

Apakah ada cara untuk mengukur waktu komputasi jaringan saraf pada GPU yang diberikan

Nah, Big O adalah salah satu penaksir, tetapi sepertinya Anda menginginkan metode yang lebih tepat. Saya yakin mereka ada, tetapi saya akan membantah bahwa Anda dapat membuat estimasi Anda dengan kembali sederhana dari perhitungan amplop yang memperhitungkan utas, memori, iterasi kode, dll. Apakah Anda benar-benar ingin menggali ke dalam pipa pemrosesan GPU pada 1060? Anda mungkin dapat menghasilkan estimasi yang sangat baik dengan memahami segala sesuatu yang terjadi antara kode Anda dan logam, tetapi pada akhirnya itu mungkin tidak sepadan dengan waktu dan upaya; kemungkinan akan mengkonfirmasi bahwa notasi Big O (model sederhana, jika Anda mau) menangkap sebagian besar variasi dalam waktu komputasi. Satu hal yang dapat Anda lakukan jika Anda melihat kemacetan adalah profil kinerja.

Tongkat hijau
sumber
2

Tergantung pada apa yang Anda butuhkan. Anda dapat melatih berbagai ukuran jaringan pada sumber daya apa pun. Masalahnya adalah waktu pelatihan. Jika Anda ingin melatih Inception pada CPU rata-rata, akan membutuhkan waktu berbulan-bulan untuk bertemu. Jadi, itu semua tergantung pada berapa lama Anda bisa menunggu untuk melihat hasil Anda berdasarkan jaringan Anda. Seperti dalam jaring saraf kita tidak hanya memiliki satu operasi tetapi banyak (seperti menggabungkan, max pooling, padding dll), tidak mungkin untuk membuat estimasi seperti yang Anda cari. Mulailah melatih beberapa jaringan terkenal dan mengukur waktu. Kemudian, Anda dapat menginterpolasi berapa lama waktu yang dibutuhkan untuk melatih jaringan yang Anda cari.

Deniz Beker
sumber
Apakah Anda mengetahui sumber daya yang mengumpulkan informasi untuk berbagai pekerjaan NN? Jadi daftar: tipe NN, jumlah unit, hiperparameter, ukuran dataset, Perangkat keras yang digunakan, waktu yang diperlukan? Itu akan membantu mengembangkan intuisi aturan praktis
pascalwhoop