Software Redundant Multithreading for GPU Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional redundant multithreading techniques for GPUs require significant hardware changes and resources, leading to increased cost, power consumption, and performance impact, as they need to compare every instruction or store operation, which is not feasible with current GPU limitations.
Innovation Solution
A software-only approach that maps two work-items to the same identifier, accumulates write operations in signature variables, and compares them at designated points, reducing hardware requirements and complexity, allowing for flexible reliability checks without additional GPU resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional redundant multithreading techniques are used to compare every instruction or store operation, then reliability is improved, but device complexity and hardware resources increase significantly
Solution Approach 1:
The patent applies partial action by comparing only critical store operations rather than every single instruction. The system selectively identifies and compares store operations that are most critical for reliability, performing redundant computation only where necessary rather than universally across all operations.
Solution Approach 2:
The patent extracts the comparison function from hardware and implements it in software. By moving the redundant computation and comparison logic to software routines executed on existing GPU hardware, the system eliminates the need for dedicated comparison hardware circuits, thereby reducing device complexity while maintaining reliability.
2Reliability
If traditional redundant multithreading techniques are used to compare every instruction or store operation, then reliability is improved, but power consumption increases
Solution Approach 1:
The system performs redundant computation only for selected store operations rather than all instructions, reducing the total number of comparisons and associated power consumption while maintaining adequate reliability for critical operations.
Solution Approach 2:
By implementing the comparison logic in software rather than dedicated hardware, the system leverages the GPU's existing power-efficient execution pipelines, avoiding the need for additional always-on comparison hardware that would consume continuous power.
3Reliability
If traditional redundant multithreading techniques are used to compare every instruction or store operation, then reliability is improved, but performance deteriorates due to significant performance impact
Solution Approach 1:
The system selectively applies redundant computation only to critical store operations rather than all instructions, reducing the overhead and performance impact while maintaining reliability for the most important operations.
Solution Approach 2:
The patent integrates the comparison and verification steps into the existing execution flow without requiring separate synchronization phases. By coalescing outputs and performing comparisons within the normal execution timeline, the system maintains continuous productive action rather than introducing idle waiting periods.
4Reliability
If traditional redundant multithreading techniques are used with synchronized redundant threads, then reliability is improved, but device complexity increases due to limited hardware resources
Solution Approach 1:
The patent removes the synchronization requirement by implementing redundant threads that execute independently without hardware-enforced synchronization. The comparison of results is performed in software after independent execution, eliminating the need for complex hardware synchronization mechanisms and resource management.
Data Source
AI summary
A system, method and computer program product to execute a first and a second work-item, and compare the signature variable of the first work-item to the signature variable of the second work-item. The first and the second work-items are mapped to an identifier via software. This mapping ensures that the first and second work-items execute exactly the same data for exactly the same code without changes to the underlying hardware. By executing the first and second work-items independently, the underlying computation of the first and second work-item can be verified. Moreover, system performance is not substantially affected because the execution results of the first and second work-items are compared only at specified comparison points.


