CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

GPGPU Kernel Implementation and Refinement using Obsidian

Joel Svensson (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; Mary Sheeran (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)) ; Koen Claessen (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers))
ICCS 2010 conference proceedings; Amsterdam, NETHERLANDS, MAY 31-JUN 02, 2010 (1877-0509 ). Vol. 1 (2010), 1, p. 10 (2059-2068).
[Konferensbidrag, refereegranskat]

Obsidian is a domain specific language for data-parallel programming on graphics processors (GPUs). It is em- bedded in the functional programming language Haskell. The user writes code using constructs familiar from Haskell (like map and reduce), recursion and some specially designed combinators for combining GPU programs. NVIDIA CUDA code is generated from these high level descriptions, and passed to the nvcc compiler [1]. Currently, we consider only the generation of single kernels, and not their coordination. This paper is focussed on how the user should work with Obsidian, starting with an obviously correct (or well- tested) description of the required function, and refining it by the introduction of constructs to give finer control of the computation on the GPU. For some combinators, this approach results in CUDA code with satisfactory performance, promising increased productivity, as the high level descriptions are short and uncluttered. But for other combinators, the performance of generated code is not yet satisfactory. Ways to tackle this problem and plans to integrate Obsidian with another higher-level embedded language for GPU programming in Haskell are briefly discussed.

Nyckelord: Data-parallel, Embedded language, GPUs, Haskell, GPGPU,



Denna post skapades 2010-03-04. Senast ändrad 2010-10-28.
CPL Pubid: 117160

 

Läs direkt!


Länk till annan sajt (kan kräva inloggning)


Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers) (2008-2010)

Ämnesområden

Datalogi
Programvaruteknik
Datorteknik

Chalmers infrastruktur

Relaterade publikationer

Denna publikation ingår i:


Embedded Languages for Data-Parallel Programming