Top Banner
Using standard hardware accelerators to decrease computation times in scientific applications , ł
27

Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

Feb 28, 2019

Download

Documents

buianh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

Using standard hardware accelerators to decrease computation times in

scientific applications

, ł

Page 2: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

2

Program

•Heterogeniczne systemy obliczeniowe

•Układy FPGA

•Procesory graficzne, ClearSpeed, PowerXCell

•Podsumowanie

Page 3: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

3

Nr 1 na TOP500 – obliczenia hybrydowe

Roadrunner:

•6,562 dual-core AMD Opteron (1.8 GHz)

•12,240 PowerXCell (3.2 GHz) (każdy układ scalony ma 8 rdzeni o mocy szczytowej 12.8 Gflops)

Rdzeni Rmax[Tflops] Rpeak [Tflops]

122400 1026 1376

•Zużycie energii: 2.35 MW

Page 4: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

4

Obliczenia hybrydowe według SGI

• XtremeData for Field Programmable Gate Array (FPGA) accelerator options beyond

the SGI RASC RC100 to optimize scientific computing and medical imaging

• NVIDIA® - parallel visual computing on NVIDIA professional GPU (graphics

processing unit) solutions

• ClearSpeed Technology - acceleration solutions for molecular dynamics, drug design,

computational chemistry, electromagnetics and turbulent fluid flow analysis

• PACT XPP - digital signal processors for 2D edge detection used in biomedical

imaging, pattern recognition and searches

Page 5: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

5

Układy FPGA (Field Programable Gate Arrays)

Slice

LUT6

LUT6

LUT6

LUT6

Logika ogólnego przeznaczenia

Jeden element LUT6 może wykonać

dowolną funkcje logiczną 6 wejść i

jednego wyjścia

Moduł XsterimeDSP – idealny do

wykonywania operacji mnóż i dodaj

Page 6: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

6

FPGA wykorzystywane do obliczeń silnie równoległych

Dana wyjściowa

MAC

(Mnóż i akumuluj)

Współczynniki

Procesor - sekwencyjny

4 GHz * 128/16 (SIMD)= 32GMAC/s

640 taktów

zegara

Dana wejściowa

X

+

Reg

500 MHz * 640=320GMAC/s

Dana wyjściowa

FPGA – całkowicie równoległe obliczenia

640 operacji na

takt zegara

Dana

wej.

X

+

C0 C0XC1 XC2 XC3 XC639…

Reg

Reg

Reg

Reg

Operacja MAC zaimplementowany 10 razy szybciej

Dane dla obliczeń int18 x int18 = int36

Page 7: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

7

Porównanie procesorów CPU i układów FPGA

Procesory CPU:

•Pobieranie instrukcji

•Dekodowanie instrukcji

•Wykonanie instrukcji

Układy FPGA

•Instrukcje zawarta bezpośrednio w konfiguracji układu FPGA

•Możliwość dostosowanie architektury układu FPGA do wykonywanego zadania

•Zmiana konfiguracji układu FPGA jest relatywnie czasochłonna – wymaga 10-100ms.

Page 8: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

8

AES

klucz 9

9 R

UN

D

KLUCZTEKST JAWNY

AddRoundKey

SZYFROGRAM

SubBytes

ShiftRows

MixColumns

AddRoundKey

Rejestr

SubBytes

ShiftRows

MixColumns

AddRoundKey

Rejestr

SubBytes

ShiftRows

AddRoundKey

Rejestr

Generate

RoundKey

Generate

RoundKey

Generate

RoundKey

klucz 1

klucz 10

Rejestr

InvSubBytes

InvShiftRows

InvMixColumns

AddRoundKey

Rejestr

SZYFROGRAM

Rejestr

InvSubBytes

InvShiftRows

AddRoundKey

Rejestr

InvSubBytes

InvShiftRows

InvMixColumns

AddRoundKey

Rejestr

AddRoundKey

9 R

UN

D

TEKST JAWNY

128-bitowy blok danych (4 wiersze x 4 kolumny 8-bitowych słów)

Kodowanie 9 rund wykonywanych sekwencyjnie

Każda runda jest taka sama i składa się z operacji XOR, przesunięć, dodawań oraz operacji LUT (Look-Up Table)

Szybkość przetwarzania 128-bitów/takt zegara

15 krotne przyśpieszenie w porównaniu z Pentium4 3,2GHz

Page 9: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

9

Wyszukiwanie wzorców przeszukiwanie tekstu / baz danych

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

Dane

Wej.

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

Rejestr przesuwny

haszowanie

B

R

A

M

B

R

A

M

B

R

A

M Trafieni

e

•Algorytm – Filtr Bloom’a

•Szybkość przetwarzania ciągu

wejściowego: 1.6GB/s - na granicy

szybkości działania interface’u pamięci i

NUMAlink

• Wyszukiwanie nawet do 10000

wzorców równocześnie (duże

zrównoleglenie)

•200 krotne przyśpieszenie w porównaniu z Ithanium2 1,5GHz dla funkcji grep i ilości wzorców 50

Page 10: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

10

Funkcja: double exp(double)

63 bity + Mantysa (53 bitów) = 116 bitów

s mantysa eksponenta

Przesuwanie o 48, 32 lub 16 bitów

Sterowanie przesunięciem

Przesuwanie o 4, 8 lub 12 bitów

Przesuwanie o 1, 2 lub 3 bitów

Liczba stałoprzecinkowa 64-bit 1/ln(2)

X

ln(2) X

3 x 9 bit 52-27 bit

LUT LUT LUT

1+ x l. całkowita (11 bit)

X

X X

-

0 exponenta mantysa

normalizacja

Znak

Core services

Exp()

Exp()

64 bit 64 bit

MEM

1

16MB

NUMAlink

MEM

0

16MB

Xilinx Virtex-4 LX200

72

3.2 GB

128 bit

128 bit

72

3.2 GB

•2 funkcje exp() obliczane co takt zegara (200MHz)

•Tylko 10% zajętych zasobów układu FPGA – miejsce na dodatkowe funkcje

• 5 krotne przyśpieszenie w porównaniu z Pentium 4 2GHz

Page 11: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

11

Operacje algebry liniowej

64 bit

First Memory Interface

Second Memory Interface

MAC 1 MAC 2 MAC N

PAR2SER

FIFO 1

FIFO 2

FIFO N

128 bit

bank_sel

f_sel

Out I Out II

In In

OutA OutB

•Brak widocznej poprawy szybkości w porównaniu z procesorami ogólnego przeznaczania dla operacji mnożenia dodawania podwójnej precyzji

•Technologia FPGA może być ciągle opłacalna ze względu na dużo mniejsze zużycie mocy

•Optymalizacja modułów arytmetycznych oraz zmniejszenie szerokości bitowej może umożliwić uzyskanie przyśpieszenia

Page 12: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

12

Jaki typ obliczeń?•Skomplikowany kod programu

•Logiczne i przesunięcia bitowe

•Na liczbach całkowitych

•Na liczbach zmiennoprzecinkowych pojedynczej precyzji

•Na liczbach zmiennoprzecinkowych podwójnej precyzji:

•Mnożenie, dodawanie

•Dzielenie

•sqrt, sin, cos, exp, log

Page 13: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

13

Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej precyzji

Czy na pewno potrzebna jest podwójna precyzja?

Page 14: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

14

Przykład procesora GPU

Page 15: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

15

Schemat blokowy Radeon HD 4800

Page 16: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

16

Podwójna precyzja?

Przykład:

109 iteracji sumowania – liczba sumowań powyżej dokładności pojedynczej precyzji

Wniosek (firma ClearSpeed): konieczna podwójna precyzja.

Zmiana kolejności sumowań umożliwia zastosowanie pojedynczej precyzji

Podwójna precyzja Pojedyncza precyzja

Page 17: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

ClearSpeed Advance e710

Źródło: http://www.clearspeed.com/newsevents/presskit

Page 18: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

IBM QS22 (2 x PowerXCell)

Źródło: http://www-03.ibm.com/technology/resources/technology_cell_IDC_report_on_PowerXCell.pdf

Page 19: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

Porównanie teoretycznej wydajności

ClearSpeed Advance e710Radeon HD4870

FireStream 9270GeForce GTX280

QS22Intel Xeon X7350

AMD Opteron 8350

0

50

100

150

200

250

300

Teoretyczna szczytowa wydajność obliczeniowa

Wyd

ajn

ość

DP

[G

FLO

P/s]

Page 20: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

Porównanie zużycia mocy

ClearSpeed Advance e710Radeon HD4870

FireStream 9270GeForce GTX280

QS22Intel Xeon X7350

AMD Opteron 8350

0

50

100

150

200

250

300

Maksymalne zużycie mocy

Zu

życie

mo

cy

[W]

Page 21: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

21

Proces projektowania

Page 22: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

22

Podsumowanie

CPU

- Skomplikowany kod programu

- duży i niedeterministyczny dostęp do pamięci

- duża szybkość projektowania

FPGA

- prosty kod programu

- duża liczba przetwarzanych danych: bitowych, liczb całkowitych

- długi proces projektowania

GPU, PowerXCell

- operacje zmiennoprzecinkowe szczególnie pojedynczej precyzji

- relatywnie prosty kod programu, obliczenia SIMD

Page 23: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

Dziękuję za uwagę

Page 24: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

24

Platforma sprzętowa RASC (SGI)

Dwa układy FPGA Virtex4LX200

Komunikacja poprzez magistralę NUMALinks za równych zasadach jak z procesorem

Szybkość transmisji 3.2GB/s (w obie strony) w ramach magistrali NUMALinks i 2x3.2GB/s z pamięcią zewnętrzną 64 MB QDR SRAM

Page 25: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

25

Mitrion-C – przykład kodu

int:7[100] a = [1..100];

int:7[100] b = [2..101];

int:14[100] c = foreach (elmnt_a, elmnt_b in a, b)

elmnt_a * elmnt_b;

Page 26: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

26

FPGA a oszczędność energii

Dostarczanie energii oraz chłodzenie ośrodków

obliczeniowych stało się dużym wyzwaniem dla

większości organizacji. Od 2002 roku, średnia cena

energii elektrycznej wzrosła o około 5.5% rocznie i

ośrodki obliczeniowe wydają teraz około 0.5$ na energię

i chłodzenie w porównaniu z 1$ na zasoby sprzętowe.

Współczynnik ten będzie ciągle rósł.

Za pięć lat ośrodki obliczeniowe będą wydawały tyle

samo pieniędzy na zasoby sprzętowe co na energię

elektryczną i chłodzenie.Źródło: Eight Critical Forces Shape Enterprise Data Center Strategies, Part Two, by Rakesh Kumar, June 19,

2007, Gartner, Inc., ID Number: G00148349.

Page 27: Using standard hardware accelerators to decrease ... · •Mnożenie, dodawanie •Dzielenie •sqrt, sin, cos, exp, log. 13 Procesory graficzne Operacje zmiennoprzecinkowe pojedynczej

27

Podsumowanie

Układy FPGA w obliczeniach zdominowanych przez dane mogą zdecydowanie przyśpieszyć szybkość wykonywania obliczeń

Bardzo duży stopień zrównoleglenia i używanie architektury potokowej

Przyśpieszeniu może ulec tylko mały fragment kodu – czas rekonfiguracji układu FPGA wynosi 10-100ms.

Czym mniejsza szerokość bitowa zmiennych tym mniej zajmowanych zasobów FPGA - możliwość deklarowania obliczeń o dowolnej szerokości bitowej.

Zalecane jest używanie najpierw operacji bitowych, potem operacji stałoprzecinkowych, a jeżeli już zmiennoprzecinkowych to raczej pojedynczej precyzji

Układy FPGA zużywają około 2-10W mocy – dlatego mogą być ciągle zalecane przy obliczeniach zmiennoprzecinkowych podwójnej precyzji mimo tego że nie oferują dużego przyśpieszenia w porównaniu z procesorami ogólnego przeznaczenia