GPU Virtual Device Driver for Storage Array Offload
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data storage systems face challenges in efficiently managing large data sets and supporting a large number of concurrent users due to limitations in resource allocation and communication latency between nodes.
Innovation Solution
The implementation of heterogeneous parallel processors with central processing units and graphics processing units, along with virtual graphics processing units and guest operating systems, allows for efficient resource sharing and reduced communication latency through virtualization techniques, including GPU virtualization and pinned memory pages, enabling effective data storage and processing across distributed nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single physical GPU is shared among multiple guest operating systems, then resource utilization is improved, but access contention and performance degradation occur
Solution Approach 1:
The physical GPU is segmented into multiple virtual GPU instances (vGPU0, vGPU1, etc.), each allocated to a different guest operating system. This segmentation allows each guest OS to have dedicated access to its assigned virtual GPU instance, eliminating access contention while maintaining high resource utilization through the underlying physical GPU sharing mechanism.
Solution Approach 2:
A virtualization layer with virtual device drivers acts as an intermediary between the physical GPU and multiple guest operating systems. This intermediary manages resource allocation, presents virtual GPU instances to guest OSes, and coordinates access to the physical GPU, thereby preventing direct access contention while enabling efficient resource sharing.
2Object-generated harmful factors
If multiple virtual GPU instances are created from a single physical GPU, then access contention is reduced, but device complexity increases
Solution Approach 1:
The virtualization layer implements a universal interface that presents standardized virtual GPU instances to multiple guest operating systems. This universal approach allows the same virtualization mechanism to serve multiple purposes: resource isolation, access management, and performance optimization, thereby managing complexity through standardization rather than proliferation of specialized components.
3Speed
If guest operating systems directly access the physical GPU, then access speed is improved, but system stability and security are compromised
Solution Approach 1:
The virtual device driver serves as an intermediary that maintains high-speed access paths to the physical GPU while enforcing system stability and security policies. It manages memory allocation, coordinates access timing, and prevents conflicting operations, thereby preserving fast access performance while ensuring reliable and secure system operation.
Solution Approach 2:
The system creates virtual copies of the GPU interface that guest operating systems can access directly through their own device drivers. These virtual interfaces replicate the necessary functionality for high-speed access while the physical GPU and its resources are managed through controlled pathways that ensure system stability and security.
Data Source
AI summary
An interface mitigates the need for inter-application locks in a storage system with a HPP. The interface includes a virtual device driver that can be accessed by both emulation threads and guest OS Container threads and separate memory pages that are pinned for use as buffer spaces. The pinned buffer memory pages are shared by CPU cores and by individual virtual HPP client drivers. The interface enables virtualization of GPUs and HPPs.


