OPENCL и Altera FPGA для улучшения соотношения...

45
Применение стандарта OPENCL и Altera FPGA для улучшения соотношения производительность/ватт мощности при выполнении параллельных вычислений в гетерогенной системе Февраль, 2014 Висторовский Антон, BDM Altera EBV Elektronik

Transcript of OPENCL и Altera FPGA для улучшения соотношения...

Page 1: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Применение стандарта OPENCL и Altera FPGA

для улучшения соотношения производительность/ватт

мощности при выполнении параллельных вычислений

в гетерогенной системе

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

Page 2: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Содержание

Участие Altera в

развитии стандарта

Обзор решения Altera Маршрут ПО (SW)

Аппаратура (HW)

Отличительные

особенности

Примеры

2

Page 3: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Введение

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

Page 4: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Подход Altera: увеличение производительности

гетерогенной вычислительной системы

4

Максимизация пропускной способности

Минимизация латентности

Увеличение операций в сек Быстрее доступ к данным

Принципы параллелизма

• Конвейер

• Инструкции и данные

• Процессы

• Дупликация (SPMD)

• Процесс SMT

(Multi-threading)

Оптимизация доступа к памяти

• Уход от трансферта/копирования

• Работа в локальной памяти, а не в

общем ресурсе памяти

Page 5: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

ПЛИС (FPGA) – массивно-параллельная архитектура

Массивная параллельность

обработки ПЛИС Миллионы логических элементов

Тысячи блоков памяти 20Kb

Тысячи масштабируемых DSP блоков

Десятки высокоскоростных

трансиверов

Аппаратные процессорные системы и

контроллеры памяти

Аппаратная плавающая точка

Центричность на HDL Языки аппаратуры VHDL/Verilog

Маршрут проектирования

5

I/O

I/O

I/O

I/O

Программируемая

коммутация

ЛЭ, логический

элемент

Page 6: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

ПЛИС - мощная вычислительная, реконфигурируемая

и энергоэффективная вычислительная система

Основное преимущество:

Наличие синтезируемых и

аппаратных ресурсов

Оптимизация под задачу Логические блоки

Синтезируемый процессор Nios

Аппаратный ARM Сortex A9/А53

DSP блоки

Локальная память

Выполнение задачи на

пределе аппаратных

возможностей и

энергоэффективность Вычислительные ядра SMT

Репликация SPMD или

конвейеризация для увеличения

пропускной способности

6

энергоэффективность

Processor Memory

Processor Memory

Processor Memory

I/O

I/O

I/O

I/O

Processor Memory

Processor Memory

Page 7: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Обзор OpenCL

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

Page 8: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Host Device

C/C++

API

OpenCL

C

Стандарт OpenCL (Open Computing Language)

Увеличение производительности

через разгрузку СPU - аппаратный ускоритель

Локальная память Параллелизм

Задач (SMT) Данных (SPMD)

Модель разработки ПО для CPU, GPU, DSP и FPGA: C/C++ API для хост-программы

Расширение OpenCL для ускорителя

Открытый, без отчислений Основан Khronos Group

Altera - основной участник

Altera сертифицирована: V1.0 is current reference V2.0 is current release

http://www.khronos.org

8

Page 9: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Этапы развития Altera OpenCL

2010 НИР Toronto Technology Center

2011 Разработка Proof of concept

Бета-тесты (10)

2012 Программа раннего

доступа Демо - Supercomputing ‘12

Оценка 60 заказчиками

2013 Общая доступность Официальный аннонс

Прохождение v1.0 conformance

Public release v13.1 Installation image accessible

from ACDS download infrastructure

Documentation available online

Boards available from vendor web site and ACDS installation

Support flow in place

Optimization improvements

SoC support

Design Examples on Altera.com

9

Page 10: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

OpenCL подтвержденная совместимость Altera

Первый FPGA-вендор, прошедший

сертификацию совместимости OpenCL OpenCL v1.0 спецификация

>8500 программ оттестировано для прохождения

10

http://www.khronos.org/conformance/adopters/conformant-companies

http://www.khronos.org/conformance/adopters/conformant-products

Page 11: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Модель гетерогенной вычислительной платформы

11

OpenCL

Platform

Model

Host

(Compute) Device

Compute Unit

Processing

Element

Example

Platform x86

PCIe

Host

Memory

Global

Memory

Page 12: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

OpenCL

Модель

платформы

Синтезируемые ядра под ресурсоемкость задачи

12

Host

Пример

платформы x86

PCIe

Device Device

Host

Memory

Global

Memory

Page 13: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

OPENCL возможность абстракции от аппаратуры ПЛИС

13

Altera

Offline

Compiler

Standard

gcc

Compiler

AOCX EXE

OpenCL

Host Program + Kernels

main() { read_data( … ); manipulate( … ); clEnqueueWriteBuffer( … ); clEnqueueNDRange(…,sum,…); clEnqueueReadBuffer( … ); display_result( … ); }

__kernel void sum (__global float *a, __global float *b, __global float *y) { int gid = get_global_id(0); y[gid] = a[gid] + b[gid]; }

Verilog

Quartus II

x86

Page 14: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Базовый маршрут: clCreateProgramWithBinary

14

host.c

const char**

const char**

const char**

fp = fopen(“file.aocx","rb"); fseek(fp,0,SEEK_END); lengths[0] = ftell(fp); binaries[0] = (unsigned char*)malloc(sizeof(unsigned char)*lengths[0]); rewind(fp); fread(binaries[0],lengths[0],1,fp); fclose(fp);

clCreateProgramWithBinary

cl_program

clBuildProgram

Program (exe)

Program (exe)

cl_program Kernel (src)

Kernel (src)

exe

exe

clCreateKernel и clSetKernelArgument

cl_kernel

clEnqueueNDRangeKernel

clGetPlatforms

clGetDevices

OpenCL.h

API

cl_context

clCreateContext

cl_platform

cl_device

cl_command

_queue

clCreateCommandQueue

exe

Offline

Compiler

.cl

kernel

.aocx

CL File

OpenCL “Program”

Bitstream

Реализация подмножества OpenCL

в библиотеке поддержки

Page 15: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Наличие готовых аппаратных платформ

15

Интерконнект Вычислитель (HPC)

+++ Низкая латентность Вычислительная мощность/

Пропускная способность памяти

Form Factor

Half-Size

Full-Size

Component Single Dual

Global Memory DDR3-1600 and QDRII+ 550MHz DDR3-1333/FPGA

IO Channels 2x10GbE (MAC/UOE) None (Minimize IP overhead)

Reference

Design

• OPRA (Streaming)

• Trading (with global memory access)

• Option Pricing

Page 16: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Вычислительная платформа Altera HPC OpenCL

16

Device

C/C++ API

Software Layer Hardware Layer

Compiler

OpenCL C

Reference

Platform

Reference

Board

Reference

Design

host.c device.cl

Host

64-bit

• RHEL 6.4

• Windows 7

s5_hpc (S5PE-DS)

Page 17: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Сетевая платформа Altera OpenCL

17

Device

C/C++ API

Software Layer Hardware Layer

Compiler

OpenCL C

Reference

Platform

Reference

Board

Reference

Design

host.c device.cl

Host

64-bit

• RHEL 6.4

• Windows 7

s5_hft (S5PH-Q)

Page 18: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Пакет поддержки платы (BSP) и компилятор AOCL

18

PCIe gen2x8 Host

Interface

CvP Update

Inte

rco

nn

ec

t

DDR3 Memory Interface

10Gb MAC/UOE Data

Interface

10Gb MAC/UOE Data

Interface

DDR3 Memory Interface

QDRII Memory Interface

QDRII Memory Interface

QDRII Memory Interface

QDRII Memory Interface

OpenCL

Kernels

OpenCL

Kernels

DDR

DDR

QDR

QDR

QDR

QDR

10G

Network

Host Prebuilt

BSP with

standard

HDL

tools

Built with

Altera

OpenCL

Compiler

Page 19: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Однокристальная платформа OpenCL SoC

Мост управления - Lightweight

Старт/останов kernel, реконфигурация PLL, итд…

Мост FPGA-to-SDRAM

Отдельный мост (по умолчанию) для передачи данных между HPS и FPGA

256bit – ширина моста @ 100Mhz ~ 2.6GB/s

FPGA внутренняя память

Быстрая тесно-связанная локальная память ОЗУ для FPGA-ядер (kernels)

Хранение промежуточных данных перед передачей другому ядру

Вторичные мосты FPGA/HPS и HPS/FPGA

32bits @50Mhz без DMA

19

ARM

Host

FPGA

Kernels

HPS

External

Memory

H2F/F2H

LWH2F CSR

F2S

256bit,

100Mhz

32bit,

50Mz

256bit

100Mhz

FPGA

External

Memory

Page 20: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Поддержка - Multiple Devices v13.1 Beta

Платформа Altera Несколько ПЛИС на плате

Несколько плат на хосте

Пример реализации: “8 slot Terabox” = 16 крупных ПЛИС соединенных высокоскоростным каналом (разработка - Bittware)

20

Board Device

Board Device

Device Host

Host

Memory

IO

Page 21: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Поддержка различных типов памяти v13.1 Beta

Поддержка памяти: DDR

Последовательный доступ

QDR

Random - доступ

Внутренняя память

Буфер TCM

Атрибуты памяти:

Возможность определения

атрибутов для выделения буфера

на конкретном типе памяти

21

Host

Host

Memory

IO

Device

Global

Memory1

Inte

rface

CU

IO

Global

Memory2

__kernel void foo( global uint *data __attribute((buffer_location(QDR) )) ) { … foo(data[i]); … }

Page 22: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Потоковый доступ -

увеличение пропускной способности v13.1 EAP

22

Standard OpenCL

Vendor Extension

Channels Хост создает входной и выходной кернел

для отправки и получения данных

Host

Interface

CvP Update

Inte

rco

nn

ect

DDR3

Interface

10Gb

Interface

10Gb

Interface

DDR3

Interface

QDRII

Interface

QDRII

Interface

QDRII

Interface

QDRII

Interface

OpenCL

Kernels

OpenCL

Kernels

DDR

DDR

QDR

QDR

QDR

QDR

10G

Host Host

Interface

CvP Update

Inte

rco

nn

ect

DDR3

Interface

10Gb

Interface

10Gb

Interface

DDR3

Interface

QDRII

Interface

QDRII

Interface

QDRII

Interface

QDRII

Interface

OpenCL

Kernels

OpenCL

Kernels

DDR

DDR

QDR

QDR

QDR

QDR

Host

Network 10G

Network

Page 23: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Доступная аппаратура

Маршрут разработки

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

Page 24: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Установка OpenCL

Часть пакета ACDS v13.1

Отдельная установка http://dl.altera.com/opencl/

Требует лицензированный пакетQuartus

Поддержка AOC на Windows и Linux

Требуется стандартный GCC компилятор для

компиляции кода хост-машины Visual Studio, Eclipse….

24

Page 25: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Что включено в пакет Altera SDK OpenCL?

Offline compiler (aoc) GCC based model

Altera OpenCL utility (aocl) Diagnostics for board installation

Flash or program FPGA image

Install board drivers (typically PCIe)

Host libraries Required by host code and provided by the vendor (Altera)

APB Board driver

Design examples FFT, vectoradd, matrixmult, moving average

25

Page 26: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Рекомендованные средства разработки Altera OpenCL

Наличие программы “Preferred board”, аппаратные

платформы с пакетом поддержки BSP

Для оценки, разработки, прототипирования или

серийного производства

Оттестированный SDK Altera SDK OpenCL проверен и отлажен

Удобство старта работы по принципу Out-of-box

Программа уже включает в себя лицензии: Quartus II Development Kit Edition Software (1 год)

Altera SDK for OpenCL License (1год + продление)

26

Page 27: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Доступность аппаратуры 13.1 Release

27

Partner Board Altera Device Where to Get?

Altera DK-DEV-5CSXC6NES Cyclone V SX SoC Part of ACDS 13.1

BittWare S5PH-Q Stratix V D5 Part of ACDS 13.1

S5PH-Q Stratix V D8 Part of ACDS 13.1

S5PH-Q Stratix V A7 Contact BittWare

S5PH-Q Stratix V AB Contact BittWare

S5PH-DS Dual Stratix V AB Contact BittWare

Terabox 8, S5PH-DS Boards Contact BittWare

Nallatech 385-A7 Accelerator Card Stratix V A7 Part of ACDS 13.1

385-D5 Accelerator Card Stratix V D5 Part of ACDS 13.1

PLDA XP5S620LP-40G Stratix V A7 Contact PLDA

Terasic DE5 Stratix V A7 Contact Terasic

Page 28: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Маршрут разработки Altera SDK OpenCL

28

Install Quartus II

v13.1 with Altera

SDK for OpenCL

Install C

Compiler or

Development

Environment

Obtain and setup

license from the

Self Service

Licensing Center

Install the FPGA

(OpenCL) board

aocl install

Build, compile &

link the host

application (Visual

Studio/GCC)

Run the

application

Se

t U

p

Desig

n

Optimize kernel for

FPGA hardware

Op

tim

ize

Документация - Getting Started Guide

Документация - Programming Guide

Документация - Optimization Guide

Develop kernel code

and compile on

CPU/GPU for

functional correctness

Compile the

OpenCL kernel

with Altera offline

Compiler (aoc)

Page 29: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Примеры и сравнения

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

Page 30: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

AES Encryption

Encryption/decryption

256bit key

Counter (CTR) method

Advantage FPGA

Integer arithmetic

Coarse grain bit operations

Complex decision making

Results

30

Platform Power

(W)

Performance

(GB/s)

Efficiency

(GB/s/W)

E5503 Xeon Processor

(single core)

est 80 0.01 1.25e-4

AMD Radeon HD 7970 est 100 0.33 3.30e-3

PCIe385 A7 Accelerator 25 5.20 2.08e-1

Page 31: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Multi-Asset Barrier Option Pricing

Monte-Carlo simulation

No closed form solution possible

High quality random number

generator required

Billions of simulations required

Used GPU vendors example code

Advantage FPGA

Complex Control Flow

Optimizations

Channels, loop pipelining

Results

31

Platform Power

(W)

Performance

(Bsims/s)

Efficiency

(Msims/s/W)

W3690 Xeon Processor 130 .032 0.0025

nVidia Kepler20 212 10.1 48

Bittware S5-PCIe-HQ 45 12.0 266

Page 32: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Document Filtering

Unstructured data analytics

Bloom Filter

Advantage FPGA

Integer Arithmetic

Flexible Memory Configuration

Results

32

Platform Power

(W)

Performance

(MTs)

Efficiency

(MTs/W)

W3690 Xeon Processor 130 2070 15.92

nVidia Tesla C2075 215 3240 15.07

PCIe385 A7 Accelerator 25 3602 144.08

Page 33: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Smith-Waterman

Sequence Alignment

Scoring Matrix

Advantage FPGA

Integer Arithmetic

SMT Streaming

Results

33

Platform Power

(W)

Performance

(MCUPS)

Efficiency

(MCUPS/W)

W3565 Xeon Processor 140 40 .29

nVidia K20 225 704 3.13

PCIe385 A7 Accelerator 25 32596

1303.00

Page 34: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Итоги

Эффективность Синтез параллельных вычислительных ядер под специальную задачу предоставляет

достичь высокого соотношения производительности на ватт мощности

Производительность Высочайшая пропускная способность и низкое время доступа

Оптимизация внутреннего интерконнекта

Скорость и удобство разработки / Абстракция от HDL Разработчику ПО предоставляется удобная среда разработки, ускоряющая путем

абстракции от нижнего уровня разработку на ПЛИС ускорителя гетерогенной платформы

Переносимость и время жизни Переносимость кода на другие платформы (CPU, GPU)

Долгий жизненный цикл ПЛИС

Стоимость решения Доступность однокристального решения SoC, совмещение хоста и ускорителя в одном

устройстве, значительно снижает стоимость системы ускорителя в реальном времени

34

Page 35: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Backup - слайды

Февраль, 2014

Висторовский Антон, BDM Altera

EBV Elektronik

35

Page 36: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Altera’s Next Generation Portfolio Goes to 10

36

High End

FPGAs

& SoCs

Intel 14 nm

Tri-Gate Process

TSMC

20 nm Process

1.15M LE; 53Mbit +

DDR4 @ 2666Mbps (Ext mem IF 1.2 Tbps)

3,356 18x19 Multipliers

96 XCVRs, up to 28.1 Gbps

PCIe HARD Gen3 x8 and Dual Cortex A9

High-Performance

Midrange

FPGAs & SoCs

2x performance of Stratix V FPGAs

Up to 70% lower power vs. Stratix V FPGAs

4M+ LEs, Up to 56 Gbps XCVRs

Up to 10 TFLOPs DSP performance

HMC support

Pin Migration

Page 37: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Развитие вычислительных решений

37

Performance

GPGPU

Single-Core Multi-Core

C/C++ AVX/OpenMP

Программирование

в гетерогенной

системе

Aрхитектура

PCIe ускоритель

SOC решение

Язык программирования

OpenCL

Programmability

CPU

Dri

ve

r S

tre

am

AP

I C

UD

A

Page 38: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Видение потенциальных применений

Current Target GPU

Multi-Core CPU

DSP/

Embedded

FPGA

Scope System

(Heterogeneous Platform)

Device IP Block

Application • High Performance Computing

(HPC)

• Finance (HFT)

• Energy&Oil

• Military

• Medical

• Automotive

• Industrial

• Communications (baseband)

• Broadcast

• Consumer

Designer Programmer Embedded Programmer Hardware Designer

Design Flow CUDA/OpenCL Code Composer Studio (TI C) Quartus II (Verilog/VHDL)

Design Activity Task Parallelism

Data Parallelism

Real Time Function Acceleration IP Design and Integration

Design Constraints • Throughput/Latency

• Power Efficiency

• Real Time Execution

• Cost

• Clock Frequency

• Resource Utilization

• Interface Requirements

• Power

Data Type • DP/SP Floating Point SP Floating Point

32-bit Fixed Point

Fixed Point

Hardware Knowledge None (Coding Style Guidelines) Limited (macro architecture

bandwidth level)

Yes (protocol-level, timing closure,

micro architecture)

38

Today Beta 2014 2014

HLD HLD

Page 39: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Возможность генерации пакета поддержки платы BSP

13.1 EAP

Interfaces to compiler

Host CPU Interface: Avalon Memory Map

Global Memory: Avalon Memory Map

Option IO: Avalon Streaming

39

PCIe gen2x8

Host Interface

CvP Update

Inte

rco

nn

ec

t

DDR3 Memory

Interface

10Gb MAC/UOE Data

Interface

10Gb MAC/UOE Data

Interface

DDR3 Memory

Interface

QDRII Memory

Interface

QDRII Memory

Interface

QDRII Memory

Interface

QDRII Memory

Interface

OpenCL

Kernels

OpenCL

Kernels

DDR

DDR

QDR

QDR

QDR

QDR

10G

Network

Host Avalon MM

Avalon MM

Avalon MM

Avalon MM

Avalon MM

Avalon MM

Avalon MM

Avalon ST

Avalon ST

Page 40: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

OpenCL Roadmap – дальнейшее развитие

Beta

Production

Designs

2013 2014 2015

Multiple Devices Channels Image Image

(SP) Floating Point (DP) Floating Point (DP) Floating Point (HP) Floating Point

Task Optimizations QoR Optimizations ICD Partial Reconfiguration

1.0 Conformance 1.2 Conformance

Heterogeneous Memory 64 Bit Global memory ARM64 RTE ARM64 RTE

CV SoC Dev Kit CV SoC Dev Kit A10 SoC Dev Kit S10 SoC Dev Kit

Custom BSP Custom BSP w/

HPC/Network Platforms EFI EFI

Rapid Prototyping Rapid Prototyping

Emulation Profiling

Hello OpenCL Asian Options

OPRA Device Channel

13.1 14.0 14.1 15.0

Page 41: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Планы по развитию

41

2013

2014 2015 2016

Quality Channels Channels

Multiple Devices Device Virtualization Device Virtualization Device Virtualization

Heterogeneous

Memory

Partial

Reconfiguration

Partial

Reconfiguration

Partial

Reconfiguration

Floating Point (SP) Floating Point (DP) Floating Point (DP) Floating Point (HP) Floating Point (HP)

Task Image Image SVM

C++ Bindings Pipe

Conformance 1.0 Conformance 1.2 Conformance 2.0

Conformance 1.0

CV SoC Dev Kit

QoR Optimizations

Productivity RTE vs SDK install

Power Series RT Power Series RTE

ARM64 RTE ARM64 RTE

64bit Glob Mem ICD

Hello OpenCL Asian Options

OPRA Device Channel

EFI EFI EFI

Emulation Emulation

Profiling Profiling

CV SoC Dev Kit CV SoC Dev Kit

A10 FPGA Dev Kit A10 SoC Dev Kit

S10 SoC Dev Kit S10 SoC Dev Kit

Technology

Advantage APB custom board

APB custom board

(HFT/HPC)

Rapid Prototyping Rapid Prototyping Rapid Prototyping

Rapid Prototyping

APB

Rapid Prototyping

APB

Gen2x8 with CvP gen3x16 with PR

DDR3 RLDRAM DDR4 2.5D Memory

QDRII QDRII QDRIV HMC

Internal RAM

10GbE 10GbE 40GbE

13.1 14.0 14.1 15.0 15.1 16.0 16.1

EAP

Beta

Production

Design

Page 42: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

v13.1 Altera SDK for OpenCL – New Feature Overview

42

Feature Status Description

Task Optimizations Production Single threaded task optimizations

Component Specific Optimizations Production Aggressive area reduction in OpenCL kernels leveraging loop unrolling techniques

OpenCL Reference Design Production “Hello World”

Cyclone V SoC Support Beta ARM Cortex-A9 as host

Heterogeneous Memory Platforms Beta Support mixed memories

Multi-Platform Support Beta Multiple devices, multiple boards

Functional Debug Early Access Ability to debug OpenCL kernels on x86 platform

Channels Early Access API update for ease of use

Altera Preferred Board Support Package

Early Access Create a custom OpenCL hardware platform

Page 43: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Требования к хост-машине и лицензирование

Altera SDK OpenCL

Altera SDK for OpenCL Licensing Purchase a 1 year perpetual license

Fixed & float available

60-day evaluation license available on request

Requires Quartus II v13.1 Subscription Edition or Development Kit Edition

OS Microsoft 64-bit Windows 7

Red Hat Enterprise 64-bit Linux (RHEL) 6.x

Memory requirements SDK: Computer equipped with at least 16 GB RAM

Quartus II: Refer to memory requirements for target FPGA

43

Page 44: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Документация

White papers on OpenCL

OpenCL online demos

OpenCL design examples

Instructor-Led training OpenCL for Altera FPGAs Training by Acceleware – (4 Day)

Parallel Computing with OpenCL Workshop by Altera – (1 Day)

Optimization of OpenCL for Altera FPGAs Training by Altera – (1 Day)

Online training Introduction to Parallel Computing with OpenCL

Writing OpenCL Programs for Altera FPGAs

Running OpenCL on Altera FPGAs

OpenCL board partners page

44

Page 45: OPENCL и Altera FPGA для улучшения соотношения ...omega.sp.susu.ru/books/conference/PaVT2014/talks/... · 2014-04-01 · Altera SDK for OpenCL License (1год

Consumer (Japan)

Image Processing

Adaptive weighted images

Advantage FPGA

Integer Arithmetic

Results

45

Platform Power

(W)

Performance

(FPS)

Efficiency

(FPS/W)

W3565 Xeon Processor est 130 0.05 .0004

nVidia Quadro 4000 est 150 2.94 .0200

PCIe385 A7 Accelerator 21 4.29 .2040

W

dcdcdcdcp

xyjixyijxyjixyij

xy

2222111)1()1(