Multi-Threaded GPU Trace Replay via CPU-Based Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing profiling and analysis tools for graphics processing units (GPUs) are limited due to the lack of operating system support and the complexity of parallel processing, making it difficult to efficiently analyze GPU workload and improve computational efficiency.

Innovation Solution

The generation and analysis of GPU long instruction traces (GLITs) are used to capture GPU states and operating parameters, allowing for efficient profiling and optimization by emulating GPU execution on a central processing unit (CPU).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If profiling instructions are inserted into GPU code to capture execution statistics, then measurement precision is improved, but device complexity increases due to the need to handle multi-threaded parallel execution and synchronization

Engineering Contradiction:
Improvecode execution statisticsVSAvoidmulti-threaded parallel processing
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a simplified copy of the GPU execution environment that runs on the CPU. This copy includes replicated register files, instruction buffers, and execution logic that mirrors the original GPU's operational state. By copying the essential execution state rather than analyzing the complex multi-threaded GPU directly, the system achieves precise measurement of code execution statistics while avoiding the complexity of handling hundreds or thousands of parallel GPU threads.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an intermediary CPU-based emulator that acts as a mediator between the original GPU execution and the analysis tools. The emulator receives instruction traces from the GPU, reconstructs the execution state in a simplified manner, and presents this processed information to profiling tools. This intermediary layer translates the complex multi-threaded GPU execution model into a form that is easier to analyze while preserving the essential execution statistics.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If GPU code is profiled and analyzed directly on the GPU, then productivity is improved through faster analysis, but reliability decreases due to lack of operating system support and memory limitations

Engineering Contradiction:
Improveprofiling and analysis speedVSAvoidprofiling tool availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent copies the GPU execution state to a CPU-based environment where reliable profiling tools can operate. By creating a replicated execution model that runs on the CPU with full operating system support and access to expansive memory, the system maintains the productivity benefits of detailed profiling while achieving the reliability of a stable, well-supported computing environment.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transitions the profiling and analysis process from the GPU dimension (where memory and OS support are limited) to the CPU dimension (where expansive memory and comprehensive OS support are available). This dimensional change allows profiling tools to operate with full reliability while still analyzing GPU code execution through the copied state, effectively resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Power

If the number of parallel threads in GPU is increased to improve computational efficiency, then power increases, but difficulty of detecting and measuring code execution statistics worsens

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidcode execution statistics
Core Design Contradiction:
PowerVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates a simplified copy of the GPU execution model that runs on the CPU with a reduced number of threads. This copy reproduces the essential execution behavior and code execution statistics without requiring the full parallel threading capacity of the original GPU. By analyzing this simplified copy, the system can detect and measure code execution statistics effectively while avoiding the difficulty introduced by hundreds or thousands of simultaneous GPU threads.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12373329B2Deterministic replay of a multi-threaded trace on a multi-threaded processor
Publication Date: 2025.07.29 INTEL CORP
  • US12373329B2 patent drawing
  • US12373329B2 patent drawing
  • US12373329B2 patent drawing

AI summary

At least one computer-readable storage medium comprising instructions for execution by at least one graphics processing unit (GPU) that, when executed, cause the at least one GPU to:obtain program code for tracing, the program code including a plurality of instructions;identify from the plurality of instructions of the program code events to be synchronized;instrument the program code corresponding to one or more of the events identified, by inserting instructions that support monitoring code;execute the instrumented program code on at least a plurality of hardware threads of the GPU and generate trace data;replay the identified events according to an order of occurrence of the events identified; andreport a GPU state indicating a utilization of the GPU based; andwherein to report the GPU state includes to indicate when the GPU executes non-graphics related tasks.