# US 12,182,011 B2 · Parallel program control system and method

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

- Number: US 12,182,011 B2
- Document ID: US12182011B2
- Status: Granted
- Kind: B2
- Application number: 18/162,491
- Filed: 2023-01-31
- Published: 2024-08-01
- Granted: 2024-12-31
- Earliest claimed: 2023-01-31
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Kévin Petit
- Web page: https://patentgrep.com/patent/US12182011B2

## CPC

- G06F 12/023: {Free address space management}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 12/0207: {with multidimensional access, e.g. row/column, matrix}
- G06F 2212/1016: Performance improvement
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/251: Local memory within processor subsystem
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, method and computer program product configured to control a plurality of parallel programs operating in an n-dimensional hierarchical iteration space over an n-dimensional data space, comprising: a processor and a memory configured to accommodate the plurality of parallel programs and the data space; a memory access control decoder configured to decode memory location references to regions of the n-dimensional data space from indices in the plurality of parallel programs; and an execution orchestrator responsive to the memory access control decoder and configured to sequence regions of the n-dimensional hierarchical iteration space of the plurality of parallel programs to honour a data requirement of at least a first of the plurality of parallel programs having a data dependency on at least a second of the plurality of parallel programs.

## Claims

### Claim 1

A system configured to control a plurality of parallel programs operating in an n-dimensional hierarchical iteration space over an n-dimensional data space, comprising:
a processor and a memory configured to accommodate the plurality of parallel programs and the n-dimensional data space;
a memory access control decoder configured to decode memory location references to regions of the n-dimensional data space from indices in the plurality of parallel programs; and
an execution orchestrator responsive to the memory access control decoder and configured to sequence regions of the n-dimensional hierarchical iteration space of the plurality of parallel programs to honour a data requirement of at least a first of the plurality of parallel programs having a data dependency on at least a second of the plurality of parallel programs, wherein
the memory access control decoder is further configured to decode memory location references of a partially specified tensor to determine dimensions in memory of sufficient size to accommodate the partially specified tensor and at least one affine transform of the partially specified tensor.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the data requirement comprises a contract to restrict a program's memory access to a specific region.

### Claim 3 (depends on 1)

The system according to claim 1, wherein the execution orchestrator is responsive to the memory access control decoder to allocate a memory region of the determined dimensions.

### Claim 4 (depends on 1)

The system according to claim 1, wherein the execution orchestrator sequencing the regions comprises fusing together programs having a data dependency into a single execution entity.

### Claim 5 (depends on 1)

The system according to claim 1, wherein the execution orchestrator sequencing the regions comprises tiling execution of the first plurality of the parallel programs and the second of the plurality of parallel programs.

### Claim 6 (depends on 1)

The system according to claim 1, wherein the memory access control decoder is configured to decode a relationship between a memory location in the n-dimensional data space and an index in one of the plurality of parallel programs.

### Claim 7 (depends on 1)

The system according to claim 1, wherein the parallel programs comprise single instruction multiple thread programs.

### Claim 8

A method of operating a controller to control a plurality of parallel programs operating in an n-dimensional hierarchical iteration space over an n-dimensional data space, comprising:
decoding memory location references to regions of the n-dimensional data space from indices in the plurality of parallel programs;
sequencing regions of the n-dimensional hierarchical iteration space of the plurality of parallel programs to honour a data requirement of at least a first of the plurality of parallel programs having a data dependency on at least a second of the plurality of parallel programs; and
decoding memory location references of a partially specified tensor to determine dimensions in memory of sufficient size to accommodate the partially specified tensor and at least one affine transform of the partially specified tensor.

### Claim 9 (depends on 8)

The method according to claim 8, wherein honouring the data requirement comprises honouring a contract to restrict a program's memory access to a specific region.

### Claim 10 (depends on 8)

The method according to claim 8, further comprising allocating a memory region of the determined dimensions.

### Claim 11 (depends on 8)

The method according to claim 8, wherein sequencing the regions comprises fusing together programs having a data dependency into a single execution entity.

### Claim 12 (depends on 8)

The method according to claim 8, wherein sequencing the regions comprises tiling execution of the first of the plurality of parallel programs and the second of the plurality of parallel programs.

### Claim 13 (depends on 8)

The method according to claim 8, further comprising decoding a relationship between a memory location in the n-dimensional data space and an index in one of the plurality of parallel programs.

### Claim 14

A computer program product stored in a non-transitory computer readable medium and comprising computer readable program code to:
decode memory location references to regions of an n-dimensional data space from indices in a plurality of parallel programs; and
sequence regions of an n-dimensional hierarchical iteration space of the plurality of parallel programs to honour a data requirement of at least a first of the plurality of parallel programs having a data dependency on at least a second of the plurality of parallel programs; further comprising decoding memory location references of a partially specified tensor to determine dimensions in memory of sufficient size to accommodate the partially specified tensor and at least one affine transform of the partially specified tensor.

### Claim 15 (depends on 14)

The computer program product according to claim 14, wherein honouring the data requirement comprises honouring a contract to restrict a program's memory access to a specific region.

### Claim 16 (depends on 15)

The computer program product according to claim 15, further comprising allocating a memory region of the determined dimensions.

### Claim 17 (depends on 14)

The computer program product according to claim 14, further comprising decoding a relationship between a memory location in the n-dimensional data space and an index in one of the plurality of parallel programs.
