Unified Memory Mapping for Scalar Vector Data Transposition
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphic engine interfaces face performance drops due to the need for additional instructions and hardware for data transposition between vector and scalar data types, with 'scalar machines' requiring dedicated transposition engines and 'vector machines' not being suitable for high-efficiency systems due to lower average input data dimensions.
Innovation Solution
An apparatus comprising a memory module and a data accessing module that uses specific writing mapping information for scalar and vector data types to efficiently store and retrieve data sets, allowing simultaneous support for scalar and vector operations without additional hardware transposition engines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a scalar machine operates data inside a GPU shader, then it can communicate with external data paths, but it requires a dedicated transposition engine which drops performance and efficiency
Solution Approach 1:
The memory module is designed to accept both scalar data sets (N=1) and vector data sets (N>1) through the same interface and storage structure. The data accessing module uses unified mapping information to write and read both data types, eliminating the need for separate transposition hardware while maintaining compatibility with external scalar data paths.
Solution Approach 2:
The memory module acts as an intermediary between the GPU shader core and external data paths. By storing data in a unified format that can represent both scalar and vector types, it mediates the data exchange without requiring additional transposition engines, thus maintaining high processing efficiency while enabling communication with external systems.
2Device complexity
If a vector machine operates data inside a GPU shader, then it eliminates the need for data transposition hardware, but it is not suitable for systems with lower average input data dimensions
Solution Approach 1:
The system dynamically adapts to different data dimensions by using the same vector storage structure for both scalar (N=1) and vector (N>1) data sets. The data accessing module dynamically selects appropriate mapping information based on the input data type, allowing the hardware to efficiently handle varying data dimensions without structural changes.
Solution Approach 2:
The system changes the parameter N (number of components) to represent different data types. By allowing N to vary from 1 (scalar) to any positive integer (vector), the same hardware structure can handle both low-dimensional and high-dimensional data efficiently, maintaining versatility while keeping the hardware structure simple.
3Adaptability or versatility
If dedicated transposition hardware is added for data transformation, then data type compatibility is improved, but system complexity and performance overhead increase
Solution Approach 1:
The memory module and data accessing module are designed with universal functionality to handle both scalar and vector data types natively. The mapping information structure can represent both data types, and the same write/read operations apply to both, eliminating the need for separate transposition hardware and reducing overall system complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
An apparatus (100, 400) for processing a plurality of data sets is disclosed, wherein one data set of the plurality of data sets includes N components and has a data type of one of a contains type and a vector type, wherein N is a positive integer number. The apparatus (100, 400) includes a memory module (104, 404) and a data accessing module (102, 402). The memory module (104, 404) comprises N memory units configured to store the plurality of data sets. The data accessing module (102, 402) is configured to write the data set into the memory module (104, 404) according to a write data index corresponding to the data set and one of a first writing mapping information and a second writing mapping information, wherein the first writing mapping information is employed when the data type is one of the scalar and the vector type and the second writing mapping information is employed when the data type is the other of the scalar and the vector type.