eel 5934: the rc modeling language (rcml)

14
December 3-4, 2008 2008 Annual Workshop EEL 5934: The RC EEL 5934: The RC Modeling Language Modeling Language (RCML) (RCML) Dr. Alan D. George Professor of ECE University of Florida Dr. Herman Lam Assoc. Professor of ECE University of Florida Dr. Greg Stitt Asst. Professor of ECE University of Florida Dr. Saumil Merchant Research Scientist University of Florida Casey Reardon Brian Holland Karthik Nagarajan Gongyu Wang Research Students University of Florida

Upload: mandar

Post on 07-Feb-2016

42 views

Category:

Documents


0 download

DESCRIPTION

EEL 5934: The RC Modeling Language (RCML). Dr. Alan D. George Professor of ECE University of Florida Dr. Herman Lam Assoc. Professor of ECE University of Florida Dr. Greg Stitt Asst. Professor of ECE University of Florida. Dr. Saumil Merchant Research Scientist University of Florida - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: EEL 5934: The RC Modeling Language (RCML)

December 3-4, 2008

2008 Annual Workshop

EEL 5934: The RC EEL 5934: The RC Modeling Language Modeling Language (RCML)(RCML)

Dr. Alan D. GeorgeProfessor of ECE

University of Florida

Dr. Herman Lam Assoc. Professor of ECE

University of Florida

Dr. Greg Stitt Asst. Professor of ECE

University of Florida

Dr. Saumil MerchantResearch Scientist

University of Florida

Casey ReardonBrian Holland

Karthik NagarajanGongyu Wang

Research StudentsUniversity of Florida

Page 2: EEL 5934: The RC Modeling Language (RCML)

2

Introduction / MotivationIntroduction / Motivation Coding for RC is often difficult and time

consuming due to a number of factors Efficient use of parallelism required to exploit

performance potential of devices Limited resources available on device PAR may take hours, limiting the number of

design/debug iterations per day, etc. Problem compounded when original

design do not meet project requirements Engineers often must perform multiple full

design iterations before completing project Lack of tools to effectively lay out your design

and ensure that final product will meet specs What if there was a way to efficiently

model and plan your design before implementation, allowing you to catch design flaws before coding…

Page 3: EEL 5934: The RC Modeling Language (RCML)

3

RCML OverviewRCML Overview RC Modeling Language (RCML) an

abstract modeling language for RC Intended to allow users to quickly layout

and analyze their design before coding an implementation

Graphical, block-oriented modeling environment, no writing of code RCML model editor under development

RCML includes 3 classes of models: Algorithm models: specialized task

graphs with constructs for parallelism Architecture models: collection of highly

tunable generic platform components System models: an algorithm model

mapped onto an architecture model Multiple mapping processes to support

multiple levels of abstraction Allow reuse of algorithm and architecture

models across numerous mappings RCML Concept Diagram

Candidate Algorithm

Model

Candidate Architecture

Model

RCML System Model

Mapping

RAT Analysis

Simulative PredictionCode

Generation

Algorithm Model Library

Architecture Model Library

Page 4: EEL 5934: The RC Modeling Language (RCML)

4

RCML Algorithm RCML Algorithm ConstructsConstructs Function blocks are fundamental building block of algorithm models

Data-driven function block - contains only data inputs Control-driven function block - triggered by changes to

control signals, e.g. a FSM output Iterative attrivute to define multiple executions per firing

Two forms of data constructs: data set (finite, asynchronous) and data stream (continuous)

Two explicit structures for defining parallelism Process lines (deep parallelism)

Can define number of stages, inputs, outputs, etc. Duplicates, a.k.a. data-path replication (wide parallelism)

Allow user to specify multiple instances of single function box Can be mapped within single device or across nodes

Built-in patterns for communications to/from duplicates

Data Set: MoleculesElement Type: MoleculeNum Elements: =Param(N)

Element Name: Molecule

Element Definition:String name;Int index, posX, posY, posZ;End Definition;

RCML Data Set

RCML Process Line RCML Duplicates Example

Stage 3 function

Stage 2 function

Stage 1 function

CollectorDuplicate Set 1

i = 5

DistributorGatherScatter

Page 5: EEL 5934: The RC Modeling Language (RCML)

5

RCML Algorithm RCML Algorithm ConstructsConstructsName Description IconData Block A block representing a finite (data set)

or continuous (data stream) group of data processed by the algorithm

Base Function Block

Algorithm task triggered either by incoming data (data-driven) or control signals (control-driven)

Repetitive Function Block

Algorithm task whose execution is repeated a specified number of times

Process Line Function Block

Task sequence that can execute con-currently, supports deep parallelism

Replicated Function Block

A task that is physically replicated to support wide parallelism

Page 6: EEL 5934: The RC Modeling Language (RCML)

6

RCML Architecture RCML Architecture ConstructsConstructs Architecture models used to define makeup and capabilities of the RC execution platform

Includes several classes of architecture components e.g. processor, RC device, bus, memory, etc. For this project, architecture

models should simply be a processor and RC device connected by a bus

Attributes used to refine generic components into instances of a specific device See attributes slide later

Page 7: EEL 5934: The RC Modeling Language (RCML)

7

RCML Architecture RCML Architecture ConstructsConstructsName Description Icon

Fixed Processor A fixed processing element, such as an ASIC or microprocessor

Reconfigurable Processor

A processing elements that supports reconfiguration, such as an FPGA

Memory Block An instance of memory or storage

Cache Block A specialized memory block for multi-level caches

Interconnect Bus

A system or network bus for data transfers

Interconnect Switch

A network switch for data transfers

Source/Sink Device

Generic devices, such as a sensor (source) or display (sink)

Page 8: EEL 5934: The RC Modeling Language (RCML)

8

RCML AttributesRCML Attributes Attributes in RCML used to refine generic constructs into

specific/detailed model components e.g. define size and speed attributes for a memory block to represent a

SRAM, DRAM, storage disk, etc. Embed performance attributes in function blocks

e.g. computational latency Attributes are selectable/editable in the

‘Attributes’ property tab for any component Table in properties tab displays all attributes

currently defined for component Use buttons/dialogs to add and edit attributes

(sorry, double-click editing not supported yet)

Page 9: EEL 5934: The RC Modeling Language (RCML)

9

RCML System MappingRCML System Mapping System model maps an algorithm

model onto an architecture model Each half of system model viewed

one at a time Change ‘perspective’ to switch views

in system model

Tool currently supports two basic system mapping functions Mapping function blocks to

processing elements Mapping data blocks to starting and

final memory locations Dialogs found in mapping

properties tab of system model elements

Page 10: EEL 5934: The RC Modeling Language (RCML)

10

Eclipse RCML EditorEclipse RCML Editor A graphical editor for creating RCML models

developed this year in Eclipse Eclipse is an open development platform comprised of

extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle

See www.eclipse.org RCML editor exists as plugin to Eclipse

Thus, RCML model editing capabilities integrated into Eclipse after plugin installation

RCML tool still in early phases of development Most advanced features not supported yet, so keep your

models simple!

Page 11: EEL 5934: The RC Modeling Language (RCML)

11

Eclipse RCML EditorEclipse RCML EditorPalette: choose components here to place on canvas

Properties tab: display/edit properties of model or selected component

Page 12: EEL 5934: The RC Modeling Language (RCML)

12

RCML RAT Analysis ToolRCML RAT Analysis Tool Automatically generates

analytic performance prediction

Users must define basic computational requirements of algorithm e.g. number of data elements

being operated upon, number of computational operations performed per element, and number of operations circuit can perform per clock cycle

Will provide instructions detailing exact parameters required for RAT analysis Tool must read set of pre-defined attributes in model to perform prediction

Launch by right-clicking canvas of system model and selecting “Launch RAT” from menu

Page 13: EEL 5934: The RC Modeling Language (RCML)

13

RCML DemoRCML Demo

Page 14: EEL 5934: The RC Modeling Language (RCML)

14

AssignmentAssignment The tool will be made available for download soon from the

class webpage Instructions for installing Eclipse and RCML editor will be provided

Build an RCML model (algorithm, architecture, and system) of your class project and RECORD TIME SPENT ON IT It is important that this time is recorded and accurate, so please

take this seriously Overall time with RCML should not be long, i.e. 1-2 hours

Use the RAT tool to obtain a performance estimate from your model A guide instructing how to define performance parameters for use

with RAT tool will be provided