BrookPlusSpec

BrookPlusSpec - Brook+ Language Specication Version 1.0 Beta

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
Brook+ Language Speci cation Version 1.0 Beta streamcomputing@amd.com
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Contents 1 Introduction 2 1.1 Purpose of this Document . . . . . . . . . . . . . . . . . . . . . . 2 1.2 AMD Stream Computing Environment . . . . . . . . . . . . . . . 2 1.3 What is Stream Computing? . . . . . . . . . . . . . . . . . . . . 2 1.4 What is Brook? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4.1 AMD's Brook Philosophy . . . . . . . . . . . . . . . . . . 3 1.4.2 Brook, BrookGPU, Brook+ . . . . . . . . . . . . . . . . . 4 1.5 Development Status . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 The Structure of a Brook Program 5 3 New Primitive Data Types 8 3.1 Short Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Complete Table of Primitive Types . . . . . . . . . . . . . . . . . 8 4 Streams and Stream Operators 10 4.1 Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.1 Stream Declarations . . . . . . . . . . . . . . . . . . . . . 10 4.2 Stream Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2.1 Remapping Stream Operators . . . . . . . . . . . . . . . . 11 4.2.2 IO Stream Operators . . . . . . . . . . . . . . . . . . . . . 12 4.2.3 Implicit Insertion of Stream Operators . . . . . . . . . . . 12 5 Kernels 13 5.1 Types of kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.1.1 The basic kernel . . . . . . . . . . . . . . . . . . . . . . . 13 5.1.2 Kernels with a variable number of output elements . . . . 14 5.2 Reduction Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2.1 Partial Reductions . . . . . . . . . . . . . . . . . . . . . . 15 5.3 Random Access Kernels . . . . . . . . . . . . . . . . . . . . . . . 16 5.4 Calling Other Code from Kernel Code . . . . . . . . . . . . . . . 16 5.5 Restrictions on Kernel Code . . . . . . . . . . . . . . . . . . . . . 17 6 Standard Library Functions and Intrinsics 18 6.1 Kernel Intrinsics . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1
Background image of page 2
Chapter 1 Introduction 1.1 Purpose of this Document This document is intended to provide a clear-but-concise description of the Brook language and associated environment as implemented for AMD's stream- ing processors. Some amount of tutorial material is included for clarity, but it is not primarily intended as a means of learning the language. As Brook is very close to C in many aspects, the C99 standard [2] applies where this document is incomplete or unclear. Readers who have experience with C but not Brook may skip the initial chapters detailing the base C-like aspects of the language and go directly to Chapter 2. 1.2 AMD Stream Computing Environment The AMD Stream Computing Environment (SCE) is the name for an entire integrated infrastructure provided by AMD to enable both development of ap- plications that make e ective use of the features of our parallel-capable hardware and of tools for enabling such development. Our implementation of Brook is built on top of the SCE tools and runtime,
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 22

BrookPlusSpec - Brook+ Language Specication Version 1.0 Beta

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online