Setup Jupyter Notebook บน GPU server ด้วย GCP Compute Engine

Original article can be found here (source): Deep Learning on Medium

Step 4: สร้าง VM instance จาก Marketplace template โดยเข้าไปที่ Compute engine > VM instances > Create > Marketplace จากนั้นให้เลือก template ‘Deep Learning VM’

หลังจากเลือก template ดังกล่าว เราสามารถเข้าไปกำหนด spec ของ VM ได้ว่า จะใช้ CPU ทั้งหมดกี่ core, จำนวน RAM, GPU type ที่ต้องการ -> ถ้าอยากคุม budget ก็ใช้ตัว Tesla K80 ลองเปรียบเทียบราคาต่อชั่วโมงได้ที่ Effective hourly rate ด้านขวา, เลือก Framework ที่ต้องการ แล้วแต่ Pytorch หรือ Tensorflow

อย่าลืมเลือกให้ Install GPU driver ใน VM ให้เรียบร้อย หลังจากนั้นก็ deploy instance ได้

Step 5: จอง static ip ให้ VM และ กำหนด Firewall ให้ allow port ที่จะใช้กับ Jupyter Notebook

เข้าไปที่ VPC Network > External IP addresses

จอง static IP เลือก type เป็น regional > เลือก region ที่เราสร้าง VM ไว้ > เลือก VM ใน Attached to

เข้าไปที่ VPC Network > Firewall rules

สร้าง firewall rule กำหนด targets เป็น All instances จากนั้นกำหนด IP range และ TCP port ที่ต้องการใช้กับ Jupyter Notebook

Step 6: กำหนด IP/port ใน Jupyter Notebook

Start VM และ ssh เข้าไปด้วย gcloud command โดยสามารถเข้าไปดู command ได้ใน View gcloud command

อย่าลืมลง Google CLI ก่อน…

gcloud beta compute ssh --zone ZONE INSTANCE_NAME --project PROJECT_NAME

จากนั้นเราจะสร้าง config file สำหรับ Jupyter Notebook บน VM

jupyter notebook --generate-config

ใช้ text editor (เช่น VIM) ผ่าน CLI เข้าไป เพิ่ม config ด้านล่าง ตาม directory ของ config file ที่ได้มา

c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 5000

ตัวอย่างการเพิ่ม config ที่ท้ายไฟล์

run Jupyter Notebook บน port ที่กำหนด

jupyter notebook --no-browser --port=5000

เปลี่ยน local IP เป็น external IP เป็นอันจบขั้นตอน คุณได้ Jupyter Notebook บน GPU instance แล้ว!!!