A Collection-Oriented Programming Model for Performance Portability

作者:Muralidharan Saurav*; Garland Michael; Catanzaro Bryan; Sidelnik Albert; Hall Mary
来源:ACM Sigplan Notices, 2015, 50(8): 263-264.
DOI:10.1145/2688500.2688537

摘要

This paper describes Surge, a collection-oriented programming model that enables programmers to compose parallel computations using nested high-level data collections and operators. Surge exposes a code generation interface, decoupled from the core computation, that enables programmers and autotuners to easily generate multiple implementations of the same computation on various parallel architectures such as multi-core CPUs and GPUs. By decoupling computations from architecture-specific implementation, programmers can target multiple architectures more easily, and generate a search space that facilitates optimization and customization for specific architectures. We express in Surge four real-world benchmarks from domains such as sparse linear-algebra and machine learning and from the same performance-portable specification, generate OpenMP and CUDA C++ implementations. Surge generates efficient, scalable code which achieves up to 1.32x speedup over handcrafted, well-optimized CUDA code.

  • 出版日期2015-8