Useful GPGPU Programming Abstractions. A thorough analysis of GPGPU development frameworks
ForfatterLarsen, Johannes Arctander
Today, computers commonly have graphics hardware with a processing power far exceeding that of the main processors in the same machines. Modern graphics hardware consists of highly data-parallel processors, which are user programmable. However, software development utilizing these processors directly is reserved for platforms that require a fair bit of intimate knowledge about the underlying hardware architecture.The need for specialized development platforms that expose the underlying parallelism to developers, elevates the learning threshold for newcomers, which obstructs the general adaption of GPU support. However, there are many frameworks that build upon, and elevate the abstraction level of, these specialized development platforms. These frameworks strive to provide programming interfaces less dependent on graphics architecture knowledge, and better resembling how you would program traditional software. They all come with their own quirks, and many of the abstractions they provide come with a considerable computational overhead.This thesis aims to catalog relevant kinds of high-level GPGPU frameworks, and to evaluate their abstractions, and the overhead these abstraction impose on their applications. The experiments are based on real-world SAR processing problems that physicists at the university are exploring the possibility of accelerating on GPU, and the experiments compare frameworks against each other and against a baseline low-level CUDA implementation. The results show that the overhead most frameworks impose are moderate for data-intensive problems, considerable for compute-intensive problems, and typically higher for high-level interpreted language bindings than for native frameworks.Libraries with thoroughly tested general-purpose GPU functionality (e.g.~ArrayFire) help in the development process, but must work on moderately sized data structures to amortize their overhead sufficiently. GPU code generators (e.g.~VexCL) also have great potential, but their abstractions tend to add complexity to the code, which make them better suited for advanced GPU programmers, than regular developers.
ForlagUiT Norges arktiske universitet
UiT The Arctic University of Norway
Følgende lisensfil er knyttet til denne innførselen:
Viser innførsler relatert til tittel, forfatter og emneord.
Viken Valvåg, Steffen (Doctoral thesis; Doktorgradsavhandling, 2012-01-30)MapReduce has become a widely employed programming model for large-scale data-intensive computations. Traditional MapReduce engines employ dynamic routing of data as a core mechanism for fault tolerance and load balancing. ...
Gracious space: Library programming strategies towards immigrants as tools in the creation of social capital Vårheim, Andreas (Journal article; Tidsskriftartikkel; Peer reviewed, 2011)Recent research on the generation of social trust and social capital gives public institutions prominent roles as instruments for creating social capital, the trust and connections between community members that yield ...
Landlocked States and the Protection of the Marine Environment – with Special Emphasis on Switzerland Maurer, Anina (Master thesis; Mastergradsoppgave, 2012-09-03)This thesis assesses the obligations of landlocked states (LLSs) to protect the marine environment as a whole. In order to limit the scope, three international instruments are focussed upon: the United Nations Convention ...