首页> 外文会议>High performance computing >An Embedded Domain Specific Language for General Purpose Vectorization
【24h】

An Embedded Domain Specific Language for General Purpose Vectorization

机译:用于通用矢量化的嵌入式领域特定语言

获取原文
获取原文并翻译 | 示例

摘要

Portable SIMD code generation is an open problem in modern High Performance Computing systems. Performance portability can already be achieved, however it might fail when user-framework interaction is required. Of all portable vectorization techniques, explicit vectorization, using wrapper-class libraries, is proven to achieve the fastest performance, however it does not exploit optimization opportunities outside the simplest algebraic primitives. A more advanced language is therefore required, but the design of a new independent language is not feasible due to its high costs. This work describes an Embedded Domain Specific Language for solving generalized 1-D vectorization problems. The language is implemented using C++ as a host language and published as a lightweight library. By decoupling expression creation from evaluation a wider range of problems can be solved, without sacrificing runtime efficiency. In this paper we discuss design patterns necessary, but not limited, to efficient EDSL implementation. We also study specific scenarios in which a language-based interface can surpass procedural interfaces in both efficiency, portability and ease of use. In particular we demonstrate higher performance when compared with equivalent BLAS Level 1 routines.
机译:便携式SIMD代码生成是现代高性能计算系统中的一个开放问题。性能可移植性已经可以实现,但是当需要用户框架交互时,它可能会失败。在所有便携式矢量化技术中,使用包装器类库的显式矢量化已被证明可以实现最快的性能,但是它并没有利用最简单的代数原语之外的优化机会。因此,需要一种更高级的语言,但是由于成本高昂,设计一种新的独立语言是不可行的。这项工作描述了一种嵌入式领域特定语言,用于解决广义的一维矢量化问题。该语言使用C ++作为宿主语言实现,并作为轻量级库发布。通过将表达式创建与评估脱钩,可以解决更多问题,而不会牺牲运行时效率。在本文中,我们讨论了有效的EDSL实现所必需但不限于的设计模式。我们还研究了特定的场景,其中基于语言的界面在效率,可移植性和易用性方面都可以超过过程界面。特别是,与等效的BLAS 1级例程相比,我们展示了更高的性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号