Compiler-Driven FPGA Virtualization for Multitenancy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies lack a standard method for virtualizing field programmable gate arrays (FPGAs) in data centers, particularly for workload migration and multitenancy, due to the distributed nature of FPGA state and the absence of a widely accepted approach for sharing or relocating FPGA programs.

Innovation Solution

A compiler-driven strategy for FPGA virtualization using a combined compiler/runtime environment, such as Cascade, which transforms HDL descriptions to support sub-clock-tick granularity and enables workload migration and multitenancy by managing the FPGA state and interleaving asynchronous data and control requests between instances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a general strategy for virtualizing programmable devices is implemented, then multitenancy and workload migration are enabled, but the distributed nature of FPGA state and absence of standard approaches increases system complexity

Engineering Contradiction:
Improvemultitenancy and workload migration capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a compiler-driven virtualization layer as an intermediary between the FPGA hardware and multiple tenants/workloads. This compiler translates high-level HDL descriptions into intermediate representations that can be efficiently mapped to the underlying programmable device, abstracting away the complexity of state management and resource allocation. The compiler acts as a mediator that handles the distributed nature of FPGA state automatically, enabling multitenancy and workload migration without requiring complex manual management of the underlying hardware complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If hardware accelerators are virtualized without hardware-specific modifications, then ease of deployment is improved, but managing FPGA state and interleaving asynchronous requests increases complexity

Engineering Contradiction:
Improveease of deploymentVSAvoidstate management complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent replaces traditional hardware-based state management mechanisms with a compiler-driven software approach. Instead of modifying the FPGA hardware to include virtualization-specific circuitry or state management logic, the invention uses a compiler that translates HDL descriptions into forms suitable for virtualized execution. This substitution of mechanical (hardware) approaches with software-based compilation and translation enables easier deployment across different hardware platforms while the compiler automatically handles the complexity of state management and asynchronous request interleaving.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If multiple sub-programs are combined into a monolithic program, then resource utilization is improved, but compilation and loading time increases

Engineering Contradiction:
Improveresource utilizationVSAvoidcompilation and loading time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-compiling individual sub-programs into intermediate representations before they are combined into a monolithic program. The compiler processes each sub-program separately in advance, generating optimized intermediate code that can be efficiently merged. This preliminary compilation step allows the system to maintain high resource utilization through monolithic program execution while reducing the overall compilation and loading time, as the individual components are already prepared and optimized before integration.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11573817B2Compiler-driver programmable device virtualization in a computing system
Publication Date: 2023.02.07 VMWARE INC
  • US11573817B2 patent drawing
  • US11573817B2 patent drawing
  • US11573817B2 patent drawing

AI summary

Examples provide a method of virtualizing a hardware accelerator in a virtualized computing system. The virtualized computing system includes a hypervisor supporting execution of a plurality of virtual machines (VMs). The method includes: receiving a plurality of sub-programs at a compiler in the hypervisor from a plurality of compilers in the respective plurality of VMs, each of the sub-programs including a hardware-description language (HDL) description; combining, at the compiler in the hypervisor, the plurality of sub-programs into a monolithic program; generating, by the compiler in the hypervisor, a circuit implementation for the monolithic program, the circuit implementation including a plurality of sub-circuits for the respective plurality of sub-programs; and loading, by the compiler in the hypervisor, the circuit implementation to a programmable device of the hardware accelerator.