A
system (600) and method (500) for virtualizing
hardware acceleration resources with a guaranteed
quality of service is described. In one aspect, the
system (600) implementing the method (500) creates
virtual hardware accelerators (308A, 308B, 308C) on a hardware accelerator unit (104) coupled to a host
server or a host
processing unit (102). Address registers and device configuration address registers are assigned to each
virtual hardware accelerator (308A, 308B, 308C). Requests for executing applications are received from the
virtual hardware accelerators (308 A, 308B, 308C) and translated into hardware accelerator resource requirements. The hardware accelerator resources are partitioned and allocated to the virtual hardware accelerators (308A, 308B, 308C). The hardware accelerator resources (314, 316, 318) are monitored for the usage of each virtual hardware accelerator (308A, 308B, 308C). The monitored resource usage is compared with the allocated resources for each virtual hardware accelerator (308A, 308B, 308C).
Quality of service parameters are enforced for each virtual hardware accelerator (308 A, 308B, 308C) by dynamically monitoring and modifying
resource allocation based on the comparison and maintaining
address space isolation between the virtual hardware accelerators.