SYSTEM AND METHOD FOR MANAGING PROCESSOR-IN-MEMORY (PIM) OPERATIONS
First Claim
1. In a vector computer system having a plurality of processors connected to memory, wherein the memory includes one or more vector atomic memory operation (AMO) functional units and the processors include one or more vector functional units, a method of vectorizing an iterative loop, the method comprising:
- scanning program code, wherein scanning includes determining whether an operation is vectorizable;
if an operation is vectorizable, determining whether the operation should be executed using a vector AMO instruction in one of the vector AMO functional units;
if an operation is vectorizable and the operation should be executed using a vector AMO instruction in one of the vector AMO functional units, implement at least a portion of the operation as a vector AMO instruction; and
if an operation is vectorizable and the operation should not be executed using a vector AMO instruction in one of the vector AMO functional units, implement at least a portion of the operation to execute in one or more vector functional units of one or more processors.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method of compiling program code, wherein the program code includes an operation on an array of data elements stored in memory of a computer system. The program code is scanned for operations that are vectorizable. The vectorizable operations are examined to determine whether they should be executed at least in part in a vector atomic memory operation (AMO) functional unit attached to memory. If so, the compiled code includes vector AMO instructions.
50 Citations
13 Claims
-
1. In a vector computer system having a plurality of processors connected to memory, wherein the memory includes one or more vector atomic memory operation (AMO) functional units and the processors include one or more vector functional units, a method of vectorizing an iterative loop, the method comprising:
-
scanning program code, wherein scanning includes determining whether an operation is vectorizable; if an operation is vectorizable, determining whether the operation should be executed using a vector AMO instruction in one of the vector AMO functional units; if an operation is vectorizable and the operation should be executed using a vector AMO instruction in one of the vector AMO functional units, implement at least a portion of the operation as a vector AMO instruction; and if an operation is vectorizable and the operation should not be executed using a vector AMO instruction in one of the vector AMO functional units, implement at least a portion of the operation to execute in one or more vector functional units of one or more processors. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a vector computer system having a plurality of processors connected to memory, wherein the memory includes one or more vector atomic memory operation (AMO) functional units and the processors include one or more vector functional units, a computer implemented method of compiling program code, the method comprising:
-
a) scanning the program code for an operation that is vectorizable; b) determining whether some portion of the vectorizable equation should be executed in the vector AMO functional unit; and c) replacing the equation with vectorized machine executable code; wherein, if a determination was made that some portion of the vectorizable equation should be executed in the vector AMO functional unit, the vectorized machine executable code includes vectorization code for performing a mathematical operation using one or more vector atomic memory operations; and wherein, if a determination was made that some portion of the vectorizable equation should be not executed in the vector AMO functional unit, the vectorized machine executable code includes vectorization code for performing vector operations without using the vector AMO functional unit. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification