ในโลกของการประมวลผล ทรัพยากรที่ไม่ได้ใช้ถือเป็นโอกาสที่พลาดไป ปรัชญานี้นำไปสู่การพัฒนาเครื่องมือเช่น vramfs ซึ่งเป็นยูทิลิตี้ที่แปลงหน่วยความจำวิดีโอ (VRAM) ที่ไม่ได้ใช้จากการ์ดกราฟิกให้เป็นพื้นที่เก็บไฟล์ที่ใช้งานได้จริงโดยใช้ไลบรารี FUSE (Filesystem in Userspace) แม้ว่าโปรเจกต์นี้จะไม่ใช่เรื่องใหม่ แต่ก็ยังคงจุดประกายให้เกิดการสนทนาที่น่าสนใจเกี่ยวกับทางเลือกในการเก็บข้อมูลและการนำชิ้นส่วนฮาร์ดแวร์มาใช้ใหม่อย่างสร้างสรรค์
ข้อจำกัดด้านประสิทธิภาพและทางเลือกอื่น
การใช้งาน vramfs ในปัจจุบันมีความเร็วในการอ่านประมาณ 2.4 GB/s และความเร็วในการเขียน 2.0 GB/s ซึ่งสมาชิกในชุมชนบางคนชี้ให้เห็นว่าเทียบเท่ากับ SSD แบบ NVMe รุ่นใหม่มากกว่าที่จะเร็วกว่าอย่างมีนัยสำคัญ ผลการทดสอบเหล่านี้ได้มาจากฮาร์ดแวร์ที่ค่อนข้างเก่า (Intel Core i5-2500K กับ AMD R9 290 GPU) ทำให้มีการคาดการณ์ว่าประสิทธิภาพอาจดีขึ้นอย่างมากบนระบบสมัยใหม่ที่มี PCIe 4.0/5.0 และการใช้งาน FUSE รุ่นใหม่
ผู้แสดงความคิดเห็นหลายคนได้เสนอแนะว่าวิธีการที่ใช้ FUSE นั้นทำให้เกิดภาระการทำงานที่ไม่จำเป็น ทางเลือกหนึ่งที่เสนอคือการใช้โมดูลเคอร์เนล phram ซึ่งสร้างอุปกรณ์บล็อกที่ข้าม FUSE ไปเลย คนอื่นๆ ได้เสนอว่าโมดูลเคอร์เนล Linux ที่เหมาะสมโดยใช้ระบบย่อย DRM (Direct Rendering Manager) จะให้ประสิทธิภาพที่ดีกว่าด้วยการแคชที่เหมาะสม การสนับสนุน mmap โดยตรง และระบบไฟล์ที่เชื่อถือได้และทำงานพร้อมกันได้
รายละเอียดระบบทดสอบ (จากการทดสอบประสิทธิภาพ vramfs ดั้งเดิม)
- ระบบปฏิบัติการ: Ubuntu 14.04.01 LTS (64 บิต)
- CPU: Intel Core i5-2500K @ 4.0 GHz
- RAM: 8GB DDR3-1600
- GPU: AMD R9 290 4GB (Sapphire Tri-X)
ตัวชี้วัดประสิทธิภาพ
- ประสิทธิภาพการอ่าน: ~2.4 GB/s
- ประสิทธิภาพการเขียน: ~2.0 GB/s
- ขนาดบล็อกที่เหมาะสมที่สุด: 128KiB (สำหรับประสิทธิภาพ) หรือ 64KiB (สำหรับการใช้พื้นที่น้อยลง)
ข้อจำกัดในการใช้งาน
- ใช้การล็อคมิวเท็กซ์เดียวสำหรับการทำงานส่วนใหญ่ (จำกัดการทำงานพร้อมกัน)
- การถ่ายโอนข้อมูลทั้งหมดต้องผ่านบัส PCIe
- ต้องการการรองรับ OpenCL 1.2
- ขนาดสูงสุดที่แนะนำ: 50% ของ VRAM ที่มีอยู่
ความท้าทายในการนำไปใช้
การใช้งาน vramfs ในปัจจุบันเผชิญกับอุปสรรคทางเทคนิคหลายประการ อาจสำคัญที่สุดคือโปรเจกต์นี้ใช้ล็อคมิวเท็กซ์เดียวสำหรับการดำเนินการส่วนใหญ่ หมายความว่ามีเพียงเธรดเดียวเท่านั้นที่สามารถแก้ไขระบบไฟล์ได้ในแต่ละครั้ง การเลือกออกแบบนี้จำกัดการทำงานพร้อมกันและประสิทธิภาพโดยรวมอย่างรุนแรง
ความท้าทายอีกประการหนึ่งคือคอขวดที่มีอยู่ในการถ่ายโอนข้อมูลระหว่าง CPU กับ GPU เนื่องจากการอ่านและเขียนทั้งหมดต้องผ่านบัส PCIe และผ่าน CPU ทำให้ความเร็วสูงสุดทางทฤษฎีถูกจำกัดไว้ต่ำกว่าการเข้าถึง GPU ไปยัง VRAM โดยตรงอย่างมาก ข้อจำกัดนี้ทำให้บางคนสงสัยถึงประโยชน์ในทางปฏิบัติของวิธีการนี้เมื่อเทียบกับการเพิ่ม RAM ของระบบซึ่งปัจจุบันมีราคาค่อนข้างถูกลง
การใช้ vram อันมีค่าเพื่อเก็บไฟล์เป็นอารมณ์ขันชนิดพิเศษ โดยเฉพาะอย่างยิ่งเมื่อมีคนนำไปใช้จริงๆ
ข้อพิจารณาในทางปฏิบัติและกรณีการใช้งาน
การสนทนาในชุมชนเผยให้เห็นข้อกังวลในทางปฏิบัติหลายประการเกี่ยวกับการใช้ VRAM เป็นระบบไฟล์ ปัญหาสำคัญประการหนึ่งคือการจัดการพลังงาน - การใช้ VRAM สำหรับการเก็บข้อมูลจะป้องกันไม่ให้ GPU เข้าสู่สถานะพลังงานต่ำ ซึ่งอาจเพิ่มการใช้พลังงานของระบบ แม้ว่า GPU บางรุ่นสามารถเลือกจ่ายไฟให้บางส่วนของหน่วยความจำในขณะที่ส่วนอื่นยังคงทำงานอยู่ แต่รายละเอียดการใช้งานแตกต่างกันไปตามฮาร์ดแวร์
ข้อกังวลอีกประการหนึ่งเกี่ยวข้องกับการใช้ VRAM เป็นพื้นที่สลับ (swap space) แม้ว่าจะเป็นไปได้ในทางเทคนิค แต่ผู้ใช้หลายคนรายงานว่าระบบค้างเมื่อพยายามทำเช่นนี้ เนื่องจากกระบวนการจัดการ GPU เองอาจถูกสลับออกไป ทำให้เกิดข้อผิดพลาดหน้าที่กู้คืนไม่ได้ สิ่งนี้เน้นย้ำถึงความท้าทายที่กว้างขึ้นกับพื้นที่สลับบนสื่อเก็บข้อมูลที่ต้องพึ่งพาไดรเวอร์
แม้จะมีความท้าทายเหล่านี้ แต่ก็มีกรณีการใช้งานเฉพาะทางอยู่บ้าง สำหรับระบบที่มี RAM จำกัดแต่มี GPU ที่ดี vramfs อาจให้พื้นที่เก็บข้อมูลความเร็วสูงเพิ่มเติม นอกจากนี้ยังมีการคาดการณ์เกี่ยวกับประโยชน์ด้านประสิทธิภาพสำหรับงานที่เร่งความเร็วด้วย GPU บางอย่างที่สามารถทำงานกับข้อมูลที่เก็บไว้ในระบบไฟล์ VRAM ได้โดยตรง
อย่างไรก็ตาม สำหรับผู้ใช้ส่วนใหญ่ ฉันทามติดูเหมือนจะเป็นว่าการเพิ่ม RAM ของระบบเป็นวิธีแก้ปัญหาที่ปฏิบัติได้จริงและคุ้มค่ามากกว่า ตามที่ผู้แสดงความคิดเห็นคนหนึ่งได้กล่าวไว้ RAM ของระบบขนาด 192GB มีราคาประมาณ 500 ดอลลาร์สหรัฐ ในขณะที่ VRAM ของ GPU ที่เทียบเท่ากันจะมีราคาประมาณ 40,000 ดอลลาร์สหรัฐ - ทำให้การเลือกเป็นเรื่องตรงไปตรงมาสำหรับผู้ที่ต้องการพื้นที่เก็บข้อมูลความเร็วสูงเพิ่มเติม
แม้ว่า vramfs อาจไม่ได้ปฏิวัติเทคโนโลยีการเก็บข้อมูล แต่ก็เป็นตัวแทนของการทดลองอย่างสร้างสรรค์ที่ขับเคลื่อนนวัตกรรมในการประมวลผล ตามที่ผู้แสดงความคิดเห็นคนหนึ่งกล่าวไว้อย่างเหมาะสม โปรเจกต์เช่นนี้แสดงถึงปรัชญา อย่าถามว่าทำไม แต่ถามว่าทำไมไม่ ซึ่งยังคงผลักดันขอบเขตของสิ่งที่เป็นไปได้กับฮาร์ดแวร์ที่มีอยู่
อ้างอิง: vramfs