Cara mempercepat pembelajaran mesin GPU - platform open source baru diperkenalkan

Nvidia memperkenalkan platform open source Rapids, yang misinya adalah mempercepat algoritma pembelajaran mesin GPU. Kami berbicara tentang fitur alat dan analognya.


/ foto Martin Brigden CC

Masalah pelatihan jaringan saraf


Daftar teknologi Nvidia termasuk arsitektur komputasi paralel CUDA. Tujuannya adalah untuk mempercepat perhitungan dengan mentransfer bagian dari tugas GPU alih-alih CPU. Dalam beberapa kasus, ini memungkinkan Anda untuk mempercepat pekerjaan aplikasi dan algoritma sebanyak 18 kali.

Untuk alasan ini, ia telah menemukan aplikasi luas di bidang pembelajaran mesin. Sebagai contoh, para peneliti dari universitas Florida dan North Carolina sedang mengembangkan dengan bantuannya sebuah mesin jaringan saraf untuk simulasi kuantum.

Sejumlah besar pustaka yang berbeda digunakan untuk mengembangkan algoritma MO. Banyak dari mereka ditulis dengan Python . Tetapi tidak semua dari mereka mendukung bekerja dengan CUDA. Alat Python untuk pembelajaran mesin scikit-belajar dan panda adalah contoh dari alat tersebut. Untuk menjalankan kode Python dalam arsitektur CUDA, peneliti menggunakan pustaka Numba atau PyCUDA yang terpisah. Pada saat yang sama, kode beberapa komponen harus ditulis ulang secara manual, yang sulit, karena Anda perlu mengetahui fitur pemrograman untuk GPU.

Solusi Nvidia


Dalam upaya untuk mengotomatisasi porting kode, Nvidia telah meluncurkan platform Rapids baru yang terbuka. Pengembang tidak perlu menggunakan perpustakaan yang berbeda: mereka hanya menulis kode dengan Python, dan Rapids secara otomatis mengoptimalkannya untuk berjalan pada GPU.

Untuk memetakan proses, Rapids menggunakan database umum, yang terletak pada memori GPU. Data disimpan dalam format Apache Arrow, yang umum untuk semua alat platform. Solusi ini membantu mempercepat proses pembelajaran mesin hingga 50 kali dibandingkan sistem yang menggunakan grafis dan prosesor terpusat.

Pada saat yang sama, alat tersedia di platform Rapids dengan bantuan yang seluruh proses bekerja dengan jaringan saraf dapat dilakukan pada chip grafis: dari persiapan data hingga keluaran hasilnya.

Jumlah solusi dalam repositori GitHub Rapids secara aktif diisi ulang. Misalnya, ada pustaka cuDF untuk menyiapkan data dan melatih jaringan saraf, dan pustaka cuML memungkinkan Anda untuk mengembangkan algoritma pembelajaran mesin tanpa masuk ke detail pemrograman untuk CUDA.

Nvidia akan terus mengembangkan platform. Pencipta rencana proyek untuk menambahkan alat untuk visualisasi data, analisis grafik dan pembelajaran mendalam ke Rapids. Program ini juga mengintegrasikan kerangka kerja Apache Spark.

Apa yang mereka pikirkan tentang platform


Komunitas teknologi mendukung rilis Rapids, tetapi pengembangan lebih lanjutnya menimbulkan beberapa pertanyaan dari para ahli dan pengguna.

Misalnya, manajer dari Cisco, Dell, NetApp, Lenovo, dan perusahaan lain berbicara untuk mendukung solusi baru. CEO Anaconda, Scott Collison mengatakan Rapids akan menyederhanakan pengumpulan dan persiapan data untuk pelatihan sistem AI yang kompleks. Pencipta Apache Arrow dan panda, Wes McKinney, setuju dengannya. Menurutnya, Rapids akan mengarah pada peningkatan produktivitas dalam tugas-tugas yang terkait dengan pembuatan fitur ( fitur engineering ).


/ foto Sander van der Wel CC

Namun, masyarakat juga berpendapat bahwa Rapids tidak dapat dianggap sebagai proyek open source. Sistem hanya bekerja dengan kartu Nvidia, dan rilis platform mungkin merupakan langkah pemasaran untuk menarik pelanggan baru. Perusahaan belum menentukan apakah platform akan bekerja dengan perangkat dari produsen lain.

Siapa yang sudah menggunakan Rapids


IBM berencana untuk mengimplementasikan platform dalam layanan untuk bekerja dengan sistem kecerdasan buatan: PowerAI, Watson dan IBM Cloud. Oracle juga mengumumkan dukungan untuk Rapids - sebuah platform yang tersedia di infrastruktur Oracle Cloud.

Produk baru Nvidia juga telah diuji oleh Walmart dan Uber. Rapids pertama membantu meningkatkan algoritma sistem yang bertanggung jawab untuk manajemen persediaan. Menurut perwakilan dari pengecer, Rapids telah mempercepat penyebaran algoritma pembelajaran mesin. Adapun Uber, perusahaan menggunakan Rapids dalam pengembangan sistem kendaraan tak berawak.

Solusi alternatif


Tidak hanya Nvidia yang mengembangkan platform untuk mempercepat MO. Misalnya, AMD terlibat dalam proyek ROCm (Radeon Open Compute). Ini adalah platform terbuka untuk komputasi berkinerja tinggi pada GPU.

Fitur ROCm adalah bahwa ia tidak bergantung pada bahasa pemrograman dan mampu bekerja dengan hampir semua kartu video. Termasuk dengan kartu Nvidia. Untuk ini , dialek C ++ khusus yang disebut HIP digunakan. Ini menyederhanakan konversi aplikasi CUDA ke kode C ++ portabel. Kode ini dikonversi secara otomatis oleh sistem Hipify khusus.

Pada saat yang sama, ROCm mendukung sejumlah besar Perpustakaan Akselerasi Matematika. Di antara mereka, BLAS, FFT, dan konvolusi tensor dapat dibedakan.

Pakar industri TI menunjukkan bahwa solusi open source untuk mempercepat komputasi heterogen dan GPU, seperti ROCm dan Rapids, memberi pengembang kesempatan untuk menggunakan sumber daya komputasi lebih efisien dan mendapatkan lebih banyak kinerja dari perangkat keras yang tersedia.



PS Beberapa bahan dari Blog IaaS Perusahaan Pertama:




PPS Secara singkat tentang teknologi IaaS - di saluran Telegram kami:



Source: https://habr.com/ru/post/id429286/


All Articles