Popis: |
Since IBM first introduced the Instruction Set Architecture (ISA), there has been tremendous research conducted on novel hardware architectures and new high-level software frameworks, perhaps to a fault. With innovation came an ever growing gap between a program's description and how it is executed on hardware. Successful exploitation of these innovations calls for a unifying contract to be in place which distinguishes the program description from the low-level execution on target hardware; namely, a Program Execution Model (PXM). By decoupling the programming API from the hardware description the obstacles imposed by low-level architectures and high-level language interoperability are avoided by utilizing program manipulation, source-level optimizations, and eventual lowering into machine code across a wide variety of different heterogeneous hardware. To achieve these goals in software, compilers must adapt to the ever-changing climate of hardware and software development. They must be able to represent data at varying levels so as to provide maximum opportunities for optimizations based on information which would otherwise be lost without utilizing progressive lowering. The target hardware should also not limit the amount of possible software-based optimizations. We propose CODIR, the Codelet Model domain-specific language extension and intermediate representation built using the already existing Multi-Level Intermediate Representation (MLIR) compiler infrastructure. It aims to progressively lower a high-level language to an intermediate representation well suited for maximizing optimization opportunities available to the compiler while additionally providing a plethora of hardware support. Underlying CODIR is the Codelet Model which we believe to be a sound program execution model for mapping computation to the machine and utilizing all available hardware resources. |