论文标题
设计和实施知识库,用于软件定义硬件的运行时管理
Design and Implementation of Knowledge Base for Runtime Management of Software Defined Hardware
论文作者
论文摘要
Runtime-Reconfigurable软件以及可重新配置的硬件是非常需要的,作为最大程度地提高运行时效率的手段,而无需损害可编程性。此类软件系统的编译器非常困难,因为它们必须在运行时利用不同类型的硬件。为了满足与动态可重构硬件相匹配的静态和动态编译器优化的静态和动态编译器的优化,我们为软件定义的硬件提出了动态软件编译器的中心组件的新颖设计。我们的全面设计不仅侧重于静态知识,还关注半监督从程序执行中提取知识并开发其绩效模型。具体来说,我们的小说{\ it动态和可扩展的知识库} 1)在执行工作流程期间不断地收集知识2)确定{\ it最佳}在{\ it optimal}(可用的)硬件配置上的工作流程的实现。它在存储信息并向编译器的其他组件以及人类分析师中提供信息中起着枢纽的作用。通过丰富的三方图表,知识库捕获并了解有关代码步骤分解和映射到内核的大量信息,并将内核映射到可用的硬件配置。知识库是使用C ++ Boost库实施的,并且能够快速处理离线以及在线查询和更新。我们表明,无论其存储的工作流量如何,我们的知识库都可以回答$ 1MS $的查询。据我们所知,这是一个动态且可扩展的知识库的第一个设计,以支持高级语言的汇编,以利用任意可重构平台。
Runtime-reconfigurable software coupled with reconfigurable hardware is highly desirable as a means towards maximizing runtime efficiency without compromising programmability. Compilers for such software systems are extremely difficult to design as they must leverage different types of hardware at runtime. To address the need for static and dynamic compiler optimization of workflows matched to dynamically reconfigurable hardware, we propose a novel design of the central component of a dynamic software compiler for software defined hardware. Our comprehensive design focuses not just on static knowledge but also on semi-supervised extraction of knowledge from program executions and developing their performance models. Specifically, our novel {\it dynamic and extensible knowledge base} 1) continuously gathers knowledge during execution of workflows 2) identifies {\it optimal} implementations of workflows on {\it optimal} (available) hardware configurations. It plays a hub role in storing information from, and providing information to other components of the compiler, as well as the human analyst. Through a rich tripartite graph representation, the knowledge base captures and learns extensive information on decomposition and mapping of code steps to kernels and mapping of kernels to available hardware configurations. The knowledge base is implemented using the C++ Boost Library and is capable of quickly processing offline and online queries and updates. We show that our knowledge base can answer queries in $1ms$ regardless of the number of workflows it stores. To the best of our knowledge, this is the first design of a dynamic and extensible knowledge base to support compilation of high-level languages to leverage arbitrary reconfigurable platforms.