# US 12,112,205 B2 · Reducing data format conversion of an accelerator

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

- Number: US 12,112,205 B2
- Document ID: US12112205B2
- Status: Granted
- Kind: B2
- Application number: 18/350,197
- Filed: 2023-07-11
- Published: 2023-11-02
- Granted: 2024-10-08
- Earliest claimed: 2021-11-24
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Qi Liang; Yi Xuan Zhang; Gui Yu Jiang
- Web page: https://patentgrep.com/patent/US12112205B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 7/483: Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)}
- G06F 9/30025: {Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion}
- 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/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)}
- G06N 3/045: Combinations of networks
- G06N 3/063: using electronic means
- G06N 3/08: Learning methods
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Data format conversion processing of an accelerator accessed by a processor of a computing environment is reduced. The processor and accelerator use different data formats, and the accelerator is configured to perform an input conversion to convert data from a processor data format to an accelerator data format prior to performing an operation using the data, and an output conversion to convert resultant data from accelerator data format back to processor data format after performing the operation. The reducing includes determining that adjoining operations of a process to run on the processor and accelerator are to be performed by the accelerator, where the adjoining operations include a source operation and destination operation. Further, the reducing includes blocking an output data format conversion of the source operation and an input data format conversion of the input data for the destination operation.

## Claims

### Claim 1

A computer program product for facilitating processing within a computing environment, the computer program product comprising:
one or more computer-readable storage medium having program instructions embodied therewith, the program instructions being readable by a processing circuit to cause the processing circuit to perform a method comprising:
reducing data format conversion processing of an accelerator accessed by a processor of the computing environment, the processor and accelerator using different data formats, and the accelerator being configured to perform, in part, an input data format conversion to convert received data from a processor data format to an accelerator data format prior to performing an operation using the data, and an output data format conversion to convert resultant data from the accelerator data format back to the processor data format after performing the operation, the reducing comprising:
determining that adjoining operations of a process to run on the processor and accelerator are to be performed by the accelerator, the adjoining operations including a source operation and a destination operation;
based on the determining, identifying for removal, by setting respective convert parameters to FALSE, output data format conversion of output data of the source operation for input to the destination operation as input data, and input data format conversion of the input data for the destination operation; and
wherein the reducing further comprises blocking, based on the respective convert parameters being set to FALSE, the output data format conversion of output data of the source operation for input to the destination operation as input data, and blocking the input data format conversion of the input data for the destination operation.

### Claim 2 (depends on 1)

The computer program product of claim 1, further comprising associating a respective convert_input parameter with input data format conversions of the accelerator, and a respective convert_output parameter with output data format conversions of the accelerator, wherein the identifying comprises setting the convert_output parameter associated with the output data format conversion of the output data from the source operation to FALSE, and setting the convert_input parameter associated with the input data format conversion of the input data for the destination operation to FALSE, and wherein the reducing comprises blocking the output data format conversion of the output data from the source operation based on the convert_output parameter being FALSE, and blocking the input data format conversion of the input data for the destination operation based on the convert_input parameter being FALSE.

### Claim 3 (depends on 2)

The computer program product of claim 2, wherein the destination operation receives multiple input data from multiple sources, one source of the multiple sources being the adjoining source operation to be performed by the accelerator, and another source of the multiple sources being an operation to execute on the processor, wherein the input data received from the processor is to undergo input data format conversion by the accelerator, while the input data received from the accelerator is not to undergo input data format conversion by the accelerator.

### Claim 4 (depends on 2)

The computer program product of claim 2, wherein the destination operation provides multiple data outputs, one data output of the multiple data outputs having a respective convert_output parameter associated therewith that is TRUE, meaning that the output is to undergo output data format conversion to convert from accelerator data format to processor data format, and another output of the multiple data outputs has a respective convert_output parameter that is FALSE, meaning that that output is not to undergo output data format conversion to convert from the accelerator data format to the processor data format.

### Claim 5 (depends on 4)

The computer program product of claim 4, wherein the multiple data outputs of the destination operation are provided by copying a data output to provide the one data output to be provided to an operation on the processor and the other data output to be provided to an operation on the accelerator.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the processor data format is a higher-precision data format than the accelerator data format.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein the processor data format is a first floating-point data format, and the accelerator data format is a second floating-point data format.

### Claim 8 (depends on 1)

The computer program product of claim 1, wherein the accelerator is an artificial intelligence (AI) accelerator associated with the processor, and along with the processor, part of a single, mixed-precision processing device.

### Claim 9

A computer system for facilitating processing within a computing environment, the computer system comprising:
a memory; and
a processing circuit in communication with the memory, wherein the computer system is configured to perform a method, the method comprising:
reducing data format conversion processing of an accelerator accessed by a processor of the computing environment, the processor and accelerator using different data formats, and the accelerator being configured to perform, in part, an input data format conversion to convert received data from a processor data format to an accelerator data format prior to performing an operation using the data, and an output data format conversion to convert resultant data from the accelerator data format back to the processor data format after performing the operation, the reducing comprising:
determining that adjoining operations of a process to run on the processor and accelerator are to be performed by the accelerator, the adjoining operations including a source operation and a destination operation;
based on the determining, identifying for removal, by setting respective convert parameters to FALSE, output data format conversion of output data of the source operation for input to the destination operation as input data, and input data format conversion of the input data for the destination operation; and
wherein the reducing further comprises blocking, based on the respective convert parameters being set to FALSE, the output data format conversion of output data of the source operation for input to the destination operation as input data, and blocking the input data format conversion of the input data for the destination operation.

### Claim 10 (depends on 9)

The computer system of claim 9, further comprising associating a respective convert_input parameter with input data format conversions of the accelerator, and a respective convert_output parameter with output data format conversions of the accelerator, wherein the identifying comprises setting the convert_output parameter associated with the output data format conversion of the output data from the source operation to FALSE, and setting the convert_input parameter associated with the input data format conversion of the input data for the destination operation to FALSE, and wherein the reducing comprises blocking the output data format conversion of the output data from the source operation based on the convert_output parameter being FALSE, and blocking the input data format conversion of the input data for the destination operation based on the convert_input parameter being FALSE.

### Claim 11 (depends on 10)

The computer system of claim 10, wherein the destination operation receives multiple input data from multiple sources, one source of the multiple sources being the adjoining source operation to be performed by the accelerator, and another source of the multiple sources being an operation to execute on the processor, wherein the input data received from the processor is to undergo input data format conversion by the accelerator, while the input data received from the accelerator is not to undergo input data format conversion by the accelerator.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the destination operation provides multiple data outputs, one data output of the multiple data outputs having a respective convert_output parameter associated therewith that is TRUE, meaning that the output is to undergo output data format conversion to convert from accelerator data format to processor data format, and another output of the multiple data outputs has a respective convert_output parameter that is FALSE, meaning that that output is not to undergo output data format conversion to convert from the accelerator data format to the processor data format.

### Claim 13 (depends on 12)

The computer system of claim 12, wherein the multiple data outputs of the destination operation are provided by copying a data output to provide the one data output to be provided to an operation on the processor and the other data output to be provided to an operation on the accelerator.

### Claim 14 (depends on 9)

The computer system of claim 9, wherein the processor data format is a higher-precision data format than the accelerator data format, and wherein the wherein the processor data format is a first floating-point data format, and the accelerator data format is a second floating-point data format.

### Claim 15 (depends on 9)

The computer system of claim 9, wherein the accelerator is an artificial intelligence (AI) accelerator associated with the processor, and along with the processor, part of a single, mixed-precision processing device.

### Claim 16

A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:
reducing data format conversion processing of an accelerator accessed by a processor of the computing environment, the processor and accelerator using different data formats, and the accelerator being configured to perform, in part, an input data format conversion to convert received data from a processor data format to an accelerator data format prior to performing an operation using the data, and an output data format conversion to convert resultant data from the accelerator data format back to the processor data format after performing the operation, the reducing comprising:
determining that adjoining operations of a process to run on the processor and accelerator are to be performed by the accelerator, the adjoining operations including a source operation and a destination operation;
based on the determining, identifying for removal, by setting respective convert parameters to FALSE, output data format conversion of output data of the source operation for input to the destination operation as input data, and input data format conversion of the input data for the destination operation; and
wherein the reducing further comprises blocking, based on the respective convert parameters being set to FALSE, the output data format conversion of output data of the source operation for input to the destination operation as input data, and blocking the input data format conversion of the input data for the destination operation.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, further comprising associating a respective convert_input parameter with input data format conversions of the accelerator, and a respective convert_output parameter with output data format conversions of the accelerator, wherein the identifying comprises setting the convert_output parameter associated with the output data format conversion of the output data from the source operation to FALSE, and setting the convert_input parameter associated with the input data format conversion of the input data for the destination operation to FALSE, and wherein the reducing comprises blocking the output data format conversion of the output data from the source operation based on the convert_output parameter being FALSE, and blocking the input data format conversion of the input data for the destination operation based on the convert_input parameter being FALSE.

### Claim 18 (depends on 17)

The computer-implemented method of claim 17, wherein the destination operation receives multiple input data from multiple sources, one source of the multiple sources being the adjoining source operation to be performed by the accelerator, and another source of the multiple sources being an operation to execute on the processor, wherein the input data received from the processor is to undergo input data format conversion by the accelerator, while the input data received from the accelerator is not to undergo input data format conversion by the accelerator.

### Claim 19 (depends on 17)

The computer-implemented method of claim 17, wherein the destination operation provides multiple data outputs, one data output of the multiple data outputs having a respective convert_output parameter associated therewith that is TRUE, meaning that the output is to undergo output data format conversion to convert from accelerator data format to processor data format, and another output of the multiple data outputs has a respective convert_output parameter that is FALSE, meaning that that output is not to undergo output data format conversion to convert from the accelerator data format to the processor data format.

### Claim 20 (depends on 16)

The computer-implemented method of claim 16, wherein the processor data format is a higher-precision data format than the accelerator data format, and wherein the wherein the processor data format is a first floating-point data format, and the accelerator data format is a second floating-point data format.
