Compiling Algorithms for Heterogeneous Systems (Synthesis Lectures on Computer Architecture)

Steven Bell, Jing Pu, James Hegarty

  • 出版商: Morgan & Claypool
  • 出版日期: 2018-01-17
  • 定價: $2,306
  • 售價: 9.0$2,075
  • 語言: 英文
  • 頁數: 106
  • 裝訂: Hardcover
  • ISBN: 1681732637
  • ISBN-13: 9781681732633
  • 相關分類: Algorithms-data-structures
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

Most emerging applications in imaging and machine learning must perform immense amounts of computation while holding to strict limits on energy and power. To meet these goals, architects are building increasingly specialized compute engines tailored for these specific tasks. The resulting computer systems are heterogeneous, containing multiple processing cores with wildly different execution models. Unfortunately, the cost of producing this specialized hardware-and the software to control it-is astronomical. Moreover, the task of porting algorithms to these heterogeneous machines typically requires that the algorithm be partitioned across the machine and rewritten for each specific architecture, which is time consuming and prone to error.

Over the last several years, the authors have approached this problem using domain-specific languages (DSLs): high-level programming languages customized for specific domains, such as database manipulation, machine learning, or image processing. By giving up generality, these languages are able to provide high-level abstractions to the developer while producing high-performance output. The purpose of this book is to spur the adoption and the creation of domain-specific languages, especially for the task of creating hardware designs.

In the first chapter, a short historical journey explains the forces driving computer architecture today. Chapter 2 describes the various methods for producing designs for accelerators, outlining the push for more abstraction and the tools that enable designers to work at a higher conceptual level. From there, Chapter 3 provides a brief introduction to image processing algorithms and hardware design patterns for implementing them. Chapters 4 and 5 describe and compare Darkroom and Halide, two domain-specific languages created for image processing that produce high-performance designs for both FPGAs and CPUs from the same source code, enabling rapid design cycles and quick porting of algorithms. The final section describes how the DSL approach also simplifies the problem of interfacing between application code and the accelerator by generating the driver stack in addition to the accelerator configuration.

This book should serve as a useful introduction to domain-specialized computing for computer architecture students and as a primer on domain-specific languages and image processing hardware for those with more experience in the field.

商品描述(中文翻譯)

大多數在影像和機器學習領域的新興應用程式必須在嚴格的能源和功率限制下執行大量計算。為了達到這些目標,架構師們正在建立越來越專門的計算引擎,以適應這些特定任務。由此產生的計算機系統是異構的,包含多個具有完全不同執行模型的處理核心。不幸的是,製造這種專用硬體及控制它的軟體的成本是巨大的。此外,將算法移植到這些異構機器通常需要將算法分割到機器上並為每個特定架構重新編寫,這是耗時且容易出錯的。

在過去幾年中,作者們使用特定領域語言(DSL)來解決這個問題:這些是針對特定領域(如數據庫操作、機器學習或影像處理)定制的高級編程語言。通過放棄通用性,這些語言能夠為開發人員提供高級抽象,同時產生高性能的輸出。本書的目的是促進特定領域語言的採用和創建,特別是用於創建硬體設計的任務。

第一章對當今計算機架構的驅動力進行了簡要的歷史回顧。第二章描述了產生加速器設計的各種方法,概述了對更高抽象度的追求以及使設計師能夠在更高概念層次上工作的工具。從那裡,第三章簡要介紹了影像處理算法和實現它們的硬體設計模式。第四章和第五章描述並比較了Darkroom和Halide這兩種針對影像處理創建的特定領域語言,它們能夠從同一源代碼生成FPGA和CPU的高性能設計,實現快速設計週期和快速算法移植。最後一節描述了DSL方法如何通過生成驅動程式堆疊以及加速器配置來簡化應用程式代碼與加速器之間的接口問題。

本書對於計算機架構學生來說,應該是一本有用的領域專用計算入門書,對於在該領域有更多經驗的人來說,則是一本關於特定領域語言和影像處理硬體的入門指南。