skip to main content
short-paper

CLOP: a multi-stage compiler to seamlessly embed heterogeneous code

Published:26 October 2015Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Clifton-Everest, T. McDonell, M. Chakravarty, and G. Keller. Embedding Foreign Code. In PADL. 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Ford. Parsing Expression Grammars: A Recognition-based Syntactic Foundation. In POPL, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Khronos Group. The OpenCL Specification, Version: 1.2, 2012. URL https://www.khronos.org/registry/cl/.Google ScholarGoogle Scholar
  6. Khronos Group. C++ Single-source Heterogeneous Programming for OpenCL, 2015. URL https://www.khronos.org/sycl.Google ScholarGoogle Scholar
  7. A. Kolesnichenko, C. M. Poskitt, S. Nanz, and B. Meyer. Contract-Based General-Purpose GPU Programming. In GPCE, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. NVIDIA. CUDA Parallel Computing Platform, 2015. URL http: //www.nvidia.com/object/cuda_home_new.html.Google ScholarGoogle Scholar
  10. N. Nystrom, D. White, and K. Das. Firepile: Run-time Compilation for GPUs in Scala. In GPCE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Rupp, F. Rudolf, and J. Weinbub. ViennaCL - A High Level Linear Algebra Library for GPUs and Multi-Core CPUs. In GPUScA, 2010.Google ScholarGoogle Scholar
  12. M. Steuwer, P. Kegel, and S. Gorlatch. SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In IPDPSW, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Introduction Background on D and OpenCL CLOP Language and Compiler Syntax and Semantics Run-time Support Compiler Implementation Results Related Work ConclusionGoogle ScholarGoogle Scholar

Index Terms

  1. CLOP: a multi-stage compiler to seamlessly embed heterogeneous code

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 51, Issue 3
      GPCE '15
      March 2016
      184 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2936314
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • cover image ACM Conferences
        GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
        October 2015
        184 pages
        ISBN:9781450336871
        DOI:10.1145/2814204

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 26 October 2015

      Check for updates

      Qualifiers

      • short-paper

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!