On Wednesday May 23 2012, Matthias Christen (Università della Svizzera italiana, Lugano, Switserland) will give a seminar on his Patus Auto-tuning framework at 10:30  at imec (update: in room Cafetaria -1.A).
The event is free of charge, but you have to confirm your attendance by sending a mail to albert-jandotyzelmanatcsdotkuleuvendotbe.

Patus: A Code Generation and Auto-Tuning Framework for Stencil Kernels on Modern Microarchitectures

Matthias Christen (Università della Svizzera italiana, Lugano, Switserland)

Patus is a code generation and auto-tuning framework for the class of stencil computations targeted at modern multi- and many-core processors, such as multicore CPUs and graphics processing units. The ultimate goals of the framework are productivity, portability (of both the code and performance),and achieving a high performance on the target platform.
The key ingredients to achieve the goals of productivity, portability, and performance are domain specific languages (DSLs) and the auto-tuning methodology.
The Patus stencil specification DSL allows the programmer to express a stencil computation in a concise way independently of hardware architecture-specific details. Thus, it increases the programmer productivity by disburdening her or him of low level programming model issues and of manually applying hardware platform-specific code optimization techniques. The use of domain specific languages also implies code reusability: once implemented,the same stencil specification can be reused on different hardware platforms, i.e., the specification code is portable across hardware architectures. Constructing the language to be geared towards a special purpose makes it amenable to more aggressive optimizations and therefore to potentially higher performance.
Auto-tuning provides performance and performance portability by automated adaptation of implementation-specific parameters to the characteristics of the hardware on which the code will run. By automating the process of parameter tuning, the system can also be used more productively than if the programmer had to fine-tune the code manually.

 

Comments are closed.