Method and apparatus for efficiently processing array operation in computer system
AssigneeSamsung Electronics Co., Ltd.
InventorsDong-Hoon Yoo, Hee Seok Kim, Jeong Wook Kim, Soo Jung Ryu
Life of this patent
Estimating the term…
Abstract
An apparatus and a method for processing an array in a loop in a computer system, including: applying loop unrolling to a multi-dimensional array included in a loop based on a predetermined unrolling factor to generate a plurality of unrolled multi-dimensional arrays; and transforming each of the plurality of unrolled multi-dimensional arrays into a one-dimensional array having an array subscript expression in a form of an affine function with respect to a loop counter variable.
Claims23
A method for processing an array in a loop in a computer system, the method comprising:
- applying a loop unrolling to a multi-dimensional array included in a loop based on a predetermined unrolling factor to generate a plurality of unrolled multi-dimensional arrays;
- and
- transforming each of the plurality of unrolled multi-dimensional arrays into a one-dimensional array having an array subscript expression in a form of an affine function with respect to a loop counter variable.
A method of processing an array in a loop in a computer system, the method comprising:
- generating a new stride S′i for an ith loop counter variable by rounding the value of Si*UF/IF, where Si is a stride of the ith array index variable of an array subscript expression of the array, UF is a predetermined unrolling factor, and IF is a predetermined interleaving factor;
- generating a new constant term C′ by rounding the value of C/IF, where C is a constant term of the array subscript expression of the array;
- and
- changing the array index variable of the array subscript expression into the loop counter variable and transforming the array subscript expression of the array into a new array subscript expression using the new stride and the new constant term.
A computer readable recording medium in which a program for executing a method for processing an array in a loop in a computer system is recorded, the method comprising:
- applying loop unrolling to a multi-dimensional array included in a loop based on a predetermined unrolling factor to generate a plurality of unrolled multi-dimensional arrays;
- and
- transforming each of the plurality of unrolled multi-dimensional arrays into a one-dimensional array having an array subscript expression in a form of an affine function with respect to a loop counter variable.
A computing apparatus comprising:
- a loop unroller applying loop unrolling to a multi-dimensional array included in a loop based on a predetermined unrolling factor to generate a plurality of unrolled multi-dimensional arrays;
- and
- an array transformer transforming each of the plurality of unrolled multi-dimensional arrays into a one-dimensional array having an array subscript expression in a form of an affine function with respect to a loop counter variable.
Dependencies are inferred from the claim text.