O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Heterogeneous System Architecture

Book Description

Heterogeneous Systems Architecture - a new compute platform infrastructure presents a next-generation hardware platform, and associated software, that allows processors of different types to work efficiently and cooperatively in shared memory from a single source program. HSA also defines a virtual ISA for parallel routines or kernels, which is vendor and ISA independent thus enabling single source programs to execute across any HSA compliant heterogeneous processer from those used in smartphones to supercomputers.

The book begins with an overview of the evolution of heterogeneous parallel processing, associated problems, and how they are overcome with HSA. Later chapters provide a deeper perspective on topics such as the runtime, memory model, queuing, context switching, the architected queuing language, simulators, and tool chains. Finally, three real world examples are presented, which provide an early demonstration of how HSA can deliver significantly higher performance thru C++ based applications. Contributing authors are HSA Foundation members who are experts from both academia and industry. Some of these distinguished authors are listed here in alphabetical order: Yeh-Ching Chung, Benedict R. Gaster, Juan Gómez-Luna, Derek Hower, Lee Howes, Shih-Hao HungThomas B. Jablin, David Kaeli,Phil Rogers, Ben Sander, I-Jui (Ray) Sung.

  • Provides clear and concise explanations of key HSA concepts and fundamentals by expert HSA Specification contributors
  • Explains how performance-bound programming algorithms and application types can be significantly optimized by utilizing HSA hardware and software features
  • Presents HSA simply, clearly, and concisely without reading the detailed HSA Specification documents
  • Demonstrates ideal mapping of processing resources from CPUs to many other heterogeneous processors that comply with HSA Specifications

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Foreword
  6. Preface
  7. About the Contributing Authors
  8. Chapter 1: Introduction
    1. Abstract
  9. Chapter 2: HSA Overview
    1. Abstract
    2. 2.1 A Short History of GPU Computing: The Problems That Are Solved by HSA
    3. 2.2 The Pillars of HSA
    4. 2.3 The HSA Specifications
    5. 2.4 HSA Software
    6. 2.5 The HSA Foundation
    7. 2.6 Summary
  10. Chapter 3: HSAIL - Virtual Parallel ISA
    1. Abstract
    2. 3.1 Introduction
    3. 3.2 Sample Compilation Flow
    4. 3.3 HSAIL Execution Model
    5. 3.4 A Tour of the HSAIL Instruction Set
    6. 3.5 HSAIL Machine Models and Profiles
    7. 3.6 HSAIL Compilation Flow
    8. 3.7 HSAIL Compilation Tools
    9. 3.8 Conclusion
  11. Chapter 4: HSA Runtime
    1. Abstract
    2. 4.1 Introduction
    3. 4.2 The HSA Core Runtime API
    4. 4.3 HSA Runtime Extensions
    5. 4.4 Conclusion
  12. Chapter 5: HSA Memory Model
    1. Abstract
    2. 5.1 Introduction
    3. 5.2 HSA Memory Structure
    4. 5.3 HSA Memory Consistency Basics
    5. 5.4 Advanced Consistency in the HSA Memory Model
    6. 5.5 Conclusions
  13. Chapter 6: HSA Queuing Model
    1. Abstract
    2. 6.1 Introduction
    3. 6.2 User Mode Queues
    4. 6.3 Architected Queuing Language
    5. 6.4 Packet Submission and Scheduling
    6. 6.5 Conclusions
  14. Chapter 7: Compiler Technology
    1. Abstract
    2. 7.1 Introduction
    3. 7.2 A Brief Introduction to C++ AMP
    4. 7.3 HSA as a Compiler Target
    5. 7.4 Mapping Key C++ AMP Constructs to HSA
    6. 7.5 C++ AMP Compilation Flow
    7. 7.6 Compiled C++ AMP Code
    8. 7.7 Compiler Support for Tiling in C++AMP
    9. 7.8 Memory Segment Annotation
    10. 7.9 Towards Generic C++ for HSA
    11. 7.10 Compiler Support for Platform Atomics
    12. 7.11 Compiler Support for New/Delete Operators
    13. 7.12 Conclusion
  15. Chapter 8: Application Use Cases: Platform Atomics
    1. Abstract
    2. Acknowledgment
    3. 8.1 Introduction
    4. 8.2 Atomics in HSA
    5. 8.3 Task Queue System
    6. 8.4 Breadth-First Search
    7. 8.5 Data Layout Conversion
    8. 8.6 Conclusions
  16. Chapter 9: HSA Simulators
    1. Abstract
    2. 9.1 Simulating HSA in Multi2Sim
    3. 9.2 Emulating HSA with HSAemu
    4. 9.3 SoftHSA Simulator
  17. Index