# US 12,602,230 B1 · Application programming interface to indicate null-operation dependencies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,230 B1
- Document ID: US12602230B1
- Status: Granted
- Kind: B1
- Application number: 18/803,305
- Filed: 2024-08-13
- Granted: 2026-04-14
- Earliest claimed: 2023-02-27
- Assignees: NVIDIA Corporation
- Applicants: NVIDIA Corporation
- Inventors: David Anthony Fontaine; Steven Arthur Gurfinkel
- Web page: https://patentgrep.com/patent/US12602230B1

## CPC

- G06F 9/3838: {Dependency mechanisms, e.g. register scoreboarding}
- G06F 9/3877: {using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12)}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 9/522: {Barrier synchronisation}
- G06F 9/54: Interprogram communication
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 2209/484: Precedence
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Apparatuses, systems, and techniques to perform an application programming interface (API) to add one or more graph nodes to a software graph, wherein the API is to cause a null-operation graph node to be added to a software graph, based, at least in part, on a dependency type indicated by the API. In at least one embodiment, one or more nodes are added to a graph in accordance to one or more dependency types.

## Claims

### Claim 1

An acceleration processor unit (APU) comprising:
one or more core complexes, wherein the one or more core complexes include one or more central processing unit (CPU) cores;
one or more graphics complexes, wherein the one or more graphics complexes include one or more compute units (CUs);
an L2 cache;
one or more fabric interconnects;
a memory controller; and
one or more input/output (I/O) interfaces comprising a peripheral component interconnect express (PCIe) interface;
wherein:
the APU is to perform a graph add empty node (GraphAddEmptyNode) application program interface (API) to add an empty node to a graph;
wherein the GraphAddEmptyNode API uses:
a pGraphNode parameter to indicate a node pointer;
a graph parameter to indicate a graph;
a pDependencies parameter to indicate a dependency pointer; and
a numDependencies parameter to indicate a number of dependencies.

### Claim 2 (depends on 1)

The APU of claim 1, wherein the GraphAddEmptyNode API is to generate the empty node to be added to the graph.

### Claim 3 (depends on 1)

The APU of claim 1, wherein the node pointer is a pointer to an address corresponding to one or more nodes to be created by the GraphAddEmptyNode API.

### Claim 4 (depends on 1)

The APU of claim 1, wherein the dependency pointer is to include information corresponding to one or more dependencies between a node indicated by the node pointer and one or more other nodes of the graph indicated by the graph parameter.

### Claim 5 (depends on 1)

The APU of claim 1, wherein the numDependencies parameter is to indicate a number of dependencies associated with a node indicated by the node pointer.

### Claim 6 (depends on 1)

The APU of claim 1, wherein the GraphAddEmptyNode API is to generate a status indicating success or failure of performance of the GraphAddEmptyNode API.

### Claim 7 (depends on 1)

The APU of claim 1, wherein the one or more CUs are to share the L2 cache.

### Claim 8

A system comprising:
memory; and
an acceleration processor unit (APU) comprising:
one or more core complexes, wherein the one or more core complexes include one or more central processing unit (CPU) cores;
one or more graphics complexes, wherein the one or more graphics complexes include one or more compute units (CUs);
an L2 cache;
one or more fabric interconnects;
a memory controller; and
one or more input/output (I/O) interfaces comprising a peripheral component interconnect express (PCIe) interface;
wherein:
the APU is to perform a graph add empty node (GraphAddEmptyNode) application program interface (API) to add an empty node to a graph;
wherein the GraphAddEmptyNode API uses:
a pGraphNode parameter to indicate a node pointer;
a graph parameter to indicate a graph;
a pDependencies parameter to indicate a dependency pointer; and
a numDependencies parameter to indicate a number of dependencies.

### Claim 9 (depends on 8)

The system of claim 8, wherein the GraphAddEmptyNode API is to generate the empty node to be added to the graph.

### Claim 10 (depends on 8)

The system of claim 8, wherein the node pointer is a pointer to an address corresponding to one or more nodes to be created by the GraphAddEmpty Node API.

### Claim 11 (depends on 8)

The system of claim 8, wherein the dependency pointer is to include information corresponding to one or more dependencies between a node indicated by the node pointer and one or more other nodes of the graph indicated by the graph parameter.

### Claim 12 (depends on 8)

The system of claim 8, wherein the numDependencies parameter is to indicate a number of dependencies associated with a node indicated by the node pointer.

### Claim 13 (depends on 8)

The system of claim 8, wherein the GraphAddEmptyNode API is to generate a status indicating success or failure of performance of the GraphAddEmptyNode API.

### Claim 14 (depends on 8)

The system of claim 8, wherein the one or more CUs are to share the L2 cache.

### Claim 15

A method comprising:
performing a graph add empty node (GraphAddEmptyNode) application program interface (API) to add an empty node to a graph;
wherein the GraphAddEmptyNode API uses:
a pGraphNode parameter to indicate a node pointer;
a graph parameter to indicate a graph;
a pDependencies parameter to indicate a dependency pointer; and
a numDependencies parameter to indicate a number of dependencies;
wherein the GraphAddEmptyNode API is to be performed by an acceleration processor unit (APU) comprising:
one or more core complexes, wherein the one or more core complexes include one or more central processing unit (CPU) cores;
one or more graphics complexes, wherein the one or more graphics complexes include one or more compute units (CUs);
an L2 cache;
one or more fabric interconnects;
a memory controller; and
one or more input/output (I/O) interfaces comprising a peripheral component interconnect express (PCIe) interface.

### Claim 16 (depends on 15)

The method of claim 15, wherein the GraphAddEmptyNode API is to generate the empty node to be added to the graph.

### Claim 17 (depends on 15)

The method of claim 15, wherein the node pointer is a pointer to an address corresponding to one or more nodes to be created by the GraphAddEmptyNode API.

### Claim 18 (depends on 15)

The method of claim 15, wherein the dependency pointer is to include information corresponding to one or more dependencies between a node indicated by the node pointer and one or more other nodes of the graph indicated by the graph parameter.

### Claim 19 (depends on 15)

The method of claim 15, wherein the numDependencies parameter is to indicate a number of dependencies associated with a node indicated by the node pointer.

### Claim 20 (depends on 15)

The method of claim 15, wherein the GraphAddEmptyNode API is to generate a status indicating success or failure of performance of the GraphAddEmptyNode API.
