The DOI matches its Crossref record; 38 of the 41 references it cites were found in a registry or an index.
HIPAcc: A Domain-Specific Language and Compiler for Image Processing
Abstract
Domain-specific languages (DSLs) provide high-level and domain-specific abstractions that allow expressive and concise algorithm descriptions. Since the description in a DSL hides also the properties of the target hardware, DSLs are a promising path to target different parallel and heterogeneous hardware from the same algorithm description. In theory, the DSL description can capture all characteristics of the algorithm that are required to generate highly efficient parallel implementations. However, most frameworks do not make use of this knowledge and the performance cannot reach that of optimized library implementations. In this article, we present the HIPAccframework, a DSL and source-to-source compiler for image processing. We show that domain knowledge can be captured in the language and that this knowledge enables us to generate tailored implementations for a given target architecture. Back ends for CUDA, OpenCL, and Renderscript allow us to target discrete graphics processing units (GPUs) as well as mobile, embedded GPUs. Exploiting the captured domain knowledge, we can generate specialized algorithm variants that reach the maximal achievable performance due to the peak memory bandwidth. These implementations outperform state-of-the-art domain-specific languages and libraries significantly.
Overview
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
Citations
Cites
A Combined Corner and Edge Detector
Harris, C., & Stephens, M. (1988) · Procedings of the Alvey Vision Conference 1988 · doi:10.5244/c.2.23 · Cited by 12,901
Bilateral Filtering for Gray and Color Images
Tomasi, C., & Manduchi, R. (2002) · Sixth International Conference on Computer Vision (IEEE Cat. No.98CH36271) · doi:10.1109/iccv.1998.710815 · Cited by 8,177 · cited 2×
“Consider the bilateral filter that combines a closeness component c and a similarity component s over a common sliding window [16].”
BackgroundMethodCompilers: Principles, Techniques, and Tools
Aho, A. V., Sethi, R., & Ullman, J. D. (1986) · Cited by 8,152
The Laplacian pyramid as a compact image code
Burt, P., & Adelson, E. (1983) · IEEE Transactions on Communications · doi:10.1109/tcom.1983.1095851 · Cited by 6,077
Williams, S., Waterman, A., & Patterson, D. A. (2009) · Communications of the ACM · doi:10.1145/1498765.1498785 · Cited by 2,798
Halstead, M. H. (1977) · CERN Document Server (European Organization for Nuclear Research) · Cited by 2,339
Russ, J. C. (2006) · CRC Press eBooks · doi:10.1201/9780203881095 · Cited by 2,202
High-Performance Compilers for Parallel Computing
Wolfe, M., Shanklin, C., & Ortega, L. (1995) · CERN Document Server (European Organization for Nuclear Research) · Cited by 1,288
Program development by stepwise refinement
Wirth, N. (1971) · Communications of the ACM · doi:10.1145/362575.362577 · Cited by 964
Intel threading building blocks : outfitting C++ for multi-core processor parallelism
Reinders, J. R. (2007) · Cited by 708
Handbook of Medical Image Processing and Analysis
Bankman, I. N. (2009) · Elsevier eBooks · doi:10.1016/b978-0-12-373904-9.x0001-4 · Cited by 450
Prefix sums and their applications
Blelloch, G. E. (2018) · Figshare · doi:10.1184/r1/6608579 · Cited by 379
From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming
Du, P., Weber, R., Łuszczek, P., Tomov, S. Z., Peterson, G. D., & Dongarra, J. J. (2011) · Parallel Computing · doi:10.1016/j.parco.2011.10.002 · Cited by 312
THE FINE STRUCTURE OF PSYCHOLOGICAL TIME
Stroud, J. M. (1967) · Annals of the New York Academy of Sciences · doi:10.1111/j.1749-6632.1967.tb55012.x · Cited by 305
Decoupling algorithms from schedules for easy optimization of image processing pipelines
Ragan‐Kelley, J., Adams, A., Paris, S., Levoy, M., Amarasinghe, S. P., & Durand, F. (2012) · ACM Transactions on Graphics · doi:10.1145/2185520.2185528 · Cited by 251
Handbook of image processing operators
Klette, R., & Zamperoni, P. (1996) · Medical Entomology and Zoology · Cited by 211
DeVito, Z., Joubert, N., Palacios, F., Oakley, S., Medina, M., Barrientos, M., Elsen, E., Ham, F. E., Aiken, A., Duraisamy, K., et al. (2011) · International Conference for High Performance Computing, Networking, Storage and Analysis (SC) · doi:10.1145/2063384.2063396 · Cited by 200
OptiML: An Implicitly Parallel Domain-Specific Language for Machine Learning
Sujeeth, A. K., Lee, H., Brown, K. J., Rompf, T., Chafi, H., Wu, M. C., Atreya, A. R., Odersky, M., & Olukotun, K. (2011) · Cited by 164
Efficient Computation of Optical Flow Using the Census Transform
Stein, F. (2004) · Lecture notes in computer science · doi:10.1007/978-3-540-28649-3_10 · Cited by 148
A domain-specific approach to heterogeneous parallelism
Chafi, H., Sujeeth, A. K., Brown, K. J., Lee, H., Atreya, A. R., & Olukotun, K. (2011) · ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming · doi:10.1145/1941553.1941561 · Cited by 122
McCool, M. D., Toit, S. D., Popa, T., Chan, B., & Moule, K. (2004) · ACM Transactions on Graphics · doi:10.1145/1015706.1015801 · Cited by 122
Karrenberg, R., & Hack, S. (2011) · Cited by 98
Language virtualization for heterogeneous parallel computing
Chafi, H., DeVito, Z., Moors, A., Rompf, T., Sujeeth, A. K., Hanrahan, P., Odersky, M., & Olukotun, K. (2010) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/1869459.1869527 · Cited by 96
Karrenberg, R., & Hack, S. (2011) · International Symposium on Code Generation and Optimization (CGO) · doi:10.1109/cgo.2011.5764682 · Cited by 65
1 Intel’s Array Building Blocks: A Retargetable, Dynamic Compiler and Embedded Language
Newburn, C. J., So, B., Liu, Z., McCool, M. D., Ghuloum, A. M., Toit, S. D., Wang, Z. G., Du, Z. H., Chen, Y., Wu, G., et al. (2014) · Cited by 58
Liszt: A domain specific language for building portable mesh-based PDE solvers
DeVito, Joubert, Palacios, Oakley, Medina, Barrientos, Elsen, Ham, Aiken, Duraisamy, et al. (2011) · IEEE International Conference on High Performance Computing, Data, and Analytics · Cited by 51
Generating Device-specific GPU Code for Local Operators in Medical Imaging
Membarth, R., Hannig, F., Teich, J., Körner, M., & Eckert, W. (2012) · IEEE International Parallel and Distributed Processing Symposium (IPDPS) · doi:10.1109/ipdps.2012.59 · Cited by 45
Self-citationCode generation from a domain-specific language for C-based HLS of hardware accelerators
Reiche, O., Schmid, M., Hannig, F., Membarth, R., & Teich, J. (2014) · International Conference on Hardware/Software Codesign and System Synthesis · doi:10.1145/2656075.2656081 · Cited by 42
Self-citationDeriving Efficient Data Movement from Decoupled Access/Execute Specifications
Howes, L., Lokhmotov, A., Donaldson, A. F., & Kelly, P. H. J. (2008) · Lecture notes in computer science · doi:10.1007/978-3-540-92990-1_14 · Cited by 35
An experiment comparing Fortran programming times with the software physics hypothesis
Gordon, R. D., & Halstead, M. H. (1976) · AFIPS National Computer Conference and Exposition (NCC) · doi:10.1145/1499799.1499927 · Cited by 28
Code Generation for Embedded Heterogeneous Architectures on Android
Membarth, R., Reiche, O., Hannig, F., & Teich, J. (2016) · Cited by 26
Self-citationA Generic Algorithm Template for Divide-and-Conquer in Multicore Systems
González, C. H., & Fraguela, B. B. (2010) · IEEE International Conference on High Performance Computing and Communications (HPCC) · doi:10.1109/hpcc.2010.24 · Cited by 23
Lepley, T., Paulin, P. G., & Flamand, É. (2013) · Compilers, Architecture, and Synthesis for Embedded Systems · doi:10.5555/2555729.2555735 · Cited by 16
Generating GPU Code from a High-Level Representation for Image Processing Kernels
Membarth, R., Lokhmotov, A., & Teich, J. (2012) · Lecture notes in computer science · doi:10.1007/978-3-642-29737-3_31 · Cited by 15
Self-citationCode generation for embedded heterogeneous architectures on android
Membarth, R., Reiche, O., Hannig, F., & Teich, J. (2014) · Design, Automation, and Test in Europe · doi:10.7873/date2014.099 · Cited by 13
Self-citationHigh-performance SIMT code generation in an active visual effects library
Cornwall, J. L. T., Howes, L., Kelly, P. H. J., Parsonage, P., & Nicoletti, B. (2009) · ACM International Conference on Computing Frontiers (CF) · doi:10.1145/1531743.1531772 · Cited by 12
Towards Metaprogramming for Parallel Systems on a Chip
Howes, L., Lokhmotov, A., Donaldson, A. F., & Kelly, P. H. J. (2010) · Lecture notes in computer science · doi:10.1007/978-3-642-14122-5_7 · Cited by 8
Lepley, T., Paulin, P. G., & Flamand, É. (2013) · International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES) · doi:10.1109/cases.2013.6662510 · Cited by 7
Research works printed but not linked: 2
- feautrier, 2011, Polyhedron model, Encyclopedia of Parallel Computing, 1581
- 2009, RapidMind Development Platform Documentation
Cited by
Sorted by citations
Effective Extensible Programming: Unleashing Julia on GPUs
Besard, T., Foket, C., & Sutter, B. D. (2018) · IEEE Transactions on Parallel and Distributed Systems · doi:10.1109/tpds.2018.2872064 · Cited by 238
Spatial: a language and compiler for application accelerators
Koeplinger, D., Feldman, M., Prabhakar, R., Zhang, Y., Hadjis, S., Fiszel, R., Zhao, T. Y., Nardi, L., Pedram, A., Kozyrakis, C., et al. (2018) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/3192366.3192379 · Cited by 168
Lai, Y., Chi, Y., Hu, Y., Wang, J., Yu, C. H., Zhou, Y. J., Cong, J., & Zhang, Z. (2019) · ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA) · doi:10.1145/3289602.3293910 · Cited by 148
Programming Heterogeneous Systems from an Image Processing DSL
Pu, J., Bell, S., Yang, X., Setter, J., Richardson, S., Ragan‐Kelley, J., & Horowitz, M. (2017) · ACM Transactions on Architecture and Code Optimization · doi:10.1145/3107953 · Cited by 119
A survey on the practical use of UML for different software architecture viewpoints
Özkaya, M., & Erata, F. (2020) · Information and Software Technology · doi:10.1016/j.infsof.2020.106275 · Cited by 78
Metadata
- Authors
- Membarth, R., Reiche, O., Hannig, F., Teich, J., Korner, M., & Eckert, W.
- Affiliations
- German Research Centre for Artificial Intelligence (DE)
- Friedrich-Alexander-Universität Erlangen-Nürnberg (DE)
- Siemens (Germany) (DE)
- Venue
- IEEE Transactions on Parallel and Distributed Systems
- Published
- 2016-01-01
- Volume
- 27
- Issue
- 1
- Pages
- 210-224
- ISSN
- 1045-9219 (ISSN-L)
- OpenAlex
- W2075745057
- Semantic Scholar
- 57d70e927c9a1c2fc6c71f90336b071aa459eeb3
- Cited by
- 102
- References
- 41
- Citations by year
- 2026: 2 · 2025: 5 · 2024: 5 · 2023: 9 · 2022: 8 · 2021: 10 · 2020: 13 · 2019: 9 · 2018: 12 · 2017: 9 · 2016: 12
- FWCI
- 22.53
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- IEEE Transactions on Parallel and Distributed Systems (publishedVersion)
- Funders
- German Research Foundation
- Research Training Group
- Topics
- Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
- Physical Sciences › Computer Science › Hardware and Architecture › Embedded Systems Design Techniques
- Physical Sciences › Computer Science › Software › Model-Driven Software Engineering Techniques
- Keywords
- domain-specific languages, image processing, source-to-source compiler, GPU programming, CUDA, OpenCL, heterogeneous hardware, memory bandwidth optimization
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review