当前位置: X-MOL 学术Int. J. Parallel. Program › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Portable C++ Code that can Look and Feel Like Fortran Code with Yet Another Kernel Launcher (YAKL)
International Journal of Parallel Programming ( IF 1.5 ) Pub Date : 2022-12-08 , DOI: 10.1007/s10766-022-00739-0
Matthew Norman , Isaac Lyngaas , Abhishek Bagusetty , Mark Berrill

This paper introduces the Yet Another Kernel Launcher (YAKL) C++ portability library, which strives to enable user-level code with the look and feel of Fortran code. The intended audience includes both C++ developers and Fortran developers unfamiliar with C++. The C++ portability approach is briefly explained, YAKL’s main features are described, and code examples are given that demonstrate YAKL’s usage. YAKL fills a niche capability important particularly to scientific applications seeking to port Fortran code quickly to a portable C++ library. YAKL places heavy emphasis on simplicity, readability, and productivity with performance mainly emphasizing Graphics Processing Units (GPUs). Central to YAKL’s ability to allow Fortran-like user-level code are three features: (1) a multi-dimensional Array class that allows Fortran behavior; (2) a limited library of Fortran intrinsic functions; and (3) an efficient pool allocator that transparently enables cheap frequent allocations and deallocations of YAKL Arrays. While YAKL allows Fortran-style code, it also allows Arrays that exhibit C-like behavior as well, including row-major index ordering and lower bounds of “0”. YAKL currently supports CPUs, CPU threading, and Nvidia, AMD, and Intel GPUs.



中文翻译:

带有另一个内核启动器 (YAKL) 的可移植 C++ 代码,看起来和感觉起来都像 Fortran 代码

本文介绍了 Yet Another Kernel Launcher (YAKL) C++ 可移植性库,它致力于使用户级代码具有 Fortran 代码的外观和感觉。目标读者包括 C++ 开发人员和不熟悉 C++ 的 Fortran 开发人员。简要解释了 C++ 可移植性方法,描述了 YAKL 的主要功能,并提供了演示 YAKL 用法的代码示例。YAKL 填补了一个小众功能,对于寻求将 Fortran 代码快速移植到可移植 C++ 库的科学应用程序来说尤其重要。YAKL 非常强调简单​​性、可读性和生产力,性能主要强调图形处理单元 (GPU)。YAKL 允许类似 Fortran 的用户级代码的能力的核心是三个特性:(1) 允许 Fortran 行为的多维 Array 类;(2) 有限的 Fortran 内部函数库;(3) 一个高效的池分配器,可以透明地实现 YAKL 数组的廉价频繁分配和释放。虽然 YAKL 允许使用 Fortran 风格的代码,但它也允许数组表现出类似 C 的行为,包括行优先索引排序和“0”的下限。YAKL 目前支持 CPU、CPU 线程以及 Nvidia、AMD 和 Intel GPU。

更新日期:2022-12-10
down
wechat
bug