Static Verification of GPU Kernels via Symbolic Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in ensuring portable correctness and preventing execution errors in GPU kernels, particularly due to data races and barrier divergence, which can lead to nondeterministic behavior and incorrect results in applications like media processing and medical imaging.

Innovation Solution

A system that includes a symbolic encoding component for static verification of data parallel program instructions, using predicated execution to obtain symbolic encodings and verify attributes such as race freedom and divergence freedom, enabling compile-time verification of GPU kernels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static verification of data parallel program instructions is performed to ensure race freedom and divergence freedom, then reliability of GPU kernel execution is improved, but device complexity increases due to the need for symbolic encoding components and verification systems

Engineering Contradiction:
Improveexecution correctnessVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs static verification of data parallel program instructions before execution by obtaining symbolic encodings of predicated execution and verifying attributes such as race freedom and divergence freedom. This preliminary verification ensures execution correctness while maintaining portability across different GPU accelerators, resolving the contradiction by catching errors before runtime without requiring complex runtime verification mechanisms

Inventive Principle:
Principle #10Preliminary action

2Stability of the object's composition

If symbolic encoding and static verification are implemented to prevent data races and barrier divergence, then execution determinism is improved, but manufacturing precision requirements increase for the verification system

Engineering Contradiction:
Improveexecution determinismVSAvoidverification accuracy
Core Design Contradiction:
Stability of the object's compositionVSManufacturing precision

Solution Approach 1:

The system replaces traditional mechanical or hardware-based verification approaches with a software-based symbolic encoding and static verification mechanism. By using symbolic representations of predicated execution and automated verification of race freedom and divergence freedom, the system achieves high execution determinism without requiring precision-critical hardware modifications, thus resolving the contradiction between determinism and manufacturing precision requirements

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9329877B2Static verification of parallel program code
Publication Date: 2016.05.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9329877B2 patent drawing
  • US9329877B2 patent drawing
  • US9329877B2 patent drawing

AI summary

A symbolic encoding of predicated execution for static verification, based on a plurality of data parallel program instructions, is obtained. A result of static verification of one or more attributes associated with the plurality of data parallel program instructions is obtained, based on the symbolic encoding.