Gennady Pekhimenko เพื่อนที่ดีของฉันที่ UofT บอกฉันเกี่ยวกับเครื่องมือสร้างโปรไฟล์ ML — Skyline ที่นักเรียนของเขาพัฒนาขึ้น การใช้งานดั้งเดิมแสดง UI เป็นปลั๊กอิน "ตัวแก้ไข Atom" อย่างไรก็ตาม พวกเขากำลังดำเนินการย้ายไปยังปลั๊กอิน VSCode เขาขอให้ฉันทดสอบการทำงาน

ปัจจุบัน Skyline รองรับโมเดลที่เขียนด้วย PyTorch และฝึกฝนบน Nvidia GPU สิ่งนี้สมเหตุสมผลเนื่องจาก PyTorch กลายเป็นเฟรมเวิร์กที่ได้รับความนิยมมากที่สุดมากขึ้นเรื่อยๆ และ Nvidia ก็ครองโลกแห่งการฝึกอบรม ML ด้วย ชุดเครื่องมือ CUDA

ปัญหาแรกที่ฉันมีคือฉันไม่มี Nvidia GPU แม้ว่าฉันจะซื้อการ์ดที่มี Nvidia GPU และต้องการใช้เป็น eGPU ฉันก็ทำอย่างนั้นไม่ได้เพราะ Nvidia ไม่ได้จัดส่งไดรเวอร์สำหรับ OSX นี่เป็นเพราะ "ความบาดหมาง" ที่ยาวนานระหว่างทั้งสองบริษัท

ผู้ให้บริการคลาวด์แบบดั้งเดิมมีราคาค่อนข้างแพง อินสแตนซ์ P3 ตามความต้องการของ AWS ณ วันที่เขียนนี้มีค่าใช้จ่าย 3.06 USD/ชม. มีบริการต่างๆ เช่น "Paperspace" ซึ่งคุณสามารถเช่า Cloud GPU ได้ในราคา 0.45 เหรียญสหรัฐฯ ต่อชั่วโมง ซึ่งเป็นการปรับปรุงที่สำคัญ อย่างไรก็ตาม ฉันสนใจบริษัทใหม่ที่เรียกว่า "vast.ai" ซึ่งพวกเขาสร้างแพลตฟอร์มที่ให้เจ้าของฮาร์ดแวร์ GPU ยืมฮาร์ดแวร์และสร้างรายได้ เป็นผลให้ราคา "ต่ำกว่า" อย่างเห็นได้ชัดเมื่อเทียบกับ Paperspace

ปัญหาที่สองที่ฉันมีคือเพื่อทดสอบปลั๊กอิน VSCode ฉันจำเป็นต้องเรียกใช้ VSCode ในสภาพแวดล้อมเดสก์ท็อปโดยมี GPU บนคลาวด์เป็นอินสแตนซ์ Linux ที่ไม่มีหัว ดังนั้นฉันจึงใช้เวลาช่วงสุดสัปดาห์สำรวจเรื่องนั้น และปรากฎว่ามันเป็นไปได้ ด้านล่างนี้เป็นเอกสารประกอบสิ่งที่ฉันต้องทำเพื่อให้มันทำงานได้

สิ่งแรกก่อน ลงทะเบียนกับ Vast.ai เพิ่มเงินเล็กน้อยในบัญชีของคุณ สร้างคู่คีย์ SSH และ "อัปโหลดคีย์สาธารณะไปยังบัญชีของคุณ" เพื่อให้สามารถเชื่อมต่อกับ VM ในระบบคลาวด์ได้

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

เช่า GPU ราคาถูกพร้อมเครือข่ายที่ดี

SSH ไปยังเครื่องโดยใช้คำสั่งที่ได้รับจากคอนโซลและติดตั้งการอ้างอิงทั้งหมด สิ่งที่เราต้องการจริงๆมีสามสิ่ง:

  1. x11vnc — เซิร์ฟเวอร์ VNC
  2. Xvfb — บัฟเฟอร์เฟรมเสมือน
  3. สภาพแวดล้อมเดสก์ท็อป ฉันเลือก "MATE" แต่ "Xfce" ก็ใช้งานได้เช่นกัน
# 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

สร้างบัฟเฟอร์เฟรมเสมือนโดยใช้ Xvfb และเริ่มต้นสภาพแวดล้อมเดสก์ท็อป

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

เริ่มเซิร์ฟเวอร์ VNC

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

บนเครื่องท้องถิ่นของคุณ ตั้งค่าอุโมงค์ SSH

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

ชี้ VNC Viewer ของคุณไปที่ localhost:5900 ฉันใช้ "Real VNC Viewer"

กำไร

ตอนนี้ฉันสามารถทดสอบปลั๊กอินกับฮาร์ดแวร์ GPU ที่แตกต่างกันได้มากมาย!

ในขั้นตอนถัดไป ฉันจำเป็นต้องจัดแพ็กเกจข้างต้นลงในคอนเทนเนอร์หรือสคริปต์การตั้งค่าเพื่อเร่งการตั้งค่าสภาพแวดล้อม หลังจากนั้น ฉันวางแผนที่จะทดสอบสิ่งนี้บน Paperspace ซึ่งน่าจะมีคลัสเตอร์ที่เชื่อถือได้และสม่ำเสมอมากกว่า คงจะดีมากถ้าให้การตั้งค่านี้ทำงานบน iPad Brian Linkletter เขียน โพสต์บล็อกที่น่าสนใจในหัวข้อนี้เมื่อไม่นานมานี้

โดยรวมแล้ว นี่เป็นการเปิดโอกาสที่น่าสนใจ ตัวอย่างเช่น คุณสามารถรัน CI ด้วยการทดสอบ UI บน GPU คลาวด์ราคาถูกได้

ลิงก์ที่มีประโยชน์บางส่วนที่ฉันพบระหว่างการเดินทางครั้งนี้:

  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

เผยแพร่ครั้งแรกที่ https://nurlybayev.family.