กลับไปหน้าบทความ

อ่าน 9 นาที

การจำลองเสมือน GPU

การจำลองเสมือน GPU หมายถึงเทคโนโลยีที่อนุญาตให้ใช้ GPU เพื่อ เร่งความเร็ว การประมวลผลกราฟิก หรือ แอปพลิเคชัน GPGPU ที่ทำงานบน เครื่องเสมือน การจำลองเสมือน GPU...

การจำลองเสมือน GPU

การจำลองเสมือน GPUหมายถึงเทคโนโลยีที่อนุญาตให้ใช้GPUเพื่อเร่งความเร็วการประมวลผลกราฟิกหรือ แอปพลิเคชัน GPGPUที่ทำงานบนเครื่องเสมือนการจำลองเสมือน GPU ถูกนำมาใช้ในแอปพลิเคชันต่างๆ เช่นการจำลองเสมือนเดสก์ท็อป [ 1 ] เกมบนคลาวด์[ 2 ]และวิทยาศาสตร์การคำนวณ (เช่น การจำลอง อุทกพลศาสตร์ ) [ 3 ]

โดยทั่วไป การใช้งานการจำลองเสมือน GPU จะเกี่ยวข้องกับเทคนิคอย่างน้อยหนึ่งอย่างต่อไปนี้: การจำลองอุปกรณ์, การเข้าถึง API ระยะไกล, การส่งผ่านแบบคงที่ และการส่งผ่านแบบมีตัวกลาง แต่ละเทคนิคมีข้อดีข้อเสียที่แตกต่างกันในเรื่องอัตราส่วนการรวม เครื่องเสมือนกับ GPU , การเร่งความเร็วของกราฟิก , ความแม่นยำ ในการเรนเดอร์ และ การสนับสนุน คุณสมบัติ , ความสามารถในการพก พา ไปยังฮาร์ดแวร์ที่แตกต่างกัน, การแยกเครื่องเสมือนออกจากกัน และการสนับสนุนการระงับ/การกลับมาทำงานต่อ และ การ ย้ายข้อมูลแบบสด[ 1 ] [ 4 ] [ 5 ] [ 6 ]

การรีโมต API

ใน การรีโมต APIหรือการส่งต่อ API การเรียกใช้ API แบบกราฟิกจากแอปพลิเคชันแขกจะถูกส่งต่อไปยังโฮสต์โดยการเรียกใช้ขั้นตอนระยะไกลจากนั้นโฮสต์จะดำเนินการคำสั่งกราฟิกจากแขกหลายรายโดยใช้ GPU ของโฮสต์ในฐานะผู้ใช้รายเดียว[ 1 ]อาจถือได้ว่าเป็นรูปแบบหนึ่งของพาราเวอร์ชวลไลเซชันเมื่อรวมกับการจำลองอุปกรณ์[ 7 ]เทคนิคนี้ช่วยให้สามารถแบ่งปันทรัพยากร GPU ระหว่างแขกหลายรายและโฮสต์ได้เมื่อ GPU ไม่รองรับการจำลองเสมือนด้วยฮาร์ดแวร์ การใช้งานนั้นง่ายในเชิงแนวคิด แต่มีข้อเสียหลายประการ: [ 1 ]

  • ในการเข้าถึง API แบบกราฟิกโดยตรงนั้น การแยกตัวระหว่างเครื่องเสมือนมีน้อยมาก ซึ่งสามารถปรับปรุงการแยกตัวได้โดยใช้พาราเวอร์ชวลไลเซชัน
  • ประสิทธิภาพการทำงานอยู่ในช่วง 86% ถึงต่ำสุด 12% ของประสิทธิภาพการทำงานดั้งเดิมในแอปพลิเคชันที่เรียกใช้คำสั่งวาดภาพจำนวนมากต่อเฟรม
  • ต้องมีการส่งต่อ จุดเข้าใช้งาน API จำนวนมากและการใช้งานจุดเข้าใช้งานที่ไม่สมบูรณ์อาจลดความน่าเชื่อถือลงได้
  • แอปพลิเคชันบนเครื่องเสมือนอาจถูกจำกัดด้วย API ที่มีอยู่เพียงไม่กี่ตัว

โดยทั่วไปแล้ว ไฮเปอร์ไวเซอร์จะใช้หน่วยความจำร่วมกันระหว่างเกสต์และโฮสต์เพื่อเพิ่มประสิทธิภาพและลดความหน่วงให้เหลือน้อยที่สุด การใช้อินเทอร์เฟซเครือข่ายแทน (ซึ่งเป็นแนวทางทั่วไปในการเรนเดอร์แบบกระจาย ) ซอฟต์แวร์ของบุคคลที่สามสามารถเพิ่มการสนับสนุนสำหรับ API เฉพาะ (เช่นrCUDA [ 8 ]สำหรับCUDA ) หรือเพิ่มการสนับสนุนสำหรับ API ทั่วไป (เช่น VMGL [ 9 ]สำหรับOpenGL ) เมื่อซอฟต์แวร์ของไฮเปอร์ไวเซอร์ไม่รองรับ แม้ว่าความล่าช้าของเครือข่ายและค่าใช้จ่ายในการเรียงลำดับ อาจมากกว่าประโยชน์ที่ได้รับก็ตาม

การสนับสนุนแอปพลิเคชันจากเทคโนโลยีการจำลองเสมือนระยะไกล API
เทคโนโลยี ไดเร็กต์3ดีโอเพ่นจีแอลวัลคานโอเพ่นซีแอลดีเอ็กซ์วีเอ
การเร่งความเร็วของกราฟิกเสมือนที่ใช้ร่วมกัน ของ VMware (vSGA) [ 10 ] [ 11 ]11 4.3 [ 12 ]ใช่ เลขที่ เลขที่
การเร่งความเร็ว 3 มิติของ Parallels Desktop สำหรับ Mac [ 13 ]11 []3.3 [ B ]เลขที่ เลขที่ เลขที่
Hyper-V RemoteFX vGPU [ 15 ] [ 16 ]12 4.4 เลขที่ 1.1 เลขที่
ไดรเวอร์ 3D ของ VirtualBox Guest Additions [ 17 ] [ 18 ] [ 19 ]8/9 [ C ]2.1 [ D ]เลขที่ เลขที่ เลขที่
เวิร์กสเตชัน Thincast - 3D เสมือน[ 21 ]12.1 เลขที่ ใช่ เลขที่ เลขที่
QEMU / KVMกับ Virgil 3D [ 22 ] [ 23 ] [ 24 ] [ 25 ]เลขที่ 4.3 วางแผนไว้ เลขที่ เลขที่
  1. ^ แปลงเป็น OpenGL โดยใช้ WineD3D [ 14 ]
  2. ^โปรไฟล์ความเข้ากันได้
  3. ^ทดลอง ห่อหุ้มด้วย OpenGL โดยใช้ WineD3D [ 20 ]
  4. ^อยู่ระหว่างการทดลอง

การส่งผ่านคงที่

ในการส่งผ่านแบบคงที่หรือการส่งผ่าน GPU (กรณีพิเศษของ การส่งผ่าน PCI ) GPU จะถูกเข้าถึงโดยตรงโดยเครื่องเสมือนเครื่องเดียวโดยเฉพาะและถาวร เทคนิคนี้บรรลุประสิทธิภาพดั้งเดิม 96–100% [ 3 ]และความแม่นยำสูง[ 1 ] แต่การเร่งความเร็วที่ GPU ให้มานั้นไม่สามารถแบ่งปันระหว่างเครื่องเสมือนหลายเครื่องได้ ด้วยเหตุนี้จึงมี อัตราส่วนการรวมที่ต่ำที่สุดและต้นทุนสูงสุด เนื่องจากเครื่องเสมือนที่เร่งความเร็วด้วยกราฟิกแต่ละเครื่องต้องการ GPU ทางกายภาพเพิ่มเติม[ 1 ]

เทคโนโลยีซอฟต์แวร์ต่อไปนี้ใช้การส่งผ่านค่าคงที่:

VirtualBoxได้ลบการสนับสนุนการส่งผ่าน PCI ในเวอร์ชัน 6.1.0 [ 34 ]

QEMU/KVM

สำหรับ GPU บางรุ่น ไดรเวอร์การ์ดแสดงผล Nvidia และ AMD พยายามตรวจจับว่า GPU กำลังถูกเข้าถึงโดยเครื่องเสมือนและปิดใช้งานคุณสมบัติ GPU บางส่วนหรือทั้งหมด[ 35 ] NVIDIA เพิ่งเปลี่ยนกฎการจำลองเสมือนสำหรับ GPU สำหรับผู้บริโภคโดยปิดใช้งานการตรวจสอบในไดรเวอร์ GeForce Game Ready เวอร์ชัน 465.xx และเวอร์ชันที่ใหม่กว่า[ 36 ]สำหรับ NVIDIA สถาปัตยกรรมต่างๆ ของ GPU สำหรับเดสก์ท็อปและแล็ปท็อปสำหรับผู้บริโภคสามารถส่งผ่านได้หลายวิธี สำหรับการ์ดกราฟิกเดสก์ท็อป การส่งผ่านสามารถทำได้ผ่าน KVM โดยใช้การกำหนดค่า BIOS แบบดั้งเดิมหรือ UEFI ผ่าน SeaBIOS และ OVMF ตามลำดับ

ไนอาวุส

เดสก์ท็อป

สำหรับเดสก์ท็อป การ์ดกราฟิกส่วนใหญ่สามารถส่งผ่านได้ แม้ว่าสำหรับการ์ดกราฟิกที่มีสถาปัตยกรรม Pascal หรือเก่ากว่านั้น VBIOS ของการ์ดกราฟิกจะต้องส่งผ่านในเครื่องเสมือนหากใช้ GPU ในการบูตโฮสต์[ 37 ]

แล็ปท็อป

สำหรับแล็ปท็อป ไดรเวอร์ NVIDIA จะตรวจสอบการมีอยู่ของแบตเตอรี่ผ่าน ACPI และหากไม่มีแบตเตอรี่ จะมีการส่งคืนข้อผิดพลาด เพื่อหลีกเลี่ยงสิ่งนี้ จำเป็นต้องใช้ acpitable ที่สร้างจากข้อความที่แปลงเป็น Base64 เพื่อปลอมแบตเตอรี่และข้ามการตรวจสอบ[ 37 ]

ปาสคาลและยุคก่อนหน้า

สำหรับกราฟิกการ์ดแล็ปท็อปรุ่น Pascal และรุ่นเก่ากว่านั้น การส่งผ่านภาพ (passthrough) จะแตกต่างกันไปอย่างมาก ขึ้นอยู่กับการกำหนดค่าของกราฟิกการ์ด สำหรับแล็ปท็อปที่ไม่มี NVIDIA Optimus เช่น รุ่น MXM การส่งผ่านภาพสามารถทำได้ด้วยวิธีการแบบดั้งเดิม สำหรับแล็ปท็อปที่มี NVIDIA Optimus และแสดงผลผ่านเฟรมบัฟเฟอร์กราฟิกในตัวของ CPU แทนที่จะใช้เฟรมบัฟเฟอร์ของตัวเอง การส่งผ่านภาพจะซับซ้อนกว่า โดยต้องใช้จอแสดงผลหรือบริการแสดงผลระยะไกล การใช้ Intel GVT-g รวมถึงการรวม VBIOS เข้ากับการกำหนดค่าการบูต เนื่องจาก VBIOS อยู่ใน BIOS ของระบบแล็ปท็อป ไม่ใช่ใน GPU เอง

สำหรับแล็ปท็อปที่มี GPU ที่มี NVIDIA Optimus และมีเฟรมบัฟเฟอร์เฉพาะ การกำหนดค่าอาจแตกต่างกันไป หากสามารถปิด NVIDIA Optimus ได้ การส่งผ่านข้อมูลก็สามารถทำได้ด้วยวิธีการแบบดั้งเดิม อย่างไรก็ตาม หาก Optimus เป็นการกำหนดค่าเพียงอย่างเดียว ก็เป็นไปได้มากว่า VBIOS จะมีอยู่ใน BIOS ของระบบแล็ปท็อป ซึ่งต้องใช้ขั้นตอนเดียวกันกับการเรนเดอร์แล็ปท็อปบนเฟรมบัฟเฟอร์กราฟิกในตัวเท่านั้น แต่ยังสามารถต่อจอภาพภายนอกได้อีกด้วย[ 38 ]

การส่งผ่านตัวกลาง

ในการส่งผ่านอุปกรณ์แบบมีตัวกลางหรือการจำลองเสมือน GPU แบบเต็มรูปแบบ ฮาร์ดแวร์ GPU จะจัดเตรียมบริบทที่มีช่วงหน่วยความจำเสมือนสำหรับแต่ละแขกผ่านIOMMUและไฮเปอร์ไวเซอร์จะส่งคำสั่งกราฟิกจากแขกไปยัง GPU โดยตรง เทคนิคนี้เป็นรูปแบบหนึ่งของการจำลองเสมือนที่ได้รับการสนับสนุนจากฮาร์ดแวร์และให้ประสิทธิภาพใกล้เคียงกับแบบเนทีฟ[ b ]และความแม่นยำสูง หากฮาร์ดแวร์เปิดเผยบริบทเป็นอุปกรณ์เชิงตรรกะแบบเต็มรูปแบบ แขกสามารถใช้ API ใดก็ได้ มิฉะนั้น API และไดรเวอร์จะต้องจัดการความซับซ้อนเพิ่มเติมของบริบท GPU ข้อเสียคืออาจมีการแยกน้อยระหว่างเครื่องเสมือนเมื่อเข้าถึงทรัพยากร GPU [ 1 ]

เทคโนโลยีซอฟต์แวร์และฮาร์ดแวร์ต่อไปนี้ใช้การส่งผ่านข้อมูลแบบมีตัวกลาง:

แม้ว่าการเข้าถึง API จากระยะไกลจะใช้งานได้ทั่วไปกับ GPU รุ่นปัจจุบันและรุ่นเก่า แต่การส่งผ่านข้อมูลผ่านตัวกลางนั้นต้องการการสนับสนุนจากฮาร์ดแวร์ ซึ่งมีให้ใช้งานเฉพาะในอุปกรณ์บางรุ่นเท่านั้น

การรองรับฮาร์ดแวร์สำหรับเวอร์ชวลไลเซชันแบบส่งผ่านสื่อ
ผู้ขาย เทคโนโลยี ตระกูล การ์ดกราฟิกเฉพาะตระกูล GPU แบบรวม
เซิร์ฟเวอร์ มืออาชีพ ผู้บริโภค
เอ็นดีวีดีvGPU [ 47 ]กริด , เทสลาควอดโรเลขที่
เอดีเอ็มMxGPU [ 43 ] [ 48 ]เซิร์ฟเวอร์ FirePro , Radeon Instinctเรเดียน โปรเลขที่ เลขที่
อินเทลจีวีที-จีบรอดเวลล์และที่ใหม่กว่า

การจำลองอุปกรณ์

สถาปัตยกรรม GPU มีความซับซ้อนมากและเปลี่ยนแปลงอย่างรวดเร็ว และรายละเอียดภายในมักถูกเก็บเป็นความลับ โดยทั่วไปแล้ว การจำลองเสมือน GPU รุ่นใหม่ๆ อย่างสมบูรณ์นั้นเป็นไปไม่ได้ ทำได้เพียงรุ่นเก่าและรุ่นที่เรียบง่ายกว่าเท่านั้น ตัวอย่างเช่นPCemซึ่งเป็นโปรแกรมจำลองเฉพาะของ สถาปัตยกรรม IBM PCสามารถจำลอง อุปกรณ์กราฟิก S3 ViRGE /DX ซึ่งรองรับDirect3D 3 และ3dfx Voodoo2ซึ่งรองรับGlideเป็นต้น[ 49 ]เมื่อใช้การ์ดแสดงผลเสมือนVGAหรือSVGA [ 50 ] [ 51 ] [ 52 ]ระบบปฏิบัติการแขกอาจไม่มีการเร่งความเร็วของกราฟิก 3 มิติ ทำให้มีฟังก์ชันการทำงานขั้นต่ำเพื่ออนุญาตให้เข้าถึงเครื่องผ่านเทอร์มินัลกราฟิก อุปกรณ์ที่จำลองอาจเปิดเผยโหมดกราฟิก 2 มิติพื้นฐานให้กับระบบปฏิบัติการแขกเท่านั้น ตัวจัดการเครื่องเสมือนอาจจัดเตรียมการใช้งาน API ทั่วไปโดยใช้การเรนเดอร์ซอฟต์แวร์เพื่อเปิดใช้งานแอปพลิเคชันกราฟิก 3 มิติบนระบบปฏิบัติการแขก แม้ว่าความเร็วอาจต่ำเพียง 3% ของประสิทธิภาพดั้งเดิมที่เร่งความเร็วด้วยฮาร์ดแวร์ก็ตาม[ 1 ] [ 53 ]

เทคโนโลยีซอฟต์แวร์ต่อไปนี้ใช้การเรนเดอร์ด้วยซอฟต์แวร์เพื่อใช้งาน API กราฟิก:

ดูเพิ่มเติม

หมายเหตุ

  1. ^ a bไม่สามารถใช้งานได้บนVMware Workstation
  2. ^ Intel GVT-g บรรลุประสิทธิภาพ 80–90% ของประสิทธิภาพดั้งเดิม [ 39 ] [ 40 ] Nvidia vGPU บรรลุประสิทธิภาพ 88–96% ของประสิทธิภาพดั้งเดิมเมื่อพิจารณาถึงค่าใช้จ่ายเพิ่มเติมบนไฮเปอร์ไวเซอร์ VMware [ 41 ]
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=GPU_virtualization&oldid=1356238435 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การจำลองเสมือน GPU

การจำลองเสมือน GPU หมายถึงเทคโนโลยีที่อนุญาตให้ใช้ GPU เพื่อ เร่งความเร็ว การประมวลผลกราฟิก หรือ แอปพลิเคชัน GPGPU ที่ทำงานบน เครื่องเสมือน การจำลองเสมือน GPU...

การรีโมต API

ใน การรีโมต API หรือการส่งต่อ API การเรียกใช้ API แบบกราฟิกจากแอปพลิเคชันแขกจะถูกส่งต่อไปยังโฮสต์โดย การเรียกใช้ขั้นตอนระยะไกล จากนั้นโฮสต์จะดำเนินการคำสั่งกราฟิกจากแขกหลายรายโดยใช้ GPU ของโฮสต์ในฐานะผู้ใช้รายเดียว [ 1 ] อาจถือได้ว่าเป็นรูปแบบหนึ่งของ...

การส่งผ่านคงที่

ในการส่งผ่านแบบคงที่หรือการส่งผ่าน GPU (กรณีพิเศษของ การส่งผ่าน PCI ) GPU จะถูกเข้าถึงโดยตรงโดยเครื่องเสมือนเครื่องเดียวโดยเฉพาะและถาวร เทคนิคนี้บรรลุประสิทธิภาพดั้งเดิม 96–100% [ 3 ] และความแม่นยำสูง [ 1 ] แต่การเร่งความเร็วที่ GPU...

QEMU/KVM

สำหรับ GPU บางรุ่น ไดรเวอร์การ์ดแสดงผล Nvidia และ AMD พยายามตรวจจับว่า GPU กำลังถูกเข้าถึงโดยเครื่องเสมือนและปิดใช้งานคุณสมบัติ GPU บางส่วนหรือทั้งหมด [ 35 ] NVIDIA เพิ่งเปลี่ยนกฎการจำลองเสมือนสำหรับ GPU สำหรับผู้บริโภคโดยปิดใช้งานการตรวจสอบในไดรเวอร์ GeForce...