[论文解读] A Collective Knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques
本文提出了一种基于 Collective Knowledge (CK) 框架的可移植、协作式工作流程,以实现软件/硬件协同设计中可重现的多目标自动调优与机器学习。该工作流程在 Raspberry Pi 3 设备上实现了编译器自动调优,执行时间与代码大小最高分别减少 40%,同时支持众包优化、模型共享以及基于标准化 JSON API 和公共知识库的最优配置机器学习预测。
Developing efficient software and hardware has never been harder whether it is for a tiny IoT device or an Exascale supercomputer. Apart from the ever growing design and optimization complexity, there exist even more fundamental problems such as lack of interdisciplinary knowledge required for effective software/hardware co-design, and a growing technology transfer gap between academia and industry. We introduce our new educational initiative to tackle these problems by developing Collective Knowledge (CK), a unified experimental framework for computer systems research and development. We use CK to teach the community how to make their research artifacts and experimental workflows portable, reproducible, customizable and reusable while enabling sustainable R&D and facilitating technology transfer. We also demonstrate how to redesign multi-objective autotuning and machine learning as a portable and extensible CK workflow. Such workflows enable researchers to experiment with different applications, data sets and tools; crowdsource experimentation across diverse platforms; share experimental results, models, visualizations; gradually expose more design and optimization choices using a simple JSON API; and ultimately build upon each other's findings. As the first practical step, we have implemented customizable compiler autotuning, crowdsourced optimization of diverse workloads across Raspberry Pi 3 devices, reduced the execution time and code size by up to 40%, and applied machine learning to predict optimizations. We hope such approach will help teach students how to build upon each others' work to enable efficient and self-optimizing software/hardware/model stack for emerging workloads.
研究动机与目标
- 解决计算机系统研究中学术界与工业界之间日益扩大的技术转化鸿沟。
- 克服多目标自动调优与机器学习研究工作流程缺乏标准化、可移植性和可重用性的问题。
- 使研究人员能够以可持续且可重现的方式共享、定制并基于实验成果进行构建。
- 通过众包实验,促进在包括 Raspberry Pi 3 在内的多样化硬件平台上的协作式优化。
- 通过标准化评估与成果共享,加速前沿技术在真实系统中的部署。
提出的方法
- 本文提出了一种基于开源 Collective Knowledge (CK) 工作流系统的统一实验框架,以标准化研究成果与工作流程。
- 采用基于 JSON 的 API 描述并暴露设计与优化选择,实现跨平台的可移植性与可扩展性。
- 框架集成跨平台包管理器,可自动适应不同环境与硬件的编译与执行。
- 多目标自动调优作为可重用的 CK 工作流实现,支持对执行时间、代码大小、功耗和内存的优化。
- 通过将自动调优任务分发至志愿者提供的 Raspberry Pi 3 设备,实施众包模糊测试(crowd-fuzzing),以收集并聚合性能数据。
- 基于收集的优化数据,训练机器学习模型(包括决策树、k-NN 和深度学习模型),以预测未见过工作负载的最优配置。
实验结果
研究问题
- RQ1标准化、可移植且可重用的工作流程框架在多目标自动调优与机器学习研究中,如何提升协作性与可重现性?
- RQ2在如 Raspberry Pi 3 这类异构设备上进行众包自动调优,在多大程度上能提升优化效率并减少执行时间与代码大小?
- RQ3基于共享优化数据训练的机器学习模型,能否以高精度预测新工作负载的最优编译器标志与配置?
- RQ4统一的 API 与元数据标准如何实现从学术界到工业界的可持续技术转化?
- RQ5共享的、社区驱动的知识库对加速软件/硬件协同设计领域的创新有何影响?
主要发现
- 基于 CK 的工作流程通过在 Raspberry Pi 3 设备上对多样化工作负载进行协作式自动调优,将执行时间与代码大小最高减少 40%。
- 该框架成功实现了众包自动调优,通过将任务分发至志愿者提供的 Raspberry Pi 3 设备,将结果收集并存储于公开、可重现的知识库中。
- 基于共享优化数据,决策树与 k-最近邻(k-NN)等机器学习模型能够以高精度预测最优编译器配置。
- 使用标准化的 JSON API 与元数据,实现了不同研究团队与平台之间对应用程序、内核、数据集与工具的无缝集成与重用。
- 该方法通过支持软件/硬件栈的持续改进与社区驱动优化,展示了实现可持续、协作式与可重现研究的可行路径。
- 该框架已成功应用于跨深度学习框架、模型与 Android 设备的基准推理性能评估,结果以实时交互式排行榜形式发布于 cKnowledge.org/repo。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。