IP Library Granted Patent US 10,354,357
Granted Patent B2
US 10,354,357 · App. 16/133,841 · Granted Jul 16, 2019

Methods and systems for monitoring the subset of GPU components used by an application in safety critical environments

Inventors: Stephen Viggers (Kitchener, CA); Tomislav Malnar (Kitchener, CA); Sherwyn R. Ramkissoon (Kitchener, CA); Gregory Szober (Kitchener, CA); Aidan Fabius (Kitchener, CA); Kenneth Wenger (Kitchener, CA); John McCormick (Kitchener, CA)
Assignee: Channel One Holdings Inc.
G06T1/20G06F11/2236G06T1/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,354,357
App. No.
16/133,841
Granted
Jul 16, 2019
Kind
B2
Abstract

Methods, systems, and computer-readable media for monitoring a graphics processing unit (GPU) of a host computer system, including providing at least one test seed and at least one subsystem command to the GPU; receiving at least one test result from the GPU in response to providing the at least one test seed and at least one subsystem command to the GPU; and if the at least one test result does not correspond to at least one expected result, identifying the GPU as being in an undesired state. The subsystems to be tested may be a subset of all subsystems. The determination of subsystems to be tested may be determined in real-time, based on graphical application instructions. The subsystems to be tested may also be pre-determined.

Claims (63)

1. A host computer system comprising:

a graphics processing unit (GPU); and

a processor, the processor configured to:

provide at least one test seed and at least one subsystem command to the GPU;

monitor one or more host computer system application commands to the GPU for a test interval;

determine whether the host computer system application commands cause subsystems of the GPU to be active for that test interval;

receive at least one test result from the GPU in response to providing the at least one test seed and the at least one subsystem command to the GPU, wherein the at least one subsystem command to the GPU is directed to subsystems determined to be active; and

if the at least one test result does not correspond to at least one expected result, identify the GPU as being in an undesired state.

2. The host computer system of claim 1 , wherein the test interval comprises one of a time period and a display frame.

3. The host computer system of claim 1 , wherein the processor is further configured to:

identify one or more subsystems of the GPU that are not instructed by host computer system application commands as being unexposed subsystems; and

determine whether unexposed subsystems are active, wherein the at least one subsystem command to the GPU is further directed to unexposed subsystems determined to be active.

4. The host computer system of claim 3 , wherein determining whether unexposed subsystems are active comprises:

retrieving a GPU state for an unexposed subsystem; and

if the GPU state does not correspond to an expected GPU state, identifying the unexposed subsystem as being active.

5. The host computer system of claim 1 , wherein the monitoring one or more host computer system application commands to the GPU comprises scanning a memory buffer of the host computer system for application commands directed to the GPU.

6. The host computer system of claim 1 , wherein subsystems of the GPU comprise at least one of a plurality of subsystem types, and the at least one subsystem command to the GPU is directed to at least one subsystem of each subsystem type having at least one active subsystem.

7. The host computer system of claim 1 , wherein the providing at least one test seed and at least one subsystem command to the GPU comprises the processor retrieving the at least one subsystem command to the GPU from a plurality of stored subsystem commands to the GPU.

8. The host computer system of claim 7 , wherein the step of retrieving the at least one subsystem command to the GPU further comprises the processor identifying the stored subsystem command corresponding to the retrieved at least one subsystem command as having been retrieved.

9. The host computer system of claim 8 , wherein:

the at least one subsystem command corresponds to stored subsystem commands that are not identified as having been retrieved; and

the retrieving the at least one subsystem command to the GPU further comprises:

if each of the stored subsystem commands are identified as having been retrieved, the processor eliminating the identification of stored subsystem commands as having been retrieved.

10. The host computer system of claim 8 , wherein each of the stored subsystem commands is retrieved with a minimum frequency for that subsystem command.

11. The host computer system of claim 8 , wherein:

the plurality of stored subsystem commands to the GPU comprises an ordered set of subsystem commands to the GPU having a first subsystem command and a last subsystem command; and

the retrieving the at least one subsystem command to the GPU further comprises, before the identifying the stored subsystem command corresponding to the retrieved at least one subsystem command as having been retrieved:

if each of the stored subsystem commands are identified as having been retrieved, the processor eliminating the identification of stored subsystem commands as having been retrieved;

if at least one of the stored subsystem commands are identified as having been retrieved, the processor retrieving a subsystem command that is not identified as having been retrieved and that follows a subsystem command that is identified as having been retrieved; and

if none of the stored subsystem commands are identified as having been retrieved, the processor retrieving the first subsystem command.

12. The host computer system of claim 7 , wherein the providing at least one test seed and at least one subsystem command to the GPU further comprises the processor:

retrieving the at least one test seed from a plurality of stored test seeds based on the at least one subsystem command; and

retrieving the at least one expected result from a plurality of stored expected results based on the retrieved at least one test seed.

13. The host computer system of claim 12 , wherein the retrieving the at least one expected result further comprises the processor retrieving the at least one expected result based on the at least one subsystem command.

14. The host computer system of claim 1 , wherein:

the providing at least one test seed and at least one subsystem command to the GPU comprises one of:

a) randomly generating the at least one test seed; and

b) retrieving the at least one test seed from a plurality of stored test seeds; and

the receiving at least one test result from the GPU further comprises the processor determining the at least one expected result based on the at least one test seed and the at least one subsystem command.

15. A host computer system comprising:

a graphics processing unit (GPU); and

a processor, the processor configured to:

provide at least one test seed and at least one subsystem command to the GPU, wherein the at least one test seed comprises data that is processed to generate pixels that are located in a non-visible portion of a display screen coupled to the GPU;

receive at least one test result from the GPU in response to providing the at least one test seed and the at least one subsystem command to the GPU; and

if the at least one test result does not correspond to at least one expected result, identify the GPU as being in an undesired state.

16. A host computer system comprising:

a graphics processing unit (GPU); and

a processor, the processor configured to:

provide at least one test seed and at least one subsystem command to the GPU, wherein the at least one test seed comprises data that is processed to generate pixels that are located in a non-visible portion of memory coupled to the GPU;

receive at least one test result from the GPU in response to providing the at least one test seed and the at least one subsystem command to the GPU; and

if the at least one test result does not correspond to at least one expected result, identify the GPU as being in an undesired state.

17. A host computer system comprising:

a graphics processing unit (GPU); and

a processor, the processor configured to:

provide at least one test seed and at least one subsystem command to the GPU, wherein: a) the at least one test seed comprises data that is processed to generate pixels that are located in a visible portion of a display screen coupled to the GPU; and b) the display screen is not updated with pixels that are generated from the at least one test result;

receive at least one test result from the GPU in response to providing the at least one test seed and the at least one subsystem command to the GPU; and

if the at least one test result does not correspond to at least one expected result, identify the GPU as being in an undesired state.

18. A host computer system comprising:

a graphics processing unit (GPU); and

a processor, the processor configured to:

a) provide at least one test seed and at least one subsystem command to the GPU;

b) receive at least one test result from the GPU in response to providing the at least one test seed and the at least one subsystem command to the GPU; and

c) if the at least one test result does not correspond to at least one expected result, identify the GPU as being in an undesired state, wherein if the GPU is identified as being in an undesired state based on a first subsystem command of the at least one subsystem command, the processor is further configured to repeat a) and b) to identify a subsystem of the GPU that is in an undesired state, wherein, when repeating a) and b), the at least one subsystem command differs from the first subsystem command.

Assignments (2)
SECURITY INTEREST Recorded Jan 16, 2025
From: CHANNEL ONE HOLDINGS INC.
To: PENNANTPARK LOAN AGENCY SERVICING, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 069890/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2018
From: VIGGERS, STEPHEN; MALNAR, TOMISLAV; RAMKISSOON, SHERWYN; SZOBER, GREGORY; FABIUS, AIDAN; WENGER, KENNETH; MCCORMICK, JOHN
To: CHANNEL ONE HOLDINGS INC.
Reel/Frame 047742/0812 →
Continuity (3)
Continuation 15365138 · Nov 30, 2016
Provisional Application 62260985 · Nov 30, 2015
Related Publication 20190019268A1 · Jan 17, 2019