Industrial Simulation Memory Sharing Across CPU-GPU Architectures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing simulation programs for industrial systems struggle with managing memory allocation and sharing instances between heterogeneous processors, leading to complex and intrusive code management, especially when transitioning between Central Processing Units (CPUs) and Graphics Processing Units (GPUs).
Innovation Solution
A method and system utilizing a contiguous memory allocator to manage dynamic memory regions across heterogeneous processors, enabling implicit memory sharing through memory pointers, allowing seamless execution of simulation models on different architectures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If explicit memory management and copy operations are used to share instances between CPU and GPU, then memory sharing between heterogeneous processors is achieved, but code complexity and management effort increase significantly
Solution Approach 1:
The patent introduces a buffer object as an intermediary between CPU and GPU memory spaces. This buffer object serves as a mediator that allows instances allocated on the CPU to be shared with the GPU without requiring explicit copy operations or complex memory management code. The buffer object handles the memory transfer and sharing semantics automatically, reducing code complexity while enabling adaptability.
Solution Approach 2:
The patent creates a universal memory management mechanism where a single code path can allocate and manage instances that are accessible by both CPU and GPU. The buffer object provides multi-functionality by serving as both a CPU-accessible memory region and a GPU-accessible resource, eliminating the need for separate code paths for different processor types.
2Adaptability or versatility
If dynamic memory allocation is performed on CPU before GPU execution, then memory flexibility is maintained, but explicit copy operations are required increasing management effort
Solution Approach 1:
The patent performs preliminary allocation of memory buffers on the CPU side before GPU execution, but structures this allocation so that the same buffer can be directly used by the GPU. The buffer object is prepared in advance with the understanding that it will serve both CPU and GPU, eliminating the need for subsequent copy operations and reducing development time.
Solution Approach 2:
The patent merges the CPU memory allocation and GPU memory allocation into a single unified buffer object. Instead of allocating separate memory regions and then copying data between them, the same memory buffer is made accessible to both processors, combining what were previously separate operations into one efficient process.
3Productivity
If class instances are compiled specifically for GPU code, then GPU execution efficiency is improved, but code portability across different architectures decreases
Solution Approach 1:
The patent enables a single class instance implementation to execute efficiently on both CPU and GPU by using the buffer object mechanism. The same code compiled once can run on either processor type, achieving code portability while maintaining execution efficiency through the unified memory access interface provided by the buffer object.
Data Source
AI summary
A computing platform for simulating an industrial system and a method of managing the simulation are disclosed. The method relates to generating at least one instance of a simulation model of the industrial system. The method includes: generating the instance using a contiguous memory allocator for a dynamic memory region associated with a first processor of the heterogenous processors; enabling a second processor to use the instance in the dynamic memory region based on a memory pointer associated with the address of a copy of the instance; and simulating the industrial system by the second processor by accessing the instance-copy.


