6547

Generalizing Execution of Vectorizable Computations by Generating Vector Oriented Byte Code

Troels Blum
eScience Center, KU
1st HIPERFIT workshop, 2011

@article{blum2011generalizing,

   title={Generalizing Execution of Vectorizable Computations by Generating Vector Oriented Byte Code},

   author={Blum, T.},

   year={2011}

}

Computer simulations, which are widely used in both academia and in the industry, often work on very large data sets. This makes them well suited for harvesting the computing power of modern, highly parallel computing systems, such as GPU’s, clusters and vector processors. The challenge lies in the fact, that these systems must be programmed using specialized pro-gramming models, which requires programming specialists. Which in turn makes the development cycle long. This is a big, and costly, problem for an industry that relies on a trial and error method of developing new models. There have been some successful attempts to close the gap between high productivity tools, allowing rapid prototyping, and these highly parallel sys-tems. They are however still few in numbers, and have one problem in common. They are closely coupled to both the front-end, i.e. programming language or IDE, and the back-end, i.e. computing device. Which makes them interesting only to the few using the exact combination of front-, and back-end. In my thesis I present a new approach to the problem of closing the gap between productivity tools, and highly parallel systems, which allows a high degree of modularity and there by reuse. My approach involves creating a model, cphVB, in which the computing devices (hardware) are viewed as engines processing vectorized instructions, called Vector Engines. It defines a clear and easy to understand byte code language, which is processed by these Vector Engines. cphVB also contains a protocol to govern the safe, and efficient exchange, creation, and destruction of model data. In my thesis I have made a proof of concept implementation of the cphVB model for NumPy, that uses CUDA devices for executing the byte code. This implementation has proven very efficient, and cemented that the cphVB model, with its byte code, is a viable solution to the problem of exposing exotic hardware to languages, and other front-ends, that scientists, and other programmers use every day.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: