arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2001.09995cs.DCcs.PL
收藏

从动态应用程序跟踪中自动并行提取内核

Automated Parallel Kernel Extraction from Dynamic Application Traces

Richard Uhrie, Chaitali Chakrabarti, John Brunhaver

摘要:

现代程序运行时由称为内核的重复代码段主导。内核通过增加内存局部性、增加数据并行性和利用内核之间的生产者-消费者并行性来加速-这需要专用于特定类别的内核的硬件。对这种硬件进行编程可能很困难,需要在代码中识别和注释内核,或者将其翻译为特定于域的语言。本文介绍了一种技术,自动本地化并行内核的动态应用程序跟踪,促进进一步的代码优化。动态跟踪收集快速而紧凑。通过优化,它只会导致9倍的时间膨胀和每秒1兆字节的文件大小,解决了对这种方法的重大批评。核提取是准确的,并在对数存储器内的线性时间内执行,检测广泛的核。这种方法在16个库中得到了验证,包括10,507个内核实例。为了验证我们检测到的内核的准确性,我们编写了五个测试程序,这些程序跨越了传统的内核定义,并被认证为包含所有预期的内核。

英文摘要:

Modern program runtime is dominated by segments of repeating code called kernels. Kernels are accelerated by increasing memory locality, increasing data-parallelism, and exploiting producer-consumer parallelism among kernels - which requires hardware specialized for a particular class of kernels. Programming this hardware can be difficult, requiring that the kernels be identified and annotated in the code or translated to a domain-specific language. This paper describes a technique to automatically localize parallel kernels from a dynamic application trace, facilitating further code optimization. Dynamic trace collection is fast and compact. With optimization, it only incurs a time-dilation of a factor on nine and file-size of one megabyte per second, addressing a significant criticism of this approach. Kernel extraction is accurate and performed in linear time within logarithmic memory, detecting a wide range of kernels. This approach was validated across 16 libraries, comprised of 10,507 kernels instances. To validate the accuracy of our detected kernels, five test programs were written that spans traditional kernel definitions and were certified to contain all the kernels that were expected.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑