ประสบการณ์ประกอบคอมใหม่ได้เรียนรู้อะไรบ้าง
ความคิดที่อยากได้ Desktop PC อีกครั้งหลังจากไม่ได้ใช้หรือประกอบมาเกินสิบปี เริ่มมาตั้งแต่เริ่มสนใจ OpenStack เมื่อสามปีก่อน Macbook Pro 2016 ที่เพิ่ม Memory เข้าไปเป็น 16GB ไม่สามารถจำลอง Infrastructure ได้ไหว หลักๆก็ Memory ไม่พอ ส่วน CPU ก็ปริ่มๆ ถ้าซื้อ Macbook Pro ใหม่ถ้าเพิ่ม Memory เข้าไป 32GB ราคาก็กระโดดไปไกลมาก อีกเรื่องอยากเริ่มศึกษา Tensorflow และถ้าอยากจะ train model ใน Tensorflow ให้เร็วๆตัว Macbook Pro ทำงานได้ไม่ดี ถ้าจะใช้ก็ต้องต่อ eGPU ผ่าน Thunderbolt แถม macOS ก็ไม่ได้ทำงานได้ดีกับ Nvidia เท่าไหร่ เอาเป็นว่าต้องพับโครงการนั้นไปและยังไม่มีเวลาศึกษาจริงจังด้วย
จากเหตุผลทั้งหมดที่บอกมา Desktop PC น่าจะเป็นทางออกที่ดีกว่าการซื้อ Mac ตัวใหม่ หรือแม้แต่ Windows Laptop (ซึ่งถ้าเอาดีๆราคาก็ไม่ได้ถูก แค่มีให้เหลือกมากกว่าหลายเกรด หลายราคา) อีกทั้ง Windows 10 กับ WSL2 ทำงานได้ดีมากขึ้น เท่าที่ลอง port งานจาก Mac มาทำบน Windows 10 ก็ทำงานได้ดี จะมีติดขัดบ้างในเรื่องการใช้งานในส่วนที่เป็นการ Sync การทำงานระหว่าง iPhone กับ Windows 10 ที่ยังสู้ทาง Mac ไม่ได้
สรุปแล้ว PC ที่อยากได้จะเอามารองรับงานดังนี้
- จำลอง Virtualization Infrastructure เช่น Kubernetes/Openstack/GNS3
- ใช้ Windows กับ WSL2 เป็นหลัก
- งานทั่วๆไป Browse Web ดูหนังฟังเพลง
- Train Tensorflow model และเรียนเกี่ยวกับ AI
- (optional) ตัดต่อ Video
- ไม่ยกไปข้างนอก
- ไม่เล่นเกมส์บน PC เล่นบน Playstation อย่างเดียว
- ไม่ Overclock
- เกลียดไฟ RGB
คุณสมบัติของเครื่องที่คิดไว้คร่าวๆต้องมีคุณสมบัติดังนี้
- มี CPU Core เยอะๆ
- มี Memory เยอะๆ ขั้นต่ำ 64GB และสามารถขยายได้
- ระบบระบายอากาศดีไม่ร้อน (ตอนแรกอยากได้ Case Mini ITX มาก Case Louqe Ghost S1 สวยมาก แต่พอทบทวนแล้วต้องพับโครงการไปเพราะ ระบบระบายอากาศไม่ดีเท่า ATX แน่ๆ และทุกอย่างแพงหมด ทั้ง Mainboard Case เพิ่มข้อจำกัดเรื่องการเลือกอุปกรณ์เข้ามามาก แต่ไม่ได้เพิ่ม value ในสิ่งที่ต้องการเลย)
- เสียงพัดลมไม่ดังมาก
- ราคาที่เหมาะสม ไม่แพง แต่ไม่กาก
- ต้องการ GPU Nvidia ที่สามารถใช้ศึกษา/ Train Tensorflow model ได้ GPU มือสองเป็นทางเลือกที่ดี สุดท้ายเลือก Inno3D GTX 1050 Ti มือสองมาเพราะอ่านจากบทความ Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning
ก่อนจะตัดสินใจซื้อได้หาข้อมูลค่อนข้างเยอะ แต่พอซื้อมาแล้วก็เจอปัญหาบางอย่างสิ่งที่คิดว่าตัดสินใจพลาดเพราะไม่ได้คิดไว้ และเหตุผลว่าทำไมเลือก componenet นี้ จึงอยากเอามา share เผื่อมีประโยชน์กับคนที่กำลังจะซื้อ สรุปได้เป็นข้อๆดังนี้
- CPU ตัดสินใจเลือก Ryzen 3900x เพราะได้จำนวน Core เยอะ คือ 12 Core 24 Thread ซึ่งน่าจะเพียงพอต่อความต้องการ เสียดายซื้อเร็วไปนิดนึง พอประกอบเสร็จ Ryzen 5 ออกพอดี แต่ซื้อก่อนใช้ก่อนไม่อยากรอ (ปลอบใจตัวเอง)
- การระบายความร้อนของ CPU ตัดสินใจใช้ชุดน้ำปิดมากกว่า Sink ลมเพราะเรื่องของขนาดไม่ใหญ่ ไม่รก และเสียงไม่ดังเป็นหลัก Sink ลมดีๆราคาไม่ต่างจากชุดน้ำปิดมาก และ Review ของชุดน้ำปิดตัวนี้ค่อนข้างดี ชุดน้ำปิดที่ใช้คือ NZXT Kraken X63 แต่พอประกอบเสร็จเจอว่าความร้อน CPU swing อยู่ในช่วง 40–60 องศา C ซึ่งลองเพิ่มความเร็วของพัดลมหม้อน้ำก็ไม่ได้ช่วยอะไร เดี๋ยวเขียนอธิบายแยกไว้ด้านล่างเกี่ยวกับเรื่องนี้อีกที ส่วนแนวการติดหม้อน้ำเลือกที่จะทำตามคำแนะนำของ Youtuber ท่านหนึ่งโดยเลือกติดที่หน้า Case และเอาท่อลงด้านล่างเพื่อไม่ให้เกิดฟองอากาศ ซึ่งจะลดประสิทธิภาพ และอายุการใช้งานของ Pump รวมถึงอาจเกิดเสียงดังได้ Stop Doing It Wrong: How to Kill Your CPU Cooler (AIO Mounting Orientation) / Ask GN 114: My AIO Will Explode? Tubes Down Don’t Reach? Cavitation? Custom Loops?
- ตอนแรกซื้อ Mainboard ASRock B550m Pro4 เพราะราคาไม่แพง แต่ Mainboard ตัวนี้สุดท้ายพบปัญหาเครื่อง Freeze บ่อย (ไม่ใช่ BSOD แต่เหมือนไฟดับ คือ Freeze แล้ว Restart เลย) ซึ่งยากมากที่จะรู้ว่าปัญหามาจากส่วนไหน เพราะเป็นไปได้หมดตั้งแต่ PSU Memory Mainboard และอุปกรณ์ต่อพ่วงทั้งหมด เดี๋ยวขอเขียนเรื่องปัญหานี้แยกไว้ด้านล่าง ส่วน Chipset เลือก B550 มากกว่า X570 เพราะเหตุผลเรื่องราคาและ B550 เพียงพอต่อการใช้งานแล้ว
- Mainboard กับ Case ไม่ match กัน เช่น เลือก Case ที่มี Front USB Type C แต่ Mainboard ไม่มีช่องให้เสียบ ต้องหา Adaptor มาแปลง ซึ่งอันนี้มารู้หลังจากประกอบ ตัว Adaptor สั่งจาก Aliexpress ราคาไม่แพงกำลังเดินทางมา เสียดายไม่ได้มีโอกาสทดสอบเพราะเปลี่ยน Mainboard เป็นตัวอื่นจากปัญหาด้านบน พอหาตัวใหม่เลยเลือกรุ่นที่มี Connector ของ USB Type C
- Memory ซื้อ Memory DDR4 ของ Transcend รุ่น JM3200HLE-32G Module ละ 32GB รวมเป็น 64GB ตรง Memory มันมีเรื่องของการรองรับ Memory Overclock เช่นในฝั่ง Intel จะมี Memory ที่รองรับ Extreme Memory Profile (XMP) ซึ่งใน Mainboard ฝั่ง AMD ก็ใช้คำว่า XMP เหมือนกัน (จริงๆฝั่ง AMD มีอีกชื่อ) คือ Memory ที่ฝัง XMP Profile ไว้ (ปกติมีแต่ JEDEC profile) ทาง Mainboard จะทำการ Load ไปใช้ใโดยใช้ setting ที่ถูกต้องได้ และ Intel และตัว Mainboard จะมี List ของ Memory module ที่ Certify XMP ไว้ แต่ตามที่บอกไว้ คือผมไม่สนใจเรื่อง Overclock ที่มาดูเรื่องนี้เพราะปัญหาของ Mainboard
- อยากใช้ Mouse Bluetooth เพราะไม่อยากมีสายรกรุงรัง แต่ไม่ต้องการใช้ Wifi เลยซื้อ Mainboard ที่ไม่มี Wifi แล้วซื้อ USB Bluetooth มาต่อหลังเครื่อง รวมกับซื้อ Mouse Bluetooth มาใช้ ซึ่งพบปัญหา Mouse response ช้าค่อนข้างบ่อย ทำให้การใช้งานไม่ smooth ซึ่งสุดท้ายเลยไปซื้อ Intel AX200 WIFI 6 (GIG+) DESKTOP KIT Wireless Adapter มาใช้แทน ซึ่งสิ่งที่ต้องการแค่ Bluetooth ไม่ได้ต้องการใช้ Wifi เพราะสายต่อถึง Router ได้อยู่แล้ว และ Mainboard มีช่องเสียบ WiFi M.2 ซึ่งใช้งานกับ Card ได้ดี ถือว่าแก้ปัญหาได้ตรงจุด แต่ด้วยปัญหาของ Mainboard ในข้อ 2 พอซื้อ Mainboard ใหม่เลยต้องซื้อตัวที่มี Wifi/Bluetooth built-in มา
- เหตุผลที่เลือก Case ตัวนี้เพราะเรื่อง Airflow เนื่องจาก ลมสามารถเข้าจากด้านหน้าได้สะดวก ด้านบนติดพัดลมได้ 2 ตัว และด้านหลังมีพัดลม 1 ตัวเพื่อให้ดูดอากาศร้อนออกไป และ Front Panel มี USB Type C
- พัดลม Case Noctua NF-A14 ด้านบนซึ่งซื้อมา 2 ตัว ไม่ช่วยอะไรมาก ติด 2 ตัวกับติดตัวเดียวอุณหภูมิภายใน Case ก็ไม่เปลี่ยนเพราะมันไม่ร้อน แถมติดสองตัวเสียงดัง สุดท้ายเลยติดแค่ 1 ตัว บน Mainboard ถ้าอนาคตมี GPU ใหม่ซึ่งอาจจะเป็น RTX 3070 หรือ RTX 3080 ค่อยพิจารณาติดเพิ่มอีกที
- PSU รุ่นที่เลือกใช้คือ Corsair RM850 เผื่อไว้สำหรับหน้ามืดซื้อ NVIDIA RTX 3080 พัดลมของ PSU รุ่นนี้เป็นแบบ ZERO RPM FAN MODE เพื่อลดเสียงจากพัดลม คือถ้า Load ไม่ถึง 40% พัดลมจะไม่ทำงาน ถ้าเราปิดเครื่องแล้วเปิดใหม่พัดลมจะทำงานแล้วก็หยุด เอาไว้ตรวจสอบว่าพัดลมยังไม่พัง ตอนแรกที่มีปัญหาเครื่อง Freeze คิดว่าเป็นปัญหา PSU ก็เพราะพัดลมไม่หมุนนี่ล่ะ
ปัญหาเครื่องไม่เสถียร
ปัญหาที่หนักที่สุดที่พบคือเครื่องไม่เสถียร มีอาการ Freeze และ Reboot ซึ่งถือว่าขณะเกิดอาการนี้ไม่ได้ทำงานอะไร ความร้อนไม่สูง จะเกิดตอนไหนทำนายไม่ได้ ถ้าดูจาก Event Log ของ Windows จะเห็นว่าอยากจะเป็นตอนไหนก็เป็น บางช่วงที่ไม่เป็นคือไม่ได้เปิด
อาการ Freeze ไม่ใช่ BSOD ดังนั้นไม่มี Log ใดๆ คือเหมือนไฟดับแล้วเครื่อง restart เองเฉยๆ ปัญหานี้หาต้นตอยากมากๆเพราะอาจจะเกิดจาก PSU Memory Mainboard GPU และอุปกรณ์ต่อพ่วงได้ทั้งหมด และส่วนตัวไม่มีอุปกรณ์ที่จะสามารถเอามาเปลี่ยนเพื่อทดสอบ สิ่งที่ทำได้คือเอาอุปกรณ์ที่ต่อพ่วงทั้งหมดออก เช่น Wifi card แต่ GPU เอาออกไม่ได้เนื่องจาก CPU ตัวนี้ไม่มี GPU built-in
ไปอ่านจาก forum ของฝรั่งมีคนเจออาการนี้เหมือนกัน เป้นมหากาพย์ ซึ่งแนะนำให้ทำตั้งแต่ Disable Global C-State Control ใน BIOS จนถึงเปลี่ยน Mainboard เปลี่ยน Memory แล้วหาย
สิ่งที่ทำเพิ่มเติมนอกจากเอาอุปกรณ์ต่อพ่วงออกคือ Disable Global C-State Control ซึ่งไม่พบอาการ Freeze เลยหนึ่งถึงสองวันจนมาวันที่สาม (ช่วง 6/10/63–8/10/63) มาเจอในช่วงเช้าของวันที่ 8/10/63 เพราะเปิดเครื่องทิ้งไว้เพื่อทดสอบ
ถึงตอนนี้เริ่มมั่นใจแล้วว่า Mainboard มีปัญหา เพราะก่อน Disable Global C-State Control เจอเรื่อง Voltage VDD Drop เหลือ 0.x V ซึ่งปกติอยู่แถวๆ 1.1 V จึงตัดสินใจลองเสี่ยงซื้อ Mainboard ใหม่ เพราะถ้าจะเอา Mainboard เก่าไป claim ก็ไม่รู้จะอ้างยังไง Mainboard ที่เลือกต้องมี USB Type-C Connector และ Wifi/Bluetooth Build-n ตามที่เขียนถึงปัญหาไว้ในตอนแรก ซึ่งสุดท้ายเลือก MSI MAG B550M MORTAR WIFI เนื่องจากราคา และ review จากเว็บต่างประเทศเป็นหลัก ซึ่งโชคดีมากที่พอเปลี่ยนมาใช้ Mainboard นี้แล้วไม่พบปัญหา Freeze / Restart อีกเลย ข้อมูลเปรียบเทียบ Mainboard นอกจาก function ให้ลองดูที่ VRM Tier List จาก Motherboard VRM Tier List v2 (currently AMD only)
ส่วนของวันที่ 10 เกิดจากไปลอง Enable XMP ซึ่งพบว่า Memory ที่ซื้อมาไม่รองรับก็เลย Freeze แต่ไว้มีเวลาอาจจะลอง tune ดูอีกที
ปัญหาความร้อนของ CPU
ความร้อน ของ CPU ที่ swing อยู่ในช่วง 50–60 องศา C ทั้งๆที่ระบบ Idle นี่ค่อนข้างรบกวนจิตใจมากเพราะ Review จากเว็บต่างประเทศ ตัวชุดน้ำปิดของ NZXT Kraken X63 ทำได้ดีกว่านี้มาก ถึงลองจากห้องที่เปิดแอร์ ปรับความแรงของพัดลมหม้อน้ำก็ไม่เย็นกว่านี้ ในช่วงที่ระบบไม่เสถียร มีอีก function นึงที่ค้นพบโดยบังเอิญคือ Core Performance Boost ใน BIOS ซึ่งพอไป Disable แล้วอุณภูมิลงมาอยู่ในช่วง 30–50 องศา C ทันที ซึ่งก็ไม่แปลกเพราะทำให้ CPU ทำงานได้ไม่เกิน Base clock ซึ่ง Ryzen 3900x นี่อยู่ที่ 3.8 GHz.
ความร้อนของ CPU ที่ swing อยู่ในช่วง 50–60 องศา C ใน forum ของต่างประเทศก็บอกว่าปกติ เท่าที่ลอง stress test CPU ให้ทำงานที่ 100% ทุก core ในช่วงที่ Enable Core Performance Boost อยู่ อุณหภูมิของ CPU ก็ขึ้นไปไม่เกิน 80 องศา C
ส่วนตัวแล้วเลือก Disable Core Performance Boost เอาไว้ก่อนเนื่องจากยังไม่ได้ใช้งานอะไรมาก และ CPU มีหลาย core ดังนั้นจึงไม่จำเป็นต้อง Boost clock ไปถึง 4.6 GHz. ตาม spec. ซึ่งนอกจากร้อนแล้วก็เปลืองไฟ
(Update 14/10/2020) ปัจจุบันได้ทำการ Enable Core Performance Boost ใน Bios แล้วสามารถมาเลือก User Scenario จากโปรแกรม MSI Dragon Center ได้แล้ว ซึ่งพอเลือกเป็น Silent Mode ใน User Scenario ทั้ง CPU Clock Speed และความเร็วพัดลมก็ปรับลง สัมพันธ์กับอุณภูมิของ CPU ที่ลดต่ำลงไปด้วย
Bill of materials (BOM)
ด้านล่างนี้เป็น BOM ของ Component ทั้งหมด ซึ่งใครอยากได้ performance ที่ดีแต่ราคาถูกกว่านี้ก็ยังสามารถทำได้ โดยอาจลด spec. ของ Mainboard ลงไปใช้ MSI MAG B550M Mortar ธรรมดาที่ไม่มี Wifi ไม่เอาชุดน้ำแต่ไปใช้ Sink พัดลมที่แถมมากับตัว CPU เอง และอาจลด PSU เหลือสัก 500W-650W ก็ได้