Writing high-performance image processing code is challenging and labor-intensive. The Halide programming language simplifies this task by decoupling high-level algorithms from "schedules" which optimize their implementation. However, even with this abstraction, it is still challenging for Halide programmers to understand complicated scheduling strategies and productively write valid, optimized schedules. To address this, we propose a programming support method called "guided optimization." Guided optimization provides programmers a set of valid optimization options and interactive feedback about their current choices, which enables them to comprehend and efficiently optimize image processing code without the time-consuming trial-and-error process of traditional text editors. We implemented a proof-of-concept system, Roly-poly, which integrates guided optimization, program visualization, and schedule cost estimation to support the comprehension and development of efficient Halide image processing code. We conducted a user study with novice Halide programmers and confirmed that Roly-poly and its guided optimization was informative, increased productivity, and resulted in higher-performing schedules in less time.
翻译:撰写高性能图像处理代码既具有挑战性,又耗费大量人力。 Halide 编程语言简化了这项任务,将高级算法与优化其执行的“时间表”脱钩。然而,即使如此抽象,Halide 程序员仍难以理解复杂的排程战略,并有效写出有效、优化的时间表。为此,我们提议了一个称为“制导优化”的编程支持方法。 向导优化为程序员提供了一套有效的优化选项和关于其当前选择的互动式反馈,使他们能够理解和高效优化图像处理代码,而无需传统文本编辑的耗时试探程序。我们实施了一种验证概念系统Roly-poly,它整合了有指导的优化、程序可视化和成本估算,以支持高效的Halide图像处理代码的理解和开发。我们与Novice Halide 程序员进行了一项用户研究,并证实Roly-poly及其指导优化是信息丰富、生产率提高的,并导致时间性更高的时间表。