Hardware Offloading Simulator Using Precomputed Output Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing and optimizing hardware offloading systems for big data analytics is a time-consuming and costly process, and existing simulators struggle to accurately estimate performance due to inefficiencies when executed on CPUs, which cannot match the speed of higher performance processors like FPGAs or GPUs.

Innovation Solution

A simulator that receives input data, prepares output data without computing it, and returns the data after a simulated idle time, allowing it to perform more like the actual hardware offloading system by storing output data from previous runs and using a throughput metric to simulate the idle time, thus avoiding CPU computation inefficiencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a simulator executes computations using CPU threads to simulate hardware offloading, then the simulator can perform calculations, but the simulation speed and accuracy are limited by CPU performance compared to actual hardware accelerators

Engineering Contradiction:
Improvesimulation speedVSAvoidperformance estimation accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary computations using the actual hardware accelerator (FPGA/GPU) during system setup or calibration phase. The results of these preliminary computations are stored and reused during subsequent simulations, eliminating the need for real-time CPU-based computation and achieving both high speed and accurate performance estimation

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of copying the hardware accelerator's computation logic to run on CPU, the system copies the pre-computed output data from hardware simulations to use during software simulations. This allows the simulator to achieve hardware-level accuracy without actually executing the computationally intensive operations on the simulator itself

Inventive Principle:
Principle #26Copying

2Productivity

If the simulator computes output data using CPU threads, then the simulator can produce results, but the computation time increases and does not reflect actual hardware performance

Engineering Contradiction:
Improvecomputation throughputVSAvoidsimulation execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs all necessary computations in advance using the actual hardware accelerator during an initialization or calibration phase. Once the pre-computed results are obtained, they can be rapidly retrieved and used during subsequent simulation runs, dramatically reducing simulation execution time while maintaining hardware-accurate performance characteristics

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces pre-computed result data as an intermediary between the simulation input and the simulation output. Instead of the CPU directly computing results, the pre-computed hardware results serve as an intermediary that bridges the gap between simulation inputs and expected outputs, enabling fast and accurate simulation

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240020178A1Techniques for controlling simulation for hardware offloading systems
Publication Date: 2024.01.18 LEMON INC(GB)
  • US20240020178A1 patent drawing
  • US20240020178A1 patent drawing
  • US20240020178A1 patent drawing

AI summary

Described are examples for simulating performance of a hardware offloading system including receiving, by a simulator that corresponds to a simulated architecture representing the hardware offloading system, input data from a user application for processing by the simulated architecture, preparing, by the simulator, corresponding output data for the input data without computing the corresponding output data by the simulated architecture, and returning, by the simulator, the corresponding output data to the user application after a simulated idle time related to computing the corresponding output data by the simulated architecture.