Patent ID: 7249351

Claim:
A method of creating run time executable code for a processing element array, the method comprising: partitioning the processing element array into a plurality of hardware accelerators; identifying a plurality of functions in a program source code based on one or more run-time attributes of the plurality of functions; separating the identified plurality of functions from the program source code in a plurality of kernel sections; producing the run time executable code including a plurality of hardware dependent executable code portions that correspond, respectively, with the identified plurality of functions; mapping said plurality of hardware dependent executable code portions to the plurality of hardware accelerators; identifying a plurality of hardware variants in the mapped plurality of hardware dependent executable code portions, wherein at least two of the hardware variants have different hardware configurations that are substantially functionally equivalent; producing a matrix that defines different combinations of said plurality of hardware accelerators, said hardware variants and said hardware dependent executable code portions; and referencing the mapped plurality of hardware executable code portions using the matrix during run time execution of the plurality of hardware executable code portions.