Abstract
Heterogeneous programming complicates software development. We present CLOP, a platform that embeds code targeting heterogeneous compute devices in a convenient and clean way, allowing unobstructed data flow between the host code and the devices, reducing the amount of source code by an order of magnitude. The CLOP compiler uses the standard facilities of the D programming language to generate code strictly at compile-time. In this paper we describe the CLOP language and the CLOP compiler implementation.
- K. J. Brown, A. K. Sujeeth, H. J. Lee, T. Rompf, H. Chafi, M. Odersky, and K. Olukotun. A Heterogeneous Parallel Framework for Domain-Specific Languages. In PACT, 2011. Google Scholar
Digital Library
- R. Clifton-Everest, T. McDonell, M. Chakravarty, and G. Keller. Embedding Foreign Code. In PADL. 2014. Google Scholar
Digital Library
- B. Ford. Parsing Expression Grammars: A Recognition-based Syntactic Foundation. In POPL, 2004. Google Scholar
Digital Library
- V. Jovanovic, A. Shaikhha, S. Stucki, V. Nikolaev, C. Koch, and M. Odersky. Yin-yang: Concealing the Deep Embedding of DSLs. In GPCE, 2014. Google Scholar
Digital Library
- Khronos Group. The OpenCL Specification, Version: 1.2, 2012. URL https://www.khronos.org/registry/cl/.Google Scholar
- Khronos Group. C++ Single-source Heterogeneous Programming for OpenCL, 2015. URL https://www.khronos.org/sycl.Google Scholar
- A. Kolesnichenko, C. M. Poskitt, S. Nanz, and B. Meyer. Contract-Based General-Purpose GPU Programming. In GPCE, 2015. Google Scholar
Digital Library
- S. B. Needleman and C. D. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of molecular biology, 48, 1970.Google Scholar
- NVIDIA. CUDA Parallel Computing Platform, 2015. URL http: //www.nvidia.com/object/cuda_home_new.html.Google Scholar
- N. Nystrom, D. White, and K. Das. Firepile: Run-time Compilation for GPUs in Scala. In GPCE, 2011. Google Scholar
Digital Library
- K. Rupp, F. Rudolf, and J. Weinbub. ViennaCL - A High Level Linear Algebra Library for GPUs and Multi-Core CPUs. In GPUScA, 2010.Google Scholar
- M. Steuwer, P. Kegel, and S. Gorlatch. SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In IPDPSW, 2011. Google Scholar
Digital Library
- Introduction Background on D and OpenCL CLOP Language and Compiler Syntax and Semantics Run-time Support Compiler Implementation Results Related Work ConclusionGoogle Scholar
Index Terms
CLOP: a multi-stage compiler to seamlessly embed heterogeneous code
Recommendations
CLOP: a multi-stage compiler to seamlessly embed heterogeneous code
GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesHeterogeneous programming complicates software development. We present CLOP, a platform that embeds code targeting heterogeneous compute devices in a convenient and clean way, allowing unobstructed data flow between the host code and the devices, ...
From Naïve to Norvig On Deriving a PROLOG Compiler
ILC '14: Proceedings of ILC 2014 on 8th International Lisp ConferenceAn interpreter is a concise definition of the semantics of a programming language and is easily implemented. A compiler is more difficult to construct, but the code that it generates runs faster than interpreted code. This paper introduces rules to ...
Functional pearl: a SQL to C compiler in 500 lines of code
ICFP '15We present the design and implementation of a SQL query processor that outperforms existing database systems and is written in just about 500 lines of Scala code -- a convincing case study that high-level functional programming can handily beat C for ...






Comments