# US 2014/0156971 A1 · Range Selection for Data Parallel Programming Environments

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

- Number: US 2014/0156971 A1
- Document ID: US20140156971A1
- Status: Published application
- Kind: A1
- Application number: 13/690,868
- Filed: 2012-11-30
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Intel Corporation
- Inventors: Aaron R. Kunze; Dillon Sharlet; Andrew E. Brownsword
- Web page: https://patentgrep.com/patent/US20140156971A1

## CPC

- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to some embodiments, the workgroup divisibility requirement may be dispensed with on a selective or permanent basis, i.e. in all cases, particular cases or at particular times and/or under particular conditions. An application programming interface implementation may be allowed to launch workgroups with non-uniform local sizes. Two different local sizes may be used in a case of a one-dimensional workload.

## Claims

### Claim 1

A method comprising:
enabling the use of different workgroup sizes in a computer processor.

### Claim 2 (depends on 1)

The method of claim 1 including implementing a single instruction multiple data processor that handles workgroups of at least two different sizes.

### Claim 3 (depends on 1)

The method of claim 1 including handling multidimensional workloads with more than two workgroup sizes.

### Claim 4 (depends on 1)

The method of claim 1 including enabling a remainder workgroup to query both its true local size and the local size of normal workgroups.

### Claim 5 (depends on 1)

The method of claim 1 including marking kernels to indicate whether the kernel can be used with non-divisible global workgroups.

### Claim 6 (depends on 1)

The method of claim 1 including checking whether a local sized workload breaks evenly on a global workgroup size.

### Claim 7 (depends on 6)

The method of claim 6 including determining whether non-divisible kernel launch is permitted.

### Claim 8 (depends on 7)

The method of claim 7 including, if so, determining normal and remainder workgroup sizes.

### Claim 9 (depends on 8)

The method of claim 8 including determining based on metadata.

### Claim 10 (depends on 1)

The method of claim 1 including implementing a graphics processor.

### Claim 11

One or more non-transitory computer readable media storing computer instructions executable to perform a sequence comprising:
identifying a workgroup size; and
adopting different workgroup sizes.

### Claim 12 (depends on 11)

The media of claim 11, the sequence further including implementing a single instruction multiple data processor that handles workgroups of at least two different sizes.

### Claim 13 (depends on 11)

The media of claim 11, the sequence further including handling multidimensional workloads with more than two workgroup sizes.

### Claim 14 (depends on 11)

The media of claim 11, the sequence further including enabling a remainder workgroup to query both its true local size and the local size of normal workgroups.

### Claim 15 (depends on 11)

The media of claim 11, the sequence further including marking kernels to indicate whether the kernel can be used with non-divisible global workgroups.

### Claim 16 (depends on 11)

The media of claim 11, the sequence further including checking whether a local sized workload breaks evenly on a global workgroup size.

### Claim 17 (depends on 16)

The media of claim 16, the sequence further including determining whether non-divisible kernel launch is permitted.

### Claim 18 (depends on 17)

The media of claim 17, the sequence further including, if so, determining normal and remainder workgroup sizes.

### Claim 19 (depends on 18)

The media of claim 18, the sequence further including determining based on metadata.

### Claim 20 (depends on 11)

The media of claim 11, the sequence further including implementing a graphics processor.

### Claim 21

An apparatus comprising:
a graphics processor that uses different workgroup sizes; and
a memory coupled to said processor.

### Claim 22 (depends on 21)

The apparatus of claim 21, said processor to implement a single instruction multiple data processor that handles workgroups of at least two different sizes.

### Claim 23 (depends on 21)

The apparatus of claim 21, said processor to handle multidimensional workloads with more than two workgroup sizes.

### Claim 24 (depends on 21)

The apparatus of claim 21, said processor to enable a remainder workgroup to query both its true local size and the local size of normal workgroups.

### Claim 25 (depends on 21)

The apparatus of claim 21, said processor to mark kernels to indicate whether the kernel can be used with non-divisible global workgroups.

### Claim 26 (depends on 21)

The apparatus of claim 21 including an operating system.

### Claim 27 (depends on 21)

The apparatus of claim 21 including a battery.

### Claim 28 (depends on 21)

The apparatus of claim 21 including firmware and a module to update said firmware.
