Reducing latencies in vGPU assisted VDI
VirtuCache is installed in VMware vSphere kernel. It then automatically caches frequently and recently used data from any backend storage to any high speed media (RAM/SSD) in the VMware host. By bringing large amounts of ‘hot’ data closer to the VMware host GPU and CPU, VirtuCache improves the performance of all applications running within VMs including GPU assisted operations.
vGPU is new functionality in VMware vSphere 6.0 where a physical GPU within a ESXi host can be shared across multiple VMs. vGPUs help virtualize physical GPU workstations that are used for mapping, mathematical modeling, CAD, CAM, and gaming applications.
These GPU reliant applications are storage IO intensive, since GPUs are used in situations where large computations are rapidly performed on large datasets. So it helps if this dataset is cached locally to in-VMware host high speed media instead of being retrieved from backend storage all the time. This is what VirtuCache host side caching software does. Caching data closer to the GPU results in quicker completion times for GPU assisted operations.
Comparing performance of physical GPU workstation and virtual desktop with vGPU
Nippon Steel is a large steel manufacturer. One of its divisions migrated from physical CAD workstations to vGPU assisted VMware View 6.5 virtual desktops. The 30 View desktops were on a 4-host VMware 6.5 cluster connected to Fiber Channel EMC VMAX storage.
They ran industry standard SPECviewperf12 tests to compare the performance of vGPU VMs accelerated by VirtuCache versus existing physical workstations.
VDI VM configuration: Windows 10 64-bit, 12 Xeon E5 2690 vCPUs, 16GB Memory. 4-8 VMs on each host, sharing two Nvidia Grid K2 GPUs. VirtuCache was caching to Fusion IO Iodrive2 PCIe cards from EMC VMAX HDD based Fiber Channel SAN storage.
Physical workstation configuration: RAM and CPU specs were the same as the VM. There was a Nvidia Quadro K4200 GPU in the workstation, and storage was on locally attached Fusion IO Iodrive2 PCIe card.
GPU configuration in physical and virtual: Each ESXi host had two Grid K2 GPUs. So a total of 6,144 Kepler GK104 GPU cores at 745 MHz. The physical workstation had Quadro K4200 (1344 Kepler GK104 cores, 771 MHz). So the GPU horsepower in the physical workstation was about a fourth of the ESXi host.
The VM and physical workstation had the same CPU, memory, and storage performance specs. Regarding vGPU assigned to the test VM, we iterated the tests through two vGPU VM profiles. The VM with 280Q vGPU profile had comparable GPU horsepower to the physical workstation. The VM with 260Q vGPU profile had half the GPU horsepower of the physical workstation.
The below chart shows SPECviewperf12 scores when SolidWorks tests were run on physical and virtual workstations
These results show that the performance (SPECviewperf12 scores) was the same for physical workstation and the VM with 280Q profile, where the GPU, CPU, memory, and storage performance specs were similar. The results for the physical workstation were 15% higher when compared to the VM with 260Q profile, where only half of one GPU was assigned to the VM.
The value that VirtuCache added was to improve the performance of customer’s existing SAN storage so it could keep up with the additional burden placed on it by their vGPU driven workload, without requiring them to buy a new all-flash storage appliance.