Programmable GPU CRC Validation for Deterministic Shader Operation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern programmable graphics devices lack adequate methods to deterministically ensure proper operation, particularly in safety-critical applications, due to sparse requirements and test documentation, and their inability to reliably monitor and report internal errors, which can lead to erroneous visual data.

Innovation Solution

A method involving a CPU, GPU, and IPU, where shader programs are generated and tested using a cyclic redundancy check (CRC) algorithm to validate the operation of programmable graphics processing units by rendering test image data and comparing calculated check values against predetermined values, ensuring proper operation and reporting faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If programmable graphics devices are used to provide flexible functionality, then adaptability is improved, but reliability deteriorates due to inability to deterministically assure proper operation

Engineering Contradiction:
Improveprogrammable functionalityVSAvoidoperation assurance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary validation by rendering test image data through the graphics device before actual use, calculating CRC check values in advance, and comparing them against predetermined correct values to detect any corruption or malfunction before it affects operational reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements continuous feedback by repeatedly rendering test patterns, calculating CRC check values, and comparing them against predetermined values to detect corruption. When discrepancies are detected, the system can report faults and take corrective action, creating a closed-loop verification system that maintains reliability despite programmability

Inventive Principle:
Principle #23Feedback

2Reliability

If CRC validation is performed continuously on test image data, then reliability is improved, but productivity deteriorates due to additional processing overhead

Engineering Contradiction:
Improveshader code verificationVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies CRC validation selectively to specific test image data regions rather than all graphics output, and performs validation at controlled intervals rather than continuously on every frame, balancing reliability verification with processing throughput by applying validation only where and when necessary

Inventive Principle:
Principle #16Partial or excessive action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach ensures the continuous verification of shader code integrity and proper operation of programmable graphics devices, preventing erroneous visual data and overcoming certification challenges by deterministically assuring the correct functioning of graphics hardware.

Implementation Method 1

The IPU is utilized to apply a cyclic redundancy check (CRC) algorithm to the test image data to calculate a check value

Methodology Applied
Scientific EffectCyclic redundancy check (CRC) algorithm:

Data Source

PatentUS8933934B1System and method for assuring the proper operation of a programmable graphics processing unit
Publication Date: 2015.01.13 ROCKWELL COLLINS INC
  • US8933934B1 patent drawing
  • US8933934B1 patent drawing
  • US8933934B1 patent drawing

AI summary

The system assures the proper operation of a programmable GPU. A list of shader programs is generated. A programmable GPU is instructed to render a set of graphic primitives to generate test image data into a test area of RAM of the GPU utilizing one of the listed programs. The GPU is instructed to combine test image data from the test area with normal image data to form a composite image as display image data. The data in the GPU RAM is output to an image processing unit (IPU), wherein the data is processed by the IPU. The IPU is utilized to apply a CRC algorithm to the test image data to calculate a check value. The calculated value is compared against a predetermined value for the test area. A fault is reported if the calculated check value does not match the predetermined value. These above steps are then repeated.