- เข้าร่วม
- 1 มิถุนายน 2011
- ข้อความ
- 16,291
- คะแนนปฏิกิริยา
- 0
- คะแนน
- 36
ทีมงาน Valve แก้แพตช์เคอร์เนลลินุกซ์ ให้เล่นเกมบนจีพียูแรมน้อย 8GB ได้ดีขึ้น
Body
Natalie Vock นักศึกษาด้านคอมพิวเตอร์ที่มหาวิทยาลัย University of Konstanz ในเยอรมนี และพนักงานสัญญาจ้างของ Valve ด้านไดรเวอร์จีพียู AMD เขียนบล็อกเล่าว่าเธอได้เขียนแพตช์ให้เคอร์เนลลินุกซ์จัดการแรมได้ดีขึ้น เมื่อต้องเล่นเกมในเครื่องที่แรมจีพียู (VRAM) น้อยหน่อย เช่น 8GB
พฤติกรรมของเคอร์เนลลินุกซ์จะมอบ VRAM ให้แอพต่างๆ ตามที่ได้รับคำร้องขอ หาก VRAM ไม่พอ ก็จะใช้แรมของระบบ (ภาษาลินุกซ์เรียก GTT คือแรมของเครื่องส่วนที่จีพียูเข้าถึงได้) ที่แบนด์วิดท์ช้ากว่าแทน
นอกจากนี้ เคอร์เนลยังมีพฤติกรรม "เตะ" (eviction) พื้นที่หน่วยความจำของแอพบางตัวออกไปจาก VRAM ไปยังแรมของระบบ เพื่อให้แอพทุกตัวสลับกันเข้าถึง VRAM ได้เท่าเทียมกัน พฤติกรรมนี้อาจไม่สร้างปัญหาใดๆ หากเป็นแอพเดสก์ท็อปทั่วไป แต่ถ้าเป็นเกม การถูกย้ายหน่วยความจำไปมาระหว่าง VRAM กับแรมของระบบจะส่งผลต่อประสิทธิภาพของเกมที่กำลังเล่นอยู่
ทางแก้ของ Vock คือบอกให้เคอร์เนลรู้ว่า แอพแต่ละตัวมีความสำคัญไม่เท่ากัน โดยใช้เครื่องมือที่มีอยู่แล้วในวงการเคอร์เนลคือ cgroups มากำหนดว่าแอพในกลุ่มนี้มีศักดิ์ฐานะสูงกว่า ทนทานต่อการถูกเตะออกจาก VRAM ได้นานกว่า แพตช์ของ Vock เรียกว่า dmem cgroup controller โดยพัฒนาต่อจากแพตช์ของ Maarten Lankhorst วิศวกรอินเทลเคยทำไว้
ผลคือการรันเกมที่กินแรมเยอะๆ อย่าง Cyberpunk 2077 มีประสิทธิภาพที่ไหลลื่นกว่าเดิมบนเครื่อง VRAM ขนาด 8GB เพราะจองพื้นที่ VRAM ได้เยอะขึ้น ลดการพึ่งพาแรมส่วน GTT ที่ช้ากว่าให้มีสัดส่วนน้อยลง
แพตช์ dmem cgroup controller สามารถใช้ได้แล้วกับจีพียู AMD และ Intel Xe ส่วนจีพียู NVIDIA นั้นถ้าเป็นไดรเวอร์แบบปิดของ NVIDIA เองยังไม่ซัพพอร์ต แต่ Vock ส่งแพตช์เข้าไปยังไดรเวอร์โอเพนซอร์ส nouveau แล้ว รอการตอบรับจากทีมพัฒนาโครงการต้นน้ำ
ที่มา - Natalie Vock via Tom's Hardware
mk Wed, 15/04/2026 - 15:04
Continue reading...
Body
Natalie Vock นักศึกษาด้านคอมพิวเตอร์ที่มหาวิทยาลัย University of Konstanz ในเยอรมนี และพนักงานสัญญาจ้างของ Valve ด้านไดรเวอร์จีพียู AMD เขียนบล็อกเล่าว่าเธอได้เขียนแพตช์ให้เคอร์เนลลินุกซ์จัดการแรมได้ดีขึ้น เมื่อต้องเล่นเกมในเครื่องที่แรมจีพียู (VRAM) น้อยหน่อย เช่น 8GB
พฤติกรรมของเคอร์เนลลินุกซ์จะมอบ VRAM ให้แอพต่างๆ ตามที่ได้รับคำร้องขอ หาก VRAM ไม่พอ ก็จะใช้แรมของระบบ (ภาษาลินุกซ์เรียก GTT คือแรมของเครื่องส่วนที่จีพียูเข้าถึงได้) ที่แบนด์วิดท์ช้ากว่าแทน
นอกจากนี้ เคอร์เนลยังมีพฤติกรรม "เตะ" (eviction) พื้นที่หน่วยความจำของแอพบางตัวออกไปจาก VRAM ไปยังแรมของระบบ เพื่อให้แอพทุกตัวสลับกันเข้าถึง VRAM ได้เท่าเทียมกัน พฤติกรรมนี้อาจไม่สร้างปัญหาใดๆ หากเป็นแอพเดสก์ท็อปทั่วไป แต่ถ้าเป็นเกม การถูกย้ายหน่วยความจำไปมาระหว่าง VRAM กับแรมของระบบจะส่งผลต่อประสิทธิภาพของเกมที่กำลังเล่นอยู่
ทางแก้ของ Vock คือบอกให้เคอร์เนลรู้ว่า แอพแต่ละตัวมีความสำคัญไม่เท่ากัน โดยใช้เครื่องมือที่มีอยู่แล้วในวงการเคอร์เนลคือ cgroups มากำหนดว่าแอพในกลุ่มนี้มีศักดิ์ฐานะสูงกว่า ทนทานต่อการถูกเตะออกจาก VRAM ได้นานกว่า แพตช์ของ Vock เรียกว่า dmem cgroup controller โดยพัฒนาต่อจากแพตช์ของ Maarten Lankhorst วิศวกรอินเทลเคยทำไว้
ผลคือการรันเกมที่กินแรมเยอะๆ อย่าง Cyberpunk 2077 มีประสิทธิภาพที่ไหลลื่นกว่าเดิมบนเครื่อง VRAM ขนาด 8GB เพราะจองพื้นที่ VRAM ได้เยอะขึ้น ลดการพึ่งพาแรมส่วน GTT ที่ช้ากว่าให้มีสัดส่วนน้อยลง
แพตช์ dmem cgroup controller สามารถใช้ได้แล้วกับจีพียู AMD และ Intel Xe ส่วนจีพียู NVIDIA นั้นถ้าเป็นไดรเวอร์แบบปิดของ NVIDIA เองยังไม่ซัพพอร์ต แต่ Vock ส่งแพตช์เข้าไปยังไดรเวอร์โอเพนซอร์ส nouveau แล้ว รอการตอบรับจากทีมพัฒนาโครงการต้นน้ำ
ที่มา - Natalie Vock via Tom's Hardware
mk Wed, 15/04/2026 - 15:04
Continue reading...