HaGPipe : Programming the graphics pipeline in Haskell
In this paper I present the domain specific language HaGPipe for graphics programming in Haskell. HaGPipe has a clean, purely functional and strongly typed interface and targets the whole graphics pipeline including the programmable shaders of the GPU. It can be extended for use with various backe...
Main Author: | |
---|---|
Format: | Others |
Language: | English |
Published: |
Mälardalens högskola, Akademin för innovation, design och teknik
2009
|
Subjects: | |
Online Access: | http://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-6234 |
id |
ndltd-UPSALLA1-oai-DiVA.org-mdh-6234 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UPSALLA1-oai-DiVA.org-mdh-62342018-01-14T05:13:47ZHaGPipe : Programming the graphics pipeline in HaskellengBexelius, TobiasMälardalens högskola, Akademin för innovation, design och teknik2009HaskellGPUgraphicsfunctional programmingshadersComputer SciencesDatavetenskap (datalogi) In this paper I present the domain specific language HaGPipe for graphics programming in Haskell. HaGPipe has a clean, purely functional and strongly typed interface and targets the whole graphics pipeline including the programmable shaders of the GPU. It can be extended for use with various backends and this paper provides two different ones. The first one generates vertex and fragment shaders in Cg for the GPU, and the second one generates vertex shader code for the SPUs on PlayStation 3. I will demonstrate HaGPipe's many capabilities of producing optimized code, including an extensible rewrite rule framework, automatic packing of vertex data, common sub expression elimination and both automatic basic block level vectorization and loop vectorization through the use of structures of arrays. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-6234application/pdfinfo:eu-repo/semantics/openAccess |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Haskell GPU graphics functional programming shaders Computer Sciences Datavetenskap (datalogi) |
spellingShingle |
Haskell GPU graphics functional programming shaders Computer Sciences Datavetenskap (datalogi) Bexelius, Tobias HaGPipe : Programming the graphics pipeline in Haskell |
description |
In this paper I present the domain specific language HaGPipe for graphics programming in Haskell. HaGPipe has a clean, purely functional and strongly typed interface and targets the whole graphics pipeline including the programmable shaders of the GPU. It can be extended for use with various backends and this paper provides two different ones. The first one generates vertex and fragment shaders in Cg for the GPU, and the second one generates vertex shader code for the SPUs on PlayStation 3. I will demonstrate HaGPipe's many capabilities of producing optimized code, including an extensible rewrite rule framework, automatic packing of vertex data, common sub expression elimination and both automatic basic block level vectorization and loop vectorization through the use of structures of arrays. |
author |
Bexelius, Tobias |
author_facet |
Bexelius, Tobias |
author_sort |
Bexelius, Tobias |
title |
HaGPipe : Programming the graphics pipeline in Haskell |
title_short |
HaGPipe : Programming the graphics pipeline in Haskell |
title_full |
HaGPipe : Programming the graphics pipeline in Haskell |
title_fullStr |
HaGPipe : Programming the graphics pipeline in Haskell |
title_full_unstemmed |
HaGPipe : Programming the graphics pipeline in Haskell |
title_sort |
hagpipe : programming the graphics pipeline in haskell |
publisher |
Mälardalens högskola, Akademin för innovation, design och teknik |
publishDate |
2009 |
url |
http://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-6234 |
work_keys_str_mv |
AT bexeliustobias hagpipeprogrammingthegraphicspipelineinhaskell |
_version_ |
1718610818681012224 |