Programmable streaming processor with mixed precision instruction execution
DCFirst Claim
1. A method comprising:
- receiving a graphics instruction for execution within a programmable streaming processor;
receiving an indication of a data precision for execution of the graphics instruction, wherein the indication of the data precision is contained within the graphics instruction, wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions;
receiving a conversion instruction that, when executed by the programmable streaming processor, converts graphics data, associated with the graphics instruction, from a first data precision to converted graphics data having the indicated data precision, and wherein the conversion instruction is different than the graphics instruction, wherein the conversion instruction is generated by the compiler;
selecting one of a plurality of execution units within the processor based on the indicated data precision; and
using the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction.
4 Assignments
Litigations
0 Petitions
Accused Products
Abstract
The disclosure relates to a programmable streaming processor that is capable of executing mixed-precision (e.g., full-precision, half-precision) instructions using different execution units. The various execution units are each capable of using graphics data to execute instructions at a particular precision level. An exemplary programmable shader processor includes a controller and multiple execution units. The controller is configured to receive an instruction for execution and to receive an indication of a data precision for execution of the instruction. The controller is also configured to receive a separate conversion instruction that, when executed, converts graphics data associated with the instruction to the indicated data precision. When operable, the controller selects one of the execution units based on the indicated data precision. The controller then causes the selected execution unit to execute the instruction with the indicated data precision using the graphics data associated with the instruction.
25 Citations
68 Claims
-
1. A method comprising:
-
receiving a graphics instruction for execution within a programmable streaming processor; receiving an indication of a data precision for execution of the graphics instruction, wherein the indication of the data precision is contained within the graphics instruction, wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions; receiving a conversion instruction that, when executed by the programmable streaming processor, converts graphics data, associated with the graphics instruction, from a first data precision to converted graphics data having the indicated data precision, and wherein the conversion instruction is different than the graphics instruction, wherein the conversion instruction is generated by the compiler; selecting one of a plurality of execution units within the processor based on the indicated data precision; and using the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable storage medium comprising instructions for causing a programmable streaming processor to:
-
receive a graphics instruction for execution within the programmable streaming processor; receive an indication of a data precision for execution of the graphics instruction, wherein the indication of the data precision is contained within the graphics instruction, wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions; receive a conversion instruction that, when executed by the processor, converts graphics data, associated with the graphics instruction, from a first data precision to converted graphics data having the indicated data precision, and wherein the conversion instruction is different than the graphics instruction, wherein the conversion instruction is generated by the compiler; select one of a plurality of execution units within the processor based on the indicated data precision; and use the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A device comprising:
-
a controller configured to receive a graphics instruction for execution within a programmable streaming processor, wherein the indication of the data precision is contained within the graphics instruction and wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions, to receive an indication of a data precision for execution of the graphics instruction, and to receive a conversion instruction that, when executed by the programmable streaming processor, converts graphics data associated, with the graphics instruction, from a first data precision to converted graphics data having a second data precision, wherein the conversion instruction is different than the graphics instruction and wherein the conversion instruction is generated by the compiler; and a plurality of execution units within the processor, wherein the controller is configured to select one of the execution units based on the indicated data precision and cause the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A device comprising:
-
means for receiving a graphics instruction for execution within a programmable streaming processor; means for receiving an indication of a data precision for execution of the graphics instruction, wherein the indication of the data precision is contained within the graphics instruction, wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions; means for receiving a conversion instruction that, when executed by the programmable streaming processor, converts graphics data associated, with the graphics instruction, from a first data precision to converted graphics data having the indicated data precision, and wherein the conversion instruction is different than the graphics instruction, wherein the conversion instruction is generated by the compiler; means for selecting one of a plurality of execution units within the processor based on the indicated data precision; and means for using the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A device comprising:
-
a programmable streaming processor; and at least one memory module coupled to the programmable streaming processor, wherein the programmable streaming processor comprises; a controller configured to receive a graphics instruction for execution from the at least one memory module, to receive an indication of a data precision for execution of the graphics instruction, wherein the indication of the data precision is contained within the graphics instruction and wherein the graphics instruction is a first executable instruction generated by a compiler that compiles graphics application instructions, and to receive a conversion instruction that, when executed by the processor, converts graphics data, associated with the graphics instruction, to converted graphics data, wherein the graphics data has a first data precision and the converted graphics data has the indicated data precision, and wherein the conversion instruction is different than the graphics instruction and wherein the conversion instruction is generated by the compiler; and a plurality of execution units that are configured to execute instructions, wherein the controller is configured to select one of the execution units based on the indicated data precision and cause the selected execution unit to execute the graphics instruction with the indicated data precision using the converted graphics data associated with the graphics instruction. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method, comprising:
-
analyzing, by a compiler executed by a processor, a plurality of application instructions for a graphics application; for each application instruction that specifies a first data precision level for its execution, generating, by the compiler, one or more corresponding compiled instructions that each indicate the first data precision level for its execution, wherein the first precision level comprises a full data precision level; and generating, by the compiler, one or more conversion instructions to convert graphics data from a second, different data precision level to the first data precision level when the one or more compiled instructions are executed. - View Dependent Claims (50, 51, 52, 53, 54)
-
-
55. A non-transitory computer-readable storage medium comprising instructions for causing a processor to:
-
analyze, by a compiler executed by the processor, a plurality of application instructions for a graphics application; for each application instruction that specifies a first data precision level for its execution, generate, by the compiler, one or more corresponding compiled instructions that each indicate the first data precision level for its execution, wherein the first precision level comprises a full data precision level; and generate, by the compiler, one or more conversion instructions to convert graphics data from a second, different data precision level to the first data precision level when the one or more compiled instructions are executed. - View Dependent Claims (56, 57, 58, 59, 60)
-
-
61. An apparatus comprising:
-
means for analyzing a plurality of graphics application instructions; for each graphics application instruction that specifies a first data precision level for its execution, means for generating one or more corresponding compiled instructions that each indicate the first data precision level for its execution, wherein the first precision level comprises a full data precision level; and means for generating one or more conversion instructions to convert graphics data from a second, different data precision level to the first data precision level when the one or more compiled instructions are executed. - View Dependent Claims (62, 63, 64, 65, 66)
-
-
67. A non-transitory computer-readable data storage medium comprising:
-
one or more first executable instructions generated by a compiler, wherein the one or more first executable instructions, when executed by a programmable streaming processor, support one or more functions of a graphics application, wherein each of the first executable instructions indicates a first data precision level for its execution; one or more second executable instructions generated by a compiler, wherein the one or more second executable instructions, when executed by the programmable streaming processor, support one or more functions of the graphics application, wherein each of the second executable instructions indicates a second data precision level different from the first data precision level for its execution, wherein the first precision level comprises a full data precision level; and one or more third executable instructions generated by a compiler, wherein the one or more third executable instructions, when executed by the programmable streaming processor, support one or more functions of the graphics application, wherein each of the third executable instructions converts graphics data from the second data precision level to the first data precision level when the one or more first executable instructions are executed by a programmable streaming processor. - View Dependent Claims (68)
-
Specification