the quasar value the quasar workflow rapid prototyping ... · code analysis and feedback: for...

1
The Quasar Value proposition The Quasar workflow The tools Results Data inspection and watches Interactive command window Debugging windows: call stack, breakpoints Real-time image viewers Code editor with auto completion windows and help tooltips Local variables and matrices GPU & CPU info Main target platform Fast development 2 weeks vs. 3 months for a CUDA implementation of an MRI reconstruction algorithm Fast execution using the GPU 64 fps vs 2,91 fps for a template matching algorithm Efficient code: 300 lines of Quasar code vs. 2700 lines of C++ code for a registration algorithm Quasar is a new programming language that: Has a low barrier of entry in GPU acceleration Results in a single (HW-agnostic) code base Ideal for sharing code Results in shorter development cycles Allows researchers to focus on algorithms, not on implementation Has differentiating development tools e.g. interactive debugging Algorithm (quasar code) Code analysis Compilation Runtime CPU Multi-core CPU Many-core accelerator GPU SOC Heterogeneous hardware Code optimization Developer feedback Kernel decomposition .NET OpenMP & SIMD OpenCL CUDA Memory management Load balancing Scheduling Kernel parameter optimization Scripting language Compact code High level of abstraction Hardware agnostic programming Hardware characteristics Kernel characteristics Data characteristics Data The GPU conondrum for rapid prototyping An example R A P I D P R O T O T Y P I N G A full-blown IDE: Performance and profile analysis: 1 2 3 Bottle neck detection CPU/GPU usage Code analysis and feedback: For research, an ideal programming language should enable fast development with compact, yet readable code. However, with the increasing complexity of state of the art algorithms, fast execution becomes paramount as well. GPU acceleration would be a major asset. Yet researchers often refrain from GPU acceleration due to the use of low-level programming languages and the perception of a steep learning curve. Matrix syntax Boundary handling Straightforward mapping to Quasar code Check http://quasar.ugent.be 1 10 100 1.000 10.000 100.000 Exeution time (ms) Quasar: CPU Quasar: CPU + GPU Speed-up factor of 4 to 64

Upload: others

Post on 03-Jun-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Quasar Value The Quasar workflow rapid prototyping ... · Code analysis and feedback: For research, an ideal programming language should enable fast development with compact,

The Quasar Value proposition The Quasar workflow

The tools

Results

Data inspection andwatches

Interactive command window

Debuggingwindows: callstack, breakpoints

Real-timeimage viewers

Code editor withauto completion windows and help tooltips

Local variables and matrices

GPU & CPU info

Main target platform

Fast development• 2 weeks vs. 3 months for a CUDA implementation of

an MRI reconstruction algorithm

Fast execution using the GPU• 64 fps vs 2,91 fps for a template matching

algorithm

Efficient code:• 300 lines of Quasar code vs. 2700 lines of C++ code for

a registration algorithm

Quasar is a new programming language that:

Has a low barrier of entry in GPU acceleration

Results in a single (HW-agnostic) code base

Ideal for sharing code

Results in shorter development cycles

Allows researchers to focus on algorithms,

not on implementation

Has differentiating development tools e.g. interactive debugging

Algorithm (quasar code)

Code analysis

Compilation

Runtime

CPU Multi-core CPU Many-core accelerator GPU SOC

Heterogeneous hardware

• Code optimization• Developer feedback• Kernel decomposition

• .NET• OpenMP & SIMD• OpenCL• CUDA

• Memory management• Load balancing• Scheduling• Kernel parameter

optimization

• Scripting language• Compact code• High level of abstraction• Hardware agnostic

programming

Hardware characteristics

Kern

el c

hara

cter

istic

s

Data

cha

ract

erist

ics

Data

The GPU conondrum for rapid prototyping

An example

RAPID

PROTOTYPING

A full-blown IDE:

Performance and profile analysis:

1

2

3

• Bottle neck detection• CPU/GPU usage

Code analysis and feedback:

For research, an ideal programminglanguage should enable fast developmentwith compact, yet readable code.However, with the increasing complexity ofstate of the art algorithms, fast executionbecomes paramount as well. GPUacceleration would be a major asset.Yet researchers often refrain from GPUacceleration due to the use of low-levelprogramming languages and theperception of a steep learning curve.

Matrix syntax

Boundary handling

Straightforward mapping to Quasar code

Check

http://quasar.ugent.be

1

10

100

1.000

10.000

100.000Exeution time (ms)

Quasar: CPUQuasar: CPU + GPU

Speed-up factor of 4 to 64