VSIPL++ API Extension for Parallel Game Engine Data Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The increasing complexity and cost of game development due to complex hardware architectures and the need for cross-platform deployment are exacerbated by the challenges of parallel computing, including deadlock, timing, and synchronization errors, which existing technologies struggle to address effectively.
Innovation Solution
A C++ based extension of the VSIPL++ API that includes a ray/triangle intersection function and a data mapping mechanism to distribute data across multiple computational units, rather than just processors, enabling easier development and cross-platform deployment by separating functionality from the underlying parallel implementation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multi-threaded code is used to leverage multiple cores, then processing power and productivity are improved, but programming complexity and synchronization errors increase
Solution Approach 1:
The patent introduces an intermediary layer (the mapping system and abstraction interface) between the parallel computing infrastructure and the application code. This intermediary automatically handles thread management, data distribution, and synchronization, allowing developers to write simpler sequential-like code while still leveraging multi-core processing power through the intermediary's automated parallelization mechanisms.
Solution Approach 2:
The patent creates a universal parallel computing framework that can automatically adapt to different hardware architectures (multi-core CPUs, GPUs, clusters) through a single interface. The mapping system provides multi-functionality by handling various parallelization strategies (data parallelism, task parallelism, pipeline parallelism) through unified abstractions, eliminating the need for architecture-specific parallel programming code.
2Productivity
If hardware architecture becomes more complex with more cores, then computational capability is improved, but portability and ease of deployment worsen
Solution Approach 1:
The patent implements a universal parallel computing framework that provides the same interface across diverse hardware architectures. The mapping system automatically detects the target architecture and adapts the parallel execution strategy accordingly, allowing the same application code to run efficiently on multi-core CPUs, GPUs, or distributed clusters without modification, thus maintaining portability while leveraging enhanced computational capabilities.
Solution Approach 2:
The patent uses parameter changes to adapt the parallel execution behavior based on the target architecture. The mapping system modifies execution parameters (such as thread count, block size, synchronization frequency) automatically according to the detected hardware characteristics, enabling the same application to optimize its performance on different architectures without changing the source code, thereby maintaining portability while utilizing enhanced computational capabilities.
3Ease of manufacture
If data is mapped across processors only, then implementation is simpler, but computational efficiency on modern architectures worsens
Solution Approach 1:
The patent segments the computational units into multiple levels: processors, computational units within processors, and threads. The mapping system can distribute data and tasks across this hierarchical segmentation, assigning work to the finest-grained computational units available (such as GPU cores or vector units) rather than coarse processor boundaries, thereby maximizing computational efficiency while maintaining implementation simplicity through automated hierarchical mapping.
Solution Approach 2:
The patent adds another dimension to the mapping model by introducing hierarchical levels of computational units within processors. Instead of a flat processor-to-data mapping, the system creates a multi-dimensional mapping space that includes processor, computational unit, and thread levels. This dimensional expansion enables more fine-grained data distribution and parallel execution, improving computational efficiency on modern architectures while keeping the implementation approach simple through automated hierarchical management.
Data Source
AI summary
A system includes a memory, a graphics processor, and a processor. The memory stores a control program that includes an extension of an application programming interface. The graphics processor includes multiple computational units. The processor executes the control program, with the control program causing the processor to obtain data from the memory. The data specifies a first function and is intended to execute on the multiple computational units. The control program further causes the processor to create at least one map for assigning computational tasks for the first function across the multiple computational units. A part of the data associated with each of the computational tasks is stored to the respective multiple computational units that are assigned to execute the computational tasks.


