中文

构建用于运行时 SPIR-V 代码生成的组合式函数式 API 的经验

软件工程 2023-05-19 v2 分布式、并行与集群计算

摘要

本文介绍了 Beehive SPIR-V Toolkit;这是一个能够自动生成用于动态构建 SPIR-V 二进制模块的可组合 Java 函数式库的框架。Beehive SPIR-V Toolkit 可被优化编译器和运行时系统用于在托管运行时系统(如 Java 虚拟机(JVM))中生成并验证 SPIR-V 二进制模块。此外,我们的框架采用易于维护的架构以适应新的 SPIR-V 版本发布,并且除 SPIR-V 外,它还支持为其他标准自动生成 Java 库。Beehive SPIR-V Toolkit 还包含一个从反汇编的 SPIR-V 文本文件生成 SPIR-V 二进制模块的汇编器、一个将 SPIR-V 二进制代码转换为文本文件的反汇编器,以及一个控制台客户端应用程序。据我们所知,Beehive SPIR-V Toolkit 是首个能够动态生成 SPIR-V 二进制模块的 Java 编程框架。为展示我们框架的使用,我们展示了 SPIR-V Beehive Toolkit 在 TornadoVM(一个用于自动卸载并在异构硬件上运行 Java 程序的 Java 框架)中的集成。我们表明,通过 SPIR-V Beehive Toolkit,TornadoVM 能够比其现有的 OpenCL C JIT 编译器快 3 倍地编译代码,并且比 TornadoVM 中现有的 OpenCL C 后端性能最高快 1.52 倍。

关键词

引用

@article{arxiv.2305.09493,
  title  = {Experiences in Building a Composable and Functional API for Runtime SPIR-V Code Generation},
  author = {Juan Fumero and György Rethy and Athanasios Stratikopoulos and Nikos Foutris and Christos Kotselidis},
  journal= {arXiv preprint arXiv:2305.09493},
  year   = {2023}
}

备注

16 pages, 9 figures, 11 Listings