Using q-learning to select the best among functionally equivalent implementations

Using q-learning to select the best among functionally equivalent implementations
复制标题

使用 q-learning 在功能等效的实现中选择最佳的

DOI:
10.1145/3520306.3534503
复制
发表时间:
2022
期刊:
Languages and Compilers for Array Programming
影响因子:
--
通讯作者:
Veras, Richard M.
Veras, Richard M.
中科院分区:
--
文献类型:
--
作者:
Oever, Meggie van;Grimley, Lauren E.;Veras, Richard M.

文献摘要

参考文献

相似文献

对于开发人员来说,为计算密集型内核生成高性能代码是一项持久的挑战。在给定目标体系结构和特定操作的情况下,开发人员必须将该操作调优到体系结构的最低层细节。不同的体系结构目标需要不同的实现,这一事实加剧了这个问题,即使对操作进行最轻微的调整,也可能需要在实现中进行大的更改才能实现性能。对于性能关键型应用程序,此生成通常手动执行。然而,就所需的领域知识而言,这一级别的编程是困难的,并产生了编码实现,这增加了对问题正确性的推理的挑战。自动代码生成将解决这些问题。至少,通过自动应用性能所需的各种代码转换,这应该会减少正确性问题,只要这些转换只导致搜索空间中的正确实现。在这篇文章中,我们研究了操作的正确实现的子集,即一个特定指令混合的所有有效的指令静态调度。然后,我们探索强化学习的使用,以便在这个子集中搜索目标操作的最优实现。这项工作是使用强化学习自动生成代码来自动探索正确实现的第一步。
High performance code generation for computationally intensive kernels is a persistent challenge for developers. Given a target architecture and a specific operation, the developer must tune that operation to the lowest-level details of the architecture. This problem is exacerbated by the fact that different architectural targets necessitate different implementations, and even the slightest adjustment to the operation may require large changes in the implementation in order to achieve performance. For performance critical applications this generation is typically performed by hand. However, this level of programming is difficult in terms of the domain knowledge required, and yields coded implementations that increase that challenge of reasoning about the correctness of the problem. Automatic code generation would address these issues. At the very least, by automating the application of the various code transformations needed for performance, this should reduce the issue of correctness, as long as these transformations only lead to correct implementations in the search space. In this paper, we look at a subset of correct implementations of an operation, all valid static schedules of instructions of one particular mix of instructions. We then explore the use of Reinforcement Learning in order to search for the optimal implementation in this subset for the target operation. This work is the first step in automating the exploration of correct implementations using Reinforcement Learning for automatic code generation.
推导密集线性代数算法的科学
DOI: --
发表时间: 2005
期刊: TOMS
影响因子: --
作者:
P. Bientinesi;John A. Gunnels;Margaret E. Myers;E. Quintana;R. Geijn
通讯作者: R. Geijn
HELIX:高性能程序生成的形式验证案例研究
DOI: --
发表时间: 2018
期刊: FHPC@ICFP
影响因子: --
作者:
V. Zaliva;F. Franchetti
通讯作者: F. Franchetti
DOI: 10.1145/2755561
发表时间: 2016
期刊: ACM Transactions on Mathematical Software (TOMS)
影响因子: --
作者:
F. V. Zee;T. Smith;Bryan Marker;Tze Meng Low;R. V. D. Geijn;Francisco D. Igual;M. Smelyanskiy;Xianyi Zhang;M. Kistler;V. Austel;John A. Gunnels;Lee Killough
通讯作者: Lee Killough