Data Processing Computation Graphs for Heterogeneous Hardware
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In high-performance computing environments, developing applications for diverse hardware devices is challenging due to differences in architectures, instruction sets, and programming models, leading to high development difficulty and poor debugging convenience.
Innovation Solution
A method and apparatus that abstracts computing capabilities of various hardware devices as operators, enabling unified invocation and scheduling through a unified heterogeneous programming interface, allowing users to manage operations without needing to understand specific device details.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If users develop applications for different hardware devices using respective runtime libraries and driver libraries, then the applications can be executed on various hardware devices, but the development difficulty increases and debugging convenience deteriorates due to differences in architectures, instruction sets, and programming models
Solution Approach 1:
The patent introduces a computation graph as an intermediary representation that mediates between the user's high-level computing tasks and the low-level hardware implementations. The computation graph serves as a universal interface that can be mapped to different hardware devices (CPU, GPU, NPU, DSP) without requiring users to understand their specific architectures, instruction sets, or programming models. This intermediary layer resolves the contradiction by maintaining hardware compatibility while simplifying development complexity.
Solution Approach 2:
The patent changes the fundamental parameter of task representation from hardware-specific instructions to hardware-agnostic computation graphs. By transforming tasks into a standardized graph representation with operators, inputs, and outputs, the system enables parameterized mapping to different hardware devices. This parameter change allows the same high-level representation to adapt to multiple hardware architectures, resolving the contradiction between versatility and development complexity.
2Adaptability or versatility
If users learn and use multiple runtime libraries and driver libraries corresponding to different hardware devices, then they can control various hardware devices, but the development difficulty increases due to the need to master multiple architectures, instruction sets, and programming models
Solution Approach 1:
The patent creates a universal programming interface through the computation graph model that can control multiple types of hardware devices (CPU, GPU, NPU, DSP) through a single unified approach. Instead of requiring separate runtime libraries and driver libraries for each hardware type, the computation graph serves as a multi-functional representation that can be executed on any hardware device. This universality directly resolves the contradiction by maintaining hardware control capability while dramatically improving ease of development.
Solution Approach 2:
The patent creates an abstract copy of hardware operations in the form of computation graphs. Rather than working directly with hardware-specific instructions, users work with an abstracted representation that copies the essential computational logic without hardware details. This abstracted copy can then be mapped to actual hardware implementations, resolving the contradiction between hardware control capability and ease of development by separating the abstract task definition from concrete hardware execution.
Data Source
AI summary
Disclosed is a method for processing data, a medium, and a device. The method includes: determining a data computing task; generating a computation graph corresponding to the data computing task, the computation graph including one or more operators configured to perform the data computing task; determining one or more target hardware devices corresponding respectively to the one or more operators based on performance parameters and current resource usage statuses of a plurality of hardware devices; transmitting one or more computational instruction sequences, each respectively corresponding to each of the one or more operators, to the one or more target hardware devices corresponding to respective operators, such that each of the one or more target hardware devices executes the respective computational instruction sequence; and determining a processing result corresponding to the data computing task based on one or more execution results of the one or more target hardware devices.


