# US 8,752,064 B2 · Optimizing communication of system call requests

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

- Number: US 8,752,064 B2
- Document ID: US8752064B2
- Status: Granted
- Kind: B2
- Application number: 13/307,505
- Filed: 2011-11-30
- Published: 2012-07-12
- Granted: 2014-06-10
- Earliest claimed: 2010-12-14
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Benjamin Thomas Sander; Michael Houston; Newton Cheung; Keith Lowery
- Inventors: Benjamin Thomas Sander; Michael Houston; Newton Cheung; Keith Lowery
- Web page: https://patentgrep.com/patent/US8752064B2

## CPC

- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 9/522: {Barrier synchronisation}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 2209/509: Offload
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Provided herein is a method for optimizing communication for system calls. The method includes storing a system call for each work item in a wavefront and transmitting said stored system calls to a processor for execution. The method also includes receiving a result to each work item in the wavefront responsive to said transmitting.

## Claims

### Claim 1

A method comprising:
storing, in a corresponding single instructor multiple data (SIMD) element, information to process a system call request for each work item in a wavefront;
grouping the SIMD elements as an SIMD vector to create a system call request data structure;
transmitting the SIMD vector to a processor for execution; and
receiving a result to each work item.

### Claim 2 (depends on 1)

The method of claim 1, further comprising enqueueing the SIMD vector within a high-priority queue visible to a central processing unit (CPU).

### Claim 3 (depends on 1)

The method of claim 1, wherein each SIMD element comprises a function selector, an argument list, and a memory space for the result.

### Claim 4 (depends on 1)

The method of claim 1, wherein the SIMD vector includes system call requests from multiple wavefronts.

### Claim 5

A method, executed in a computer system having at least one processor, comprising:
receiving a single instructor multiple data CSIMD) vector, wherein the SIMD vector comprises SIMD elements corresponding to a system call request from each work item in a wavefront;
executing each system call request in each SIMD element; and
transmitting, via the SIMD vector, the result of each system call to each work item in the wavefront.

### Claim 6 (depends on 5)

The method of claim 5, wherein the receiving includes receiving the SIMD vector in a high priority queue visible to a graphics processing device.

### Claim 7

A system comprising:
a memory configured to store, in a corresponding single instructor multiple data (SIMD), element, information to process a system call request for each work item in a wavefront, wherein the SIMD elements are grouped as an SIMD vector; and
a CPU configured to:
execute each system call request stored in the SIMD elements, and
transmit a result of each system call request to each work item in the wavefront.

### Claim 8 (depends on 7)

The system of claim 7, wherein the memory is a high-priority queue configured to enqueue the SIMD vector, the high-priority queue being visible to a CPU.

### Claim 9 (depends on 7)

The system of claim 7, wherein each SIMD element comprises a function selector, an argument list, and a memory space for the result.

### Claim 10 (depends on 8)

The system of claim 8, wherein the SIMD vector includes system call requests from multiple wavefronts.

### Claim 11

A system, comprising:
a memory; and
a CPU configured to:
receive a single instruction multiple data (SIMD) vector, wherein the SIMD vector includes SIMD elements containing information to process a corresponding system call request for each work item in a wavefront,
execute each system call stored in the SIMD vector, and
transmit the result of each system call to each work item in the wavefront.

### Claim 12 (depends on 11)

The system of claim 11, wherein the CPU is further configured to:
receive the SIMD vector from a high priority queue.

### Claim 13

An article of manufacture including a computer storage device having instructions stored thereon that, when executed by a computing device, cause said computing device to perform operations comprising:
storing, in a corresponding single instructor multiple data (SIMD) element, information to process a system call request for each work item in a wavefront;
grouping the SIMD elements as an SIMD vector to create a system call request data structure;
transmitting the SIMD vector to a processor for execution; and
receiving a result to each work item in the wavefront.

### Claim 14 (depends on 13)

The article of manufacture of claim 13, further comprising enqueueing the SIMD vector within a high-priority queue visible to a CPU.

### Claim 15

An article of manufacture including a computer storage device having instructions stored thereon that, when executed by a computing device, cause said computing device to perform operations comprising:
receiving a single instructor multiple data (SIMD) vector, wherein the SIMD vector comprises SIMD elements corresponding to a system call request from each work item in a wavefront;
executing each system call request from the SIMD vector; and
transmitting the result of each system call to each work item in the wavefront.

### Claim 16 (depends on 15)

The article of manufacture of claim 15, wherein the receiving includes receiving the SIMD vector in a high priority queue visible to a graphics processing device.

### Claim 17

A computer storage device having instructions recorded thereon that, when executed by a computing device, cause the computing device to perforin operations comprising:
storing, in a corresponding single instructor multiple data (SIMD) element, information to process a system call request for each work item in a wavefront;
transmitting said stored system calls, via an SIMD vector, to a processor for execution, wherein the SIMD vector comprises the SIMD elements grouped as a single data structure; and
responsive to said transmitting, receiving a result to each work item in the wavefront.

### Claim 18 (depends on 17)

The computer storage device of claim 17, further comprising enqueueing the SIMD vector within a high-priority queue visible to a central processing unit (CPU).

### Claim 19

A computer storage device having instructions recorded thereon that, when executed by a computing device, cause the computing device to perform operations comprising:
receiving a single instructor multiple data (SIMD) vector, wherein the SIMD vector comprises SIMD elements corresponding to a system call request from each work item in a wavefront;
executing each system call request from the SIMD vector; and
transmitting the result of each system call to each work item in the wavefront.

### Claim 20 (depends on 19)

The computer storpe device of claim 19, wherein the SIMD vector is received from a high priority queue visible to the graphics processing device.
