FPGA Module Selection via Workload Profiling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing devices often lack sufficient processing capabilities to support various computer programs, and existing systems fail to identify the appropriate Field-Programmable Gate Array (FPGA) modules required by these programs, leading to insufficient performance even when devices are deployed with adequate power.
Innovation Solution
A system that collects workload properties of computer programs and applies them to a trained classifier to identify and select an appropriate FPGA module, ensuring the selected module meets the program's requirements, using a machine learning model to accurately choose the right FPGA module for both known and unknown workloads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If computing devices are deployed with sufficient processing power to support key computer programs, then processing capability is improved, but device complexity and cost increase
Solution Approach 1:
The system dynamically configures FPGA modules based on workload characteristics. Instead of deploying fixed high-power hardware for all scenarios, the FPGA architecture allows runtime reconfiguration to match actual program requirements, providing sufficient processing power only when and where needed.
Solution Approach 2:
The system changes hardware parameters by selecting different FPGA module configurations based on workload analysis. The classifier determines optimal FPGA parameters (logic block count, memory capacity, interconnect structure) matching the program's specific needs, avoiding over-provisioning while ensuring adequate performance.
2Productivity
If FPGA modules are selected without proper identification methods, then device complexity is reduced, but processing performance deteriorates
Solution Approach 1:
The system employs an automated classifier that self-selects appropriate FPGA modules by analyzing workload properties. The classifier automatically matches program characteristics with FPGA module capabilities, eliminating manual selection complexity while ensuring optimal processing performance through data-driven decisions.
Solution Approach 2:
The system uses feedback from workload analysis to guide FPGA module selection. By monitoring program execution characteristics and resource utilization patterns, the classifier receives feedback that informs subsequent module selections, continuously optimizing the match between program needs and hardware capabilities.
3Adaptability or versatility
If computing devices use generic processing units, then device complexity is minimized, but adaptability to different workload requirements deteriorates
Solution Approach 1:
The system implements a universal FPGA platform that can perform multiple functions through reconfiguration. The same base FPGA architecture serves different workload types (compute-intensive, memory-intensive, I/O-intensive) by dynamically adjusting its configuration, providing broad adaptability without requiring multiple specialized hardware designs.
Solution Approach 2:
The FPGA architecture is segmented into reconfigurable functional blocks that can be independently configured based on workload requirements. This segmentation allows the system to assemble different processing units from the same hardware resources, achieving high adaptability while maintaining a unified device architecture.
Data Source
AI summary
Disclosed herein are system, method, and computer program product embodiments for determining an appropriate FPGA for a particular computer program. An embodiment operates by a central processing unit's counter identifying a plurality of workload properties in processing a computer program, wherein the central processing unit is part of a first computer architecture. The central processing unit then sends the workload properties to a controller trained to identify a field-programmable gate array (FPGA) module based on the plurality of workload properties. The central processing unit thereafter receives a recommended FPGA module from the controller and implements the recommended FPGA module in a computer architecture for processing the computer program, whereby the second computer architecture is able to perform the computer program more efficiently than the first computer architecture.


