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...

Full description

Bibliographic Details
Main Author: Bexelius, Tobias
Format: Others
Language:English
Published: Mälardalens högskola, Akademin för innovation, design och teknik 2009
Subjects:
GPU
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