Halide

Author:

Ragan-Kelley Jonathan1,Adams Andrew2,Sharlet Dillon2,Barnes Connelly3,Paris Sylvain4,Levoy Marc5,Amarasinghe Saman6,Durand Frédo6

Affiliation:

1. UC Berkeley

2. Google

3. University of Virginia

4. Adobe

5. Stanford University and Google

6. MIT CSAIL

Abstract

Writing high-performance code on modern machines requires not just locally optimizing inner loops, but globally reorganizing computations to exploit parallelism and locality---doing things such as tiling and blocking whole pipelines to fit in cache. This is especially true for image processing pipelines, where individual stages do much too little work to amortize the cost of loading and storing results to and from off-chip memory. As a result, the performance difference between a naive implementation of a pipeline and one globally optimized for parallelism and locality is often an order of magnitude. However, using existing programming tools, writing high-performance image processing code requires sacrificing simplicity, portability, and modularity. We argue that this is because traditional programming models conflate the computations defining the algorithm with decisions about intermediate storage and the order of computation, which we call the schedule. We propose a new programming language for image processing pipelines, called Halide, that separates the algorithm from its schedule. Programmers can change the schedule to express many possible organizations of a single algorithm. The Halide compiler then synthesizes a globally combined loop nest for an entire algorithm, given a schedule. Halide models a space of schedules which is expressive enough to describe organizations that match or outperform state-of-the-art hand-written implementations of many computational photography and computer vision algorithms. Its model is simple enough to do so often in only a few lines of code, and small changes generate efficient implementations for x86, ARM, Graphics Processors (GPUs), and specialized image processors, all from a single algorithm. Halide has been public and open source for over four years, during which it has been used by hundreds of programmers to deploy code to tens of thousands of servers and hundreds of millions of phones, processing billions of images every day.

Funder

NSF

Department of Energy

Publisher

Association for Computing Machinery (ACM)

Subject

General Computer Science

Cited by 76 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. DLAS: A Conceptual Model for Across-Stack Deep Learning Acceleration;ACM Transactions on Architecture and Code Optimization;2024-09-02

2. On the Importance of the Execution Schedule for Bayesian Inference;ACM Transactions on Probabilistic Machine Learning;2024-08-31

3. Research on the Application of Multimedia Image Processing Technology in Sports Sociology Education;International Journal of Web-Based Learning and Teaching Technologies;2024-07-17

4. Work Assisting: Linking Task-Parallel Work Stealing with Data-Parallel Self Scheduling;Proceedings of the 10th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming;2024-06-20

5. Auto-Generating Diverse Heterogeneous Designs;2024 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW);2024-05-27

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3