Teman baik saya di UofT, Gennady Pekhimenko, memberi tahu saya tentang alat pembuatan profil ML — Skyline yang dikembangkan oleh siswanya. Implementasi aslinya menampilkan UI sebagai plugin Atom editor. Namun, mereka sedang berupaya untuk memindahkannya ke plugin VSCode. Dia meminta saya untuk mencobanya.

Saat ini, “Skyline” mendukung model yang ditulis di “PyTorch” dan dilatih pada GPU Nvidia. Hal ini masuk akal karena PyTorch semakin menjadi kerangka kerja paling populer, dan Nvidia mendominasi dunia pelatihan ML karena CUDA Toolkit.

Masalah pertama yang saya alami adalah saya tidak memiliki GPU Nvidia. Meskipun saya membeli kartu dengan GPU Nvidia dan ingin menggunakannya sebagai eGPU, saya tidak akan dapat melakukannya karena Nvidia tidak mengirimkan driver untuk OSX. Hal ini disebabkan oleh semacam “perseteruan” yang panjang antara kedua perusahaan.

Penyedia cloud tradisional cukup mahal. Instans P3 sesuai permintaan AWS pada tulisan ini berharga $3,06/jam. Ada layanan seperti Paperspace di mana Anda dapat menyewa GPU cloud seharga $0,45/jam, yang merupakan peningkatan yang signifikan. Namun, perhatian saya tertuju pada perusahaan baru bernama vast.ai, tempat mereka membangun platform yang memungkinkan pemilik perangkat keras GPU meminjamkan perangkat keras mereka dan mendapatkan uang. Hasilnya, harga terasa “lebih rendah” dibandingkan Paperspace.

Masalah kedua yang saya miliki adalah untuk menguji plugin VSCode, saya perlu menjalankan VSCode di lingkungan desktop dengan GPU cloud sebagai instance Linux tanpa kepala. Jadi saya menghabiskan akhir pekan untuk mengeksplorasi hal itu, dan ternyata hal itu mungkin. Di bawah ini adalah dokumentasi tentang apa yang harus saya lakukan agar dapat berfungsi.

Hal pertama yang pertama. Daftar dengan broad.ai. Tambahkan sedikit uang ke akun Anda. Hasilkan pasangan kunci SSH dan “unggah kunci publik ke akun Anda” untuk dapat terhubung ke VM di cloud.

cs ~/.ssh 
ssh-keygen -t rsa -f vastai 
cat vastai.pub | pbcopy 

Sewa GPU murah dengan jaringan bagus

SSH ke mesin menggunakan perintah yang disediakan oleh konsol dan menginstal semua dependensi. Yang benar-benar kita perlukan adalah tiga hal:

  1. x11vnc — Server VNC
  2. Xvfb — buffer bingkai virtual
  3. Lingkungan desktop. Saya memilih "MATE", tetapi "Xfce" juga berfungsi.
# Your connection string will be different 
ssh -p 12345 [email protected] -L 8080:localhost:8080 
apt-get update
apt-get install x11vnc xvfb mate-core mate-desktop-environment mate-
notification-daemon

Buat buffer bingkai virtual menggunakan Xvfb dan mulai lingkungan desktop.

export DISPLAY=:0
Xvfb $DISPLAY -screen 0 1024x768x16 &
mate-session &

Mulai server VNC

x11vnc -display $DISPLAY -bg -forever -nopw -quiet -listen localhost -xkb

Di mesin lokal Anda. Siapkan terowongan SSH.

VASTAI_PORT=12345 # Replace with SSH port supplied by Vast AI
ssh -N -T -L 5900:localhost:5900 -p $VASTAI_PORT [email protected] &

Arahkan VNC Viewer Anda ke localhost:5900. Saya menggunakan Penampil VNC Asli.

Laba

Sekarang saya dapat menguji plugin pada banyak perangkat keras GPU yang berbeda!

Sebagai langkah selanjutnya, saya perlu mengemas hal di atas ke dalam wadah atau skrip pengaturan untuk mempercepat pengaturan lingkungan. Setelah itu, saya berencana mengujinya di Paperspace, yang mungkin memiliki cluster yang lebih andal dan seragam. Akan sangat keren jika pengaturan ini berjalan di iPad. Brian Linkletter “menulis” postingan blog menarik tentang topik tersebut beberapa waktu lalu.

Secara keseluruhan, hal ini membuka kemungkinan-kemungkinan menarik. Misalnya, Anda dapat menjalankan CI dengan pengujian UI pada GPU cloud yang murah.

Beberapa tautan berguna yang saya temukan saat saya menjalani perjalanan ini:

  1. https://stackoverflow.com/questions/12050021/how-to-make-xvfb-display-visible
  2. https://www.e2enetworks.com/help/knowledge-base/how-to-install-remote-desktop-xrdp-on-ubuntu-18-04/
  3. https://code.visualstudio.com/docs/setup/linux

Awalnya diterbitkan di https://nurlybayev.family.