BLOG

ต่อการ์ดจอข้างนอก กับ NXL

ในคราวที่แล้ว ผมได้ทดลอง eGPU กัับเครื่อง Shizen ซึ่งเป็นการต่อผ่าน Thunderbolt 3 แล้ว วันนี้ ผมมาทดสอบกับ NXL
ที่ไม่มี Thunderbolt 3 กันบ้าง

ก่อนหน้านี้ ที่ผมทดสอบการใช้ External GPU กับเครื่อง Shizen มาแล้ว โดยการต่อ GTX1060 3GB เข้ากับตัว Shizen ผ่านช่อง Thunderbolt 3 วันนี้ผมจะมาลองกับอีกเครื่องนึง นั่นก็คือเครื่อง NXL GTX1060 (รุ่นก่อนรุ่นปัจจุบัน) แต่ว่าไม่ได้รุงรัง หรือต้องตั้งขึ้นแบบนั้นอย่างในภาพปกนะ ทำออกมาแล้ว(ค่อนข้าง)สวยแบบนี้ อันนี้เป็นภาพท้องเครื่องของ NXL ที่เป็นหนูทดลองของเรา

สำหรับท่านที่ไม่เคยรู้จักกับ NXL มาก่อน มันเป็นโน๊ตบุ้คที่ใช้ CPU ของเครื่องแบบตั้งโต๊ะของ LEVEL51 ซึ่งผมมีรีวิวทำเอาไว่้ ขอแปะไว้ให้ตรงนี้เลยนะ ปัจจุบ้นรุ่นนี้มีการอัพเกรดเป็น RTX แล้ว (เลือกได้ถึง RTX2070 ตัวเต็ม) เดี๋ยวจะมาเขียนรีวิวให้อ่านกันอีกที เครื่องรุ่นนี้ ไม่มี Thunderbolt นะ

ไม่ต้องมี Thunderbolt ?

อย่างแรกเลยคงจะต้องมาคลายความสงสัยกันก่อน ว่า เราจะต่อการ์ดจอได้อย่างไร ในเมื่อมันไม่มีช่อง Thunderbolt? สาเหตุที่ผมสามารถทำให้ NXL ต่อกับการ์ดจอข้างนอกอีกตัวได้ นั่นก็เพราะว่ามันมีช่อง NVMe สำหรับต่อ SSD แบบ NVMe อยู่ด้วยกันสองช่องยังไงละ

ถ้าเราลองมาดูใน Block Diagram ของ NXL (N960TD / N950TP6) จะเห็นว่า ช่อง NVMe ทั้งสองช่องนั้น จริงๆ แล้วมันก็คือช่อง PCI Express แบบ x4 นั่นเอง โดยช่องแรก ใช้ PCI Express ช่อง 9-12 ส่วน เพื่อให้ได้ความเร็ว x4 อีกช่อง เป็นช่อง 21-24 แต่เข้าใจว่าในเอกสารน่าจะเขียนผิดนะ เพราะว่าชิพเซ็ต H370 ใน NXL ตัวใหม่นั้น มี PCIe แค่ 20 ช่อง

ที่เป็นแบบนี้ก็เพราะว่ามาตรฐาน NVMe เนี่ย มันก็คือมาตรฐานที่ใช้ช่องสัญญาณ PCI Express ในการให้ SSD ติดต่อกับชิพเซ็ต ซึ่ง NVMe เขาออกแบบมาเพื่อทะลุข้อจำกัดของระบบ AHCI ช่องสัญญาณ SATA (ซึ่งตอนแรกก็ดูว่าไม่น่าจะใช้กันหมดได้) อีกที จึงเป็นสาเหตุที่ SSD แบบ M.2 NVMe มีความเร็วสูงสุด ในหลัก GB/s สูงกว่า SSD แบบ SATA ที่มักจะมีความเร็วอยู่ประมาณ 550MB/s

สำหรับการต่อการ์ดจอ ผ่านช่อง M.2 เกิดขึ้นในสมัยของการขุดบิต โดยเป็นความพยายามที่จะใช้ช่อง M.2 สำหรับการเพิ่มจำนวนการ์ดจอที่สามารถต่อได้ และก็มีบริษัทเล็กๆ แบบเราเนี่ยในประเทศจีน เห็นช่องทางค้าขาย ประกอบกับอยู่ในแหล่งผลิตอิเล็กทรอนิกส์อย่างประเทศจีน เลยสามารถทำอุปกรณ์ในการต่อออกมาวางขายได้อย่างเป็นล่ำเป็นสัน

ส่วนตัวผม คือมนุษย์ซนๆ ที่เอาทุกอย่างมารวมร่างกัน เพราะรู้เรื่องในระดับเอามาใช้เท่านั้น (มีใครทำพวกนี้เป็น ก็ทักมาบ้างนะ) แต่ว่าเขียนโปรแกรมเป็น ก็เลยทำ Software เสริมเข้าไปอีกหน่อย โดยผมก็ใส่โค๊ดเข้าไปโปรแกรม SystemX ที่เป็นโปรแกรมของเครื่อง LEVEL51 นี้เลยแหละ โดยมันจะสามารถเช็คเจอว่า มีการ์ดจอที่ต่อผ่าน NVMe และทำการ Patch ให้มันสามารถเปิดใช้งานได้ (ไม่อย่างนั้น Windows จะไม่ยอมเปิดให้การ์ดจอที่ต่อแบบนี้ทำงานได้) รวมไปถึงสามารถทำการปิดการ์ดจอ NVIDIA ของเครื่อง ถ้าเกิดว่ามีการต่อการ์ดจอข้างนอกเข้ามาได้ด้วย เพราะว่าจากการทดสอบใช้งานแล้ว พอมีการ์ดจอในเครื่องสองตัวแล้ว โปรแกรมต่างๆ และเกมชอบจะงง ไม่รู้จะใช้อันไหนดี

การทดสอบ - ก็จากการใช้งานจริงเองเลย

ตอนนี้เครื่องที่ผมใช้เป็นประจำทุกวัน ก็คือเครื่อง Kurz เครื่อง All-in-one ที่ใช้อุปกรณ์ของ PC ปกติของเรา แต่แทนที่จะใส่เมนบอร์ดลงไป ผมก็ใส่ตัวอุปกรณ์การต่อการ์ดจอเข้าไปแทน พร้อมกับการ์ดจอ GTX 1070 ตัวเก่าของน้องชาย และ Power Supply อีก 1 ตัว

ถ้ายังงงๆ ว่า อะไรคือ All-in-one ที่เป็น PC มันเป็นไปได้ด้วยเหรอ ก็ให้ดูวีดีโอตอนประกอบแล้วกันนะ :D เครื่องที่ประกอบเป็น i7-9700K (OC ไปที่ 5.0GHz) และการ์ดจอเป็น RTX2070 ส่วนหน้าจอของเครื่อง Kurz เป็น 144Hz 100% sRGB ขนาดหน้าจอ 32" กันเลย เต็มตาดีงามมาก จะเล่นเกมก็ได้ เอามาทำงานก็ดี

ส่วนเครื่องจริงๆ ก็คือตัว NXL GTX1060 (รุ่นปัจจุบันจะเป็น RTX แล้ว) ที่วางไว้ข้างใต้ระหว่างฐานจอได้พอดีเลย สามารถใช้งานแบบพับจอได้ เพราะว่ารุ่นนี้จะดูดลมจากข้างใต้เครื่องอยู่แล้ว และอุปกรณ์ต่อพ่วงต่างๆ อย่างเช่น Mouse, Keyboard ก็ต่อผ่าน USB Hub อีกที และพอร์ตด้านหน้าของเครื่อง Kurz ยกเว้นช่องหูฟัง/ไมค์ ก็ต่อกับ USB Hub นี้ด้วย โดยใช้สายแปลงอีกที

สาเหตุที่เราไม่ใช้จอภาพภายในเครื่อง ของตัว NXL เอง ก็เพราะอ้างอิงจากผลการทดสอบการต่อการ์ดจอผ่าน Thunderbolt 3 ในเครื่อง Shizen ที่เราพบว่า การต่อการ์ดจอและแสดงภาพกลับมาด้วยนั้น มีผลกระทบต่อประสิทธิภาพเยอะมาก โดยวิธีการต่อการ์ดจอข้างนอกให้ได้ผลดีที่สุด จะต้องใช้จอข้างนอกไปด้วยพร้อมกันโดยให้ภาพแสดงที่จอที่ต่อกับการ์ดจอตัวนั้น เรียกได้อีกอย่างว่า เครื่อง Kurz All-in-one ที่เป็นทั้งจอและก็มีการ์ดจออยู่ในข้างในด้วยเนี่ย มันครบโซลูชั่นการต่อการ์ดจอเลย ว่าอย่างนั้น

สำหรับเสปคของเครื่อง NXL ที่ผมใช้ทดสอบนั้นก็มีดังนี้:

  • CPU: i7-8086K ยังไม่ได้ผ่ากระดอง ไม่ได้ Overclock และก็ยังไม่ได้แม้กระทั่งใส่ LIQUID Pro หรือ IC Diamond เพราะว่ากะจะใช้ชั่วคราว :) โดยตอนนี้มันระบายความร้อนผ่าน IC Graphite ที่เป็นแผ่น วางลงไปเฉยๆ (ร้อนมากเลยจ๊ะ)
  • RAM: 8GB + 16GB (อย่างที่บอกว่าเป็นเครื่องทำงาน อยากลอง 32GB บ้างนะ แต่ยังไม่มีงบเลย อิอิ)
  • SSD หลัก: 256GB ต่อในช่อง NVMe ด้วยเหมือนกัน!
  • SSD เก็บข้อมูล: Samsung 2TB ต่อในช่อง SATA

FireStrike - DirectX11

สำหรับเทสแรก ผมเลือกใช้ Fire Strike ซึ่งเป็นตัวแทนของเกมที่ใช้ DirectX 11 โดยคะแนนรวมออกมาอยู่ที่ 13,886 และ Graphics Score หรือคะแนนเฉพาะฝั่ง GPU อยู่ที่ 15,329 เมื่อเทียบกับฐานข้อมูลของ Notebookcheck แล้ว คะแนนรวมเฉลี่ย จาก Sample 5 เครื่อง อยู่ที่ 14,984 และ Graphics Score อยู่ที่ 18,255 และเมื่อลองเพิ่มความเร็ว Core ไปอีก 100MHz ก็มีผลทำให้คะแนนรวมเพิ่มเป็น 14,894 และ Graphics Score เป็น 16,667 (ส่วนที่ผมไม่ได้เทียบกับฐานข้อมูลของเว็บ UL เจ้าของ 3D Mark โดยตรงนั้นก็เพราะว่าคะแนนส่วนมากจะเป็นคะแนน Overclock เลยไม่รู้ว่าจริงๆ คะแนนมันควรจะเป็นเท่าไหร่กันแน่)

ความเร็ว GPU Core ของ GTX 1070 ขณะที่ Overclock อยู่ที่ 1974MHz ซึ่งถ้าเทียบกับการ์ดในผลการทดสอบที่ได้คะแนนใกล้เคียงกันของ NotebookCheck จะเป็นการ์ด Founders Edition ที่มีความเร็ว 1683Mhz

ก็พอจะสรุปได้ว่า เกม DirectX11 มีผลกระทบจากการต่อการ์ดจอผ่าน NVMe แบบนี้ เยอะมากเลยทีเดียว เพราะว่าประสิทธิภาพหายไปถึง 20% และต่อให้ Overclock ขึ้นมาแล้ว ก็ยังประสิทธิภาพลดลงถึง 15%

Time Spy - DirectX 12

เราทราบจากการทดสอบกับ Shizen ในครั้งที่แล้วด้วย API Overhead Test ว่า DirectX 12 มีผลกระทบจากการต่อผ่าน Thunderbolt 3 น้อยกว่า DirectX 11 สำหรับครั้งนี้ก็เช่นเดียวกัน ก็พบว่าได้คะแนน Graphics Score อยู่ที่ 4810 และคะแนนรวม 4911 โดยคะแนนเฉลี่ยจาก 3 Sample ของ Notebookcheck อยู่ที่ 5896 และ 5679 ตามลำดับ หรือ GTX1070 ที่ต่อผ่าน PCIe x4 ของเรา ประสิทธิภาพน้อยกว่าอยู่ 15%

แต่เมื่อ Overclock แล้ว คะแนนเพิ่มขึ้นเป็น 5875 และ 5975 ตามลำดับ พอๆ กับข้้อมูลของ NotebookCheck ซึ่งพอมาดูข้อมูลของเครื่องที่ทดสอบแล้ว ก็เทียบเคียงได้กับการ์ดที่มีความเร็ว 1987Mhz ซึ่งการ์ดของเราทำความเร็วอยู่ที่ 1974MHz

ก็อาจสรุปได้ว่า สำหรับเกม DirectX 12 นั้น การต่อการ์ดจอผ่าน ช่อง NVMe แบบนี้ไม่มีผลต่อประสิทธิภาพ

FFXV - DirectX 11

และก็ต้องทิ้งท้ายด้วย FFXV เป็นตัวแทนของเกม Open World ที่น่าต้องมีการทำ Streaming คือค่อยๆ โหลดฉากและข้อมูลการแสดงผลต่างๆ ไฟล์เกม เข้าสู่การ์ดจอเกือบตลอดเวลา น่าจะถูก Bandwidth ของ PCIe x4 จำกัดมากที่สุด และเข้าใจว่าเกมน่าจะเป็น DirectX 11 ด้วยนะ ซึ่งจากผลทดสอบที่ผ่านๆ มา ก็น่าจะทำให้คาดเดาได้ว่า ประสิทธิภาพจะต้องลดลงมากเลยแหละ

แต่ผลออกมาก็ไม่ได้เลวร้ายอย่างที่คิดเท่าไหร่ โดยคะแนนอยู่ที่ 5707 คะแนนที่ความเร็วปกติ และ 5801 คะแนน เมื่อ Overclock โดยคะแนนของ GTX 1070 ในฐานข้อมูลของเว็บ FFXV อยู่ที่ 6267 คะแนน นั่นก็คือ การต่อ GTX1070 ด้วยช่อง NVMe นอกเครื่องของเรา มีผลกับประสิทธิภาพประมาณ 10% 

ลิงค์ผลทดสอบ:

http://benchmark.finalfantasyxv.com/result/?i=16421513925c9e1f3e3abc9&Resolution=1920x1080&Quality=High
http://benchmark.finalfantasyxv.com/result/?i=1936187515ca35fa10e3fd&Resolution=1920x1080&Quality=High

Frame Rate Stability

อีกเรื่องที่ผมคาดว่าจะต้องมีปัญหา ก็คือความราบรื่นของ Frame Rate (fps) เพราะว่าผมมีสมมุติฐานว่า ถ้าเกิดว่าช่องส่งสัญญาณมันช้า (ความเร็ว x4 จากปกติการ์ดจอจะต่อช่อง x16) การที่จะโหลดข้อมูลเกมขึ้นการ์ดจอ ก็น่าจะต้องติดๆ ขัดๆ ไปด้วย

แต่เมื่อทดสอบกับ Stress Test ของ 3D Mark เอง ก็ได้ผลออกมาน่าทึ่งมาก เพราะ Frame Rate นิ่งมากอยู่ที่ 99.4% 

แล้วกับชีวิตจริงละ? ก็เลยต้องพึ่ง Overwatch กับ Apex สองเกมที่น่าจะได้รับผลกระทบมากที่สุด ถ้าเกิดว่ามีการสะดุดเกิดขึ้น

การบันทึก Frame Time (ระยะเวลาในการแสดงผลภาพ 1 ภาพ หรือ 1 เฟรม) ผมใช้ PresentMon ซึ่ง Overwatch นั้น ไม่ได้กะจะแข่งชิงแชมป์โลก แถมชอบเล่นแต่ Mercy ด้วย เพราะพอดีเป็นคนชอบ Micro-Manage เล่น Mercy ต้องคอยจัดการว่าใครจะอยู่จะตายจะเกิด และใครควรได้ Damage Boost ตลอดเวลา รู้สึกฟินดี เลยปรับเป็น EPIC และตั้งค่า Resolution Scale เป็น 100%

สำหรับการบ้นทึก โดยเริ่มบันทึกตั้งแต่เริ่ม Match (เนื่องจากในเมนู fps จะอยู่ที่ 60fps) จนก่อนจบ Match คือมีคำว่า Defeat แสดงขึ้นมา (เพราะตานี้แพ้ ฮือๆ) โดยฉากที่เล่นคือ Route 66 ก็ Frame Time โดยเฉลี่ย อยู่ที่ 8.34ms หรือ 119fps (1000 / 8.34 = 119fps) และช่วงของ fps คำนวณจากค่าเบี่ยงเบนมาตรฐาน (ฟังก์ชั่น STDEV.P ของ Excel) อยู่ที่ 91-173fps มีบางเฟรมที่ Frame Time สูงกว่าปกติมากแต่ก็เป็นเพียงประมาณ 10 เฟรม จากทั้งหมดมากกว่า 70,000 เฟรม และเป็นเวลาไม่ถึง 0.1 วินาที ซึ่งยากมากที่จะรู้สึกได้

ส่วน Apex Legends ผมจับข้อมูลหลังจากโดดลงถึงพื้นแล้ว และเล่นจน Squad โดนเก็บครบทุกคน ก็ fps อยู่ในระดับค่อนข้างสม่่ำเสมอเหมือนกัน โดยเฉลี่ยแล้วอยู่ที่ 89fps และช่วงของ fps ตามค่าเบี่ยงเบนมาตรฐาน อยู่ที่ 71-120fps พบว่ามีบางเฟรมที่เวลาสูงมาก แต่เป็นจำนวนน้อย เพียงแค่ประมาณ 5 จาก 80,000 เฟรม และเวลาที่สะดุดเพียง 0.07 วินาทีเท่านั้น ไม่สามารถรู้สึกได้เช่นกัน

ก็โดยรวมแล้ว การต่อการ์ดจอผ่านช่อง NVMe นี้ ไม่ได้ทำให้เราเสียเปรียบในเกม Overwatch หรือ Apex แต่อย่างใดนะ

แต่สำหรับ FFXV นั้นมีจุดที่เกมสะดุดตามที่ตั้งสมมุติฐานไว้ เพราะว่าเป็นเกมที่ต้องมีการโหลดข้อมูลเข้าการ์ดจอเกือบตลอดเวลาน่าจะติดขัดที่ Bandwidth x4 ที่ไม่ค่อยดีคือจังหวะที่สะดุดสามารถรู้สึกได้ชัดเจน เพราะว่า Frame Time นั้น บางครั้งมีถึง 700ms หรือภาพจากเกมหยุดไปเลยเกือบ 1 วินาที (0.7 วินาที) แต่สำหรับค่าทางสถิติแล้ว fps เฉลี่ยอยู่ที่ 80fps และช่วงของ fps ตามค่าเบี่ยงเบนมาตรฐาน อยู่ที่ 70-90fps (ช่วงประมาณ 15,000 เฟรมแรก เป็นหน้้าจอ Loading)

VRAY Benchmark

แล้วถ้าเกิดว่า เราอยากจะต่อการ์ดจอ เพื่อให้เรนเดอร์ VRAY เร็วขึ้น ไม่ใช่แค่เล่นเกมเฉยๆ ประสิทธิภาพของมันเป็นอย่างไรบ้าง?

สำหรับการใช้การ์ดข้างนอกแค่ 1 ตัว คือ GTX1070 นั้น ทำเวลาออกมาได้ที่ 1 นาที 32 วินาที เทียบกับฐานข้อมูลของ Chaos Group แล้ว ก็ไม่มีความแตกต่างอย่างชัดเจน และที่น่าสนุกกว่าก็คือการใช้ทั้ง GTX1060 ในเครื่อง พร้อมกับ GTX1070 ที่ต่อภายนอกพร้อมกัน ก็พบว่าเวลาลดลงเหลือเพียง 54 วินาที เท่ากับว่าเร็วขึ้นถึงประมาณ 48% เลยทีเดียว

แล้วจวนจะได้ใช้แล้วหรือยัง?

สำหรับผลการทดสอบครั้งนี้ ก็จัดได้ว่าค่อนข้างน่าพอใจเลยทีเดียวนะ กับการต่อการ์ดจอผ่านช่อง M.2 PCIe ในเครื่อง NXL เรียกได้ว่าเครื่อง NXL นี่ น่าจะสมบูรณ์แบบที่สุดแล้วในการใช้งาน เพราะมันเป็นทั้ง CPU แบบเครื่องตั้งโต๊ะ มีการ์ดจอในตัวที่ก็เร็วพอกับตัวที่อยุ่ในเครื่องตั้งโต๊ะแล้ว แถมยังสามารถต่อไดัอีกตัวด้วย!

ส่วนท่านที่เป็นเจ้าของเครื่อง NXL รุ่น GTX1060 ที่ต้องการชุดต่อการ์ดจอภายนอกแบบนี้บ้าง ก็ขอให้อดใจรออีกนิดเดียว จริงๆ ตั้งใจไว้ว่าภายในเดือนมีนาคมนี้ จะต้องเสร็จเรียบร้อย มีอุปกรณ์ที่เป็น Prototype แบบ Beta ออกมาให้ชมได้แล้ว แต่ว่าเกิดเหตุฉุกเฉินภายในครอบครัวเมื่อช่วงเดือนมีนาคม เลยทำให้ไม่ได้กลับมาแตะโปรเจคนี้เลยตลอดทั้งเดือน หวังว่าหลังสงกรานต์ เราจะได้เห็นตัวมันเป็นรูปเป็นร่างมากกว่านี้ครับ ;)

โน๊ตบุ้ค/พีซี จาก LEVEL51

BLOG