Categories
Computer

ใช้ Linux บน WSL หรือลง Linux แทนวินโดว์?

ก่อนหน้านี้เราติดตั้ง Linux ลงคอมได้โดยติดตั้งทับ Windows หรือแบ่ง Partition คนละห้อง แต่ปัจจุบันมี WSL ออกมา และเราได้ใช้แล้ว เลยเขียนการใช้งาน และข้อสังเกต

ก่อนหน้านี้เวลาจะติดตั้งระบบปฏิบัติการ Linux อย่าง Ubuntu ที่ผู้เขียนใช้อยู่ เราจำเป็นต้องติดตั้งแยกเป็น Partition อีกห้องหนึ่ง หรือติดตั้งทับ Windows ไปเลย แต่ไม่กี่ปีมานี้ ทางไมโครซอฟต์พัฒนาความสามารถหนึ่งที่ติดมากับระบบปฏิบัติการ Windows 10 และ 11 นั่นก็คือ Windows Subsystem for Linux (WSL)

Windows Subsystem for Linux

Windows Subsystem for Linux (WSL) เป็นเครื่องมือที่อนุญาตให้เราติดตั้งระบบปฏิบัติการ Linux ลงบนคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการ Windows ได้ โดยผู้ใช้สามารถลงระบบปฏิบัติการ Ubuntu, openSUSE, Alpine ได้อย่างสะดวกสบาย โดยเราได้ใช้งานเครื่องมือสำหรับการพัฒนาโมเดล AI/ML ด้วย PyTorch, Tensorflow รวมถึง ONNX runtime ผ่านทางนี้เราพบว่า

  • เราไม่จำเป็นต้องติดตั้ง Driver ลงในระบบปฏิบัติการ Linux บน WSL อีก เนื่องมาจากเราติดตั้ง Driver บนระบบปฏิบัติการ Windows แล้ว เราก็ติดตั้ง CUDA Toolkit สำหรับการใช้งาน Linux เพิ่มผ่านทางเว็บของ NVIDIA เอง (รวมถึง CUDNN ด้วย)
  • การติดตั้งเครื่องมือ Miniconda 3 รวมถึง PyTorch, Tensorflow และ ONNX Runtime ที่ติดตั้งได้สบายเหมือนการใช้งานผ่านคำสั่งบน Linux ตามปกติ
  • อย่างไรก็ตาม การใช้งานผ่านทางนี้มีข้อจำกัดด้านหน่วยความจำ (RAM) ที่มีขนาดที่จำเป็น และไม่ได้ให้ขนาดพอดีกันกับหน่วยความจำที่มีมาให้กับโน้ตบุ๊ค ตัวอย่างเช่นโน้ตบุ๊ค ROG Flow X13 ที่ให้แรมมา 16GB แต่บน WSL มีมาให้เพียง 8GB
  • นอกจากนี้ การใช้งานผ่านทางนี้ส่งผลให้ประสิทธิภาพการทำงานบนระบบปฏิบัติการ Windows ลดลง ยิ่งไปกว่านั้น ถ้าเราเพิ่มหน่วยความจำให้กับ Linux บน WSL แล้ว ส่งผลให้ RAM ที่ว่างสำหรับการใช้งานอื่น ๆ เพิ่มเติมบน Windows ก็ลดลงไปด้วย

เมื่อเราพบข้อจำกัดนี้แล้ว เราเลยทดลองติดตั้ง Linux อย่าง Ubuntu ลงบนคอมพิวเตอร์ ROG Flow X13 แทนที่ Windows

ติดตั้ง Linux บน Bare Metal

การติดตั้ง Linux บน Bare Metal (ติตตั้งบนคอมพิวเตอร์ที่ไม่มีระบบปฏิบัติการอื่น) ที่ผ่านการลบระบบปฏิบัติการ Windows ออกไปแล้ว อันนี้เป็นวิธีดั้งเดิมที่เคยทำกันมาตั้งแต่ที่มีคอมพิวเตอร์ออกมาใหม่ ๆ แล้ว จุดนี้ทำได้ไม่ยาก เพียงแค่

  • เราดาวน์โหลดระบบปฏิบัติการ Ubuntu ผ่านทางเว็บที่ให้ดาวน์โหลด ซึ่งเราแนะนำให้โหลดจากทางมหาวิทยาลัยเกษตรศาสตร์จะดีกว่า
  • ดาวน์โหลดเสร็จแล้ว ไฟล์ที่ได้จะอยู่ในรูปแบบ ISO เรานำไฟล์นี้ทำเป็นตัวติดตั้งโดยใช้ Flash Drive (ก็คอมสมัยนี้ไม่มีไดรฟ์ DVD มาให้) จุดนี้เราสามารถใช้เครื่องมืออย่าง balenaEtcher, uNetBootin หรือ Rufus ช่วยจัดทำส่วนนี้ได้
  • เมื่อทำตัวติดตั้งแล้ว เสียบ Flash Drive เข้ากับคอมพิวเตอร์ จากนั้นเปิดคอมพิวเตอร์ แล้วเลือกให้บูตเข้าตัว Flash Drive จากนั้นทำตามหน้าจอสำหรับการติดตั้ง โดยลบ Partition ที่ลงระบบปฏิบัติกาาร Windows แล้วลงตัวนี้แทน

เมื่อติดตั้งเสร็จแล้ว เราจะพบว่ายังใช้งานสำหรับงานด้าน AI/ML ทันทียังไม่ได้ เราจำเป็นต้องติดตั้งไดรฟ์เวอร์ รวมถึงเครื่องมือที่จำเป็นเสียก่อน เราทำได้โดย

  • ติดตั้งไดรฟ์เวอร์ จุดนี้เราใช้เครื่องมือที่มีมาให้บน Ubuntu แล้วเลือก Hardware Drivers เพื่อติดตั้งไดรฟ์เวอร์การ์ดจอ NVIDIA หรือ AMD จากนั้นก็รอให้ติดตั้ง ส่วนอุปกรณ์ที่ชอบเจอปัญหาที่จำเป็นต้องตั้งค่าหน่อยก็เป็น Wireless LAN, การ์ดเสียง, Bluetooth และอื่น ๆ อันนี้จำเป็นต้องดาวน์โหลดผ่านทางการใช้งานคำสั่ง APT หรืออื่น ๆ ที่ขึ้นกับอุปกรณ์ที่ใช้
  • เมื่อติดตั้งไดรฟ์เวอร์เสร็จแล้ว เราจำเป็นต้องติดตั้ง CUDA Toolkit ผ่านทางเว็บของ NVIDIA เอง (รวมถึง CUDNN)
  • ติดตั้งเครื่องมือที่จำเป็น อันนี้เราติดตั้ง Miniconda 3, PyTorch, Tensorflow, ONNX runtime ได้ตามปกติ

ติดตั้งเสร็จแล้ว เราสามารถใช้งานด้าน AI/ML ได้แบบเดียวกันกับบน WSL ครับ อย่างไรก็ดี เมื่อเทียบกันแล้วมีข้อสังเกตตามด้านล่างนี้ครับ

  • การติดตั้งด้วยวิธีนี้ จนไปถึงการตั้งค่าเพื่อให้พร้อมใช้งานจะยุ่งยากกว่าบน WSL ตั้งแต่เล็กน้อย ไปจนถึงยุ่งยากมาก อันนี้ขึ้นกับโน้ตบุ๊ค หรือคอมตั้งโต๊ะที่ใช้งานอยู่
  • อย่างไรก็ตาม เมื่อติดตั้งเสร็จแล้ว การใช้งาน Linux บน Bare Metal จะพบว่าทำงานได้เร็วมากกว่า Linux บน WSL รวมถึงจัดการไฟล์ได้ดีกว่าบน WSL เยอะ
  • ข้อต่อมา ประสิทธิภาพของการใช้งานด้าน AI/ML ทำได้ดีกว่าบน WSL รวมถึงหน่วยความจำที่มีขนาดเท่ากับที่คอมพิวเตอร์แจ้งมา ตัวอย่างเช่น ROG Flow X13 ที่ให้แรม 16GB เราจะพบว่าบน Linux ก็รายงานเท่า ๆ กันนี่แหละฮะ แต่ถ้ากังวลว่าหน่วยความจำจะไม่พอ เราสร้างตัว Swap เพิ่มเพื่อใช้งานได้
  • ข้อสุดท้าย เราไม่จำเป็นต้องไปแชร์หน่วยความจำกับระบบปฏิบัติการอื่นด้วย (แหม ก็ลงบน Bare Metal เลยนี่)

เมื่อผู้อ่านสังเกตจากการติดตั้ง Linux บน WSL และติดตั้งบน Bare Metal แล้วจะพบว่าการติดตั้ง Linux สำหรับการใช้งาน AI/ML บน WSL ทำได้ง่ายกว่า (มาก) อย่างไรก็ตามก็มีข้อจำกัดด้านประสิทธิภาพ ส่วนการติดตั้ง Linux บน Bare Metal ที่ให้ประสิทธิภาพที่ดีกว่ามาก ก็ติดตั้ง และตั้งค่าให้พร้อมใช้งานได้ยุ่งยากมากกว่า

ข้อสังเกตข้อนี้ก็ขึ้นกับผู้อ่านครับว่าเราต้องการใช้งานโปรแกรมบนระบบปฏิบัติการ Windows เยอะไหม ของผู้เขียนเองใช้โน้ตบุ๊ค ROG Flow X13 ที่ต้องใช้งานบน Windows เยอะอยู่ โดยโปรแกรมที่ใช้งานได้แก่ Microsoft Office, Affinity Photo, Canva, LINE, Steam และ Origin รวมถึงเกม อันนี้ส่วนตัวถ้าต้องการใช้งาน Linux จริง เราจะลงบน WSL ครับ

By Kittisak Chotikkakamthorn

อดีตนักศึกษาฝึกงานทางด้าน AI ที่ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัย National Chung Cheng ที่ไต้หวัน ที่กำลังหางานทางด้าน Data Engineer ที่มีความสนใจทางด้าน Data, Coding และ Blogging / ติดต่อได้ที่: contact [at] nickuntitled.com