Dynamic FPD Deployment via Runtime Workload Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software vendors face challenges in providing application program interfaces (APIs) that can leverage field programmable devices (FPDs) while ensuring compatibility for systems without FPDs, as existing solutions rely on static criteria for utilizing FPDs and do not make dynamic runtime trade-off decisions.
Innovation Solution
Implement a method to dynamically determine whether to use a software library or an FPD binary for processing workloads based on load, cost, and other factors, allowing for selective deployment to either a general-purpose processor or an FPD, and enabling monitoring and billing for FPD usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If static criteria are used to determine FPD utilization, then implementation simplicity is maintained, but system adaptability and performance optimization are limited
Solution Approach 1:
The patent implements dynamic decision-making that adapts to runtime conditions. The system continuously monitors workload characteristics, FPD availability, and system state to make real-time decisions about task allocation, replacing static criteria with dynamic evaluation that responds to changing conditions.
Solution Approach 2:
The system incorporates feedback mechanisms by monitoring workload characteristics and system state, then using this information to adjust FPD utilization decisions. The dynamic nature of the decision process allows the system to learn from and respond to feedback about actual performance and resource availability.
2Productivity
If FPD is used for all workloads, then processing performance is maximized, but system resource demands and complexity increase
Solution Approach 1:
The patent applies local quality by making FPD utilization selective rather than universal. Different workload types receive different treatment based on their specific characteristics - some workloads are routed to FPD while others remain on general-purpose processors, optimizing performance for appropriate tasks without unnecessarily complicating the system for all tasks.
Solution Approach 2:
The system implements partial action by using FPD for only those workloads that benefit from its specialized capabilities. Rather than deploying FPD for all processing tasks, the system applies FPD resources partially and selectively based on workload analysis, avoiding unnecessary complexity while maintaining high performance where needed.
3Use of energy by moving object
If FPD is deployed for specialized processing, then native resource demands are reduced, but compatibility requirements across different systems increase
Solution Approach 1:
The patent implements universality by designing the system to handle multiple scenarios through a single unified approach. The decision-making framework is designed to work whether FPD is available or not, whether workloads are suitable for FPD or not, and whether systems have FPD capabilities or not. This universal design maintains compatibility across diverse system configurations while still enabling FPD acceleration when appropriate.
Data Source
AI summary
Examples of techniques for utilizing a field programmable device binary to perform a workload are disclosed. In one example implementation according to aspects of the present disclosure, a computer-implemented method may include: calling an application program interface to perform a workload; determining, by a processing device, using dynamic characteristics of the workload and a workload environment, whether the workload should be processed by a field programmable device or a software library running on the general purpose processing device; responsive to determining to process the job by the field programmable device, deploying the job to the field programmable device; and responsive to determining to process the job by a software library running on the general purpose processing device, deploying the job to the software library.


