MASTER Extending halide to improve software development for imaging DSPsVocke, S.
Award date: 2016Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration.
General rightsCopyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.• Users may download and print one copy of any publication from the public portal for the purpose of private study or research.• You may not further distribute the material or use it for any profit-making activity or commercial gain Take down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Specialized Digital Signal Processors (DSPs), which can be found in a wide range of modern devices, play an important role in power-efficient, high-performance image processing. Applications including camera sensor post-processing and computer vision can benefit from being (partially) mapped onto such DSPs. However, due to their specialized instruction sets and dependence on low-level code optimization, developing applications for DSPs is often more time-consuming and error-prone than for general-purpose processors. Halide is a domain-specific language (DSL) which enables low-effort development of portable, highperformance imaging pipelines -a combination of qualities which is currently hard, if not impossible to find among DSP programming models. I propose a set of extensions and modifications to Halide in order to support DSPs in combination with arbitrary C compilers, including a template solution to support diverse target instruction sets and heterogeneous scratchpad memories. Using a commercial Intel DSP, I demonstrate that this solution can be used to achieve performance comparable to tuned C code, while leading to a reduction in development time and code complexity. The results also show that DSPs are attractive alternatives to CPUs and GPUs for power-and area-efficient image processing using Halide.
Categories and Subject Descriptors: []
ACM Reference Format: