Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH



Podobné dokumenty
Úvod do GPGPU J. Sloup, I. Šimeček

GPGPU. Jan Faigl. Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

GPU A CUDA HISTORIE GPU CO JE GPGPU? NVIDIA CUDA

Jiné výpočetní platformy J. Sloup, M. Skrbek, I. Šimeček

Část 4 NOVÉ RYSY CUDA, NOVINKY V OBLASTI NÁSTROJŮ PRO CUDA

Paralelní a distribuované výpočty (B4B36PDV)

Jedna z nejdůležitějších součástek počítače = mozek počítače, bez něhož není počítač schopen vykonávat žádné operace.

Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru

Elektrická měření 4: 4/ Osciloskop (blokové schéma, činnost bloků, zobrazení průběhu na stínítku )

Optimalizace pomocí icc/gcc - vektorizace

GPU a CUDA. Historie GPU. Co je GPGPU? Nvidia CUDA

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

C2115 Praktický úvod do superpočítání

REALIZACE SUPERPOČÍTAČE POMOCÍ GRAFICKÉ KARTY

CUDA SDK Compiler (front/back end k existujícímu C/C++ kompilátoru) Debugger Profiler Knihovny např.: Cublas Cufft Curand Velký balík ukázkových příkl

Space dimension : 3D RF Module, Electromagnetic Waves, Eigenfrequency analysis

Povídání na téma SUPERPOČÍTAČE DNES A ZÍTRA

CUDA J. Sloup a I. Šimeček

Návod na použití FEM programu RillFEM Jevy na chladiči

Algoritmizace a programování

Od lineárních rovnic k extrémním superpočítačovým úlohám. Vít Vondrák

Knihovny pro CUDA J. Sloup a I. Šimeček

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Paralelní a distribuované výpočty (B4B36PDV)

OPERAČNÍ SYSTÉMY MS-DOS

Úvod do OpenMP. Jiří Fürst

Tekla Structures Multi-user Mode

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Grid jako superpočítač

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

1.11 Vliv intenzity záření na výkon fotovoltaických článků

Algoritmizace a programování

Mikroprocesor Intel 8051

Rozdělení metod tlakového odporového svařování

Nabídka seminářů Finanční gramotnost

Úvod do programování a práce s počítačem

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

3. Restrukturalizace nebo manipulace s údaji - práce s rastrovými daty

22 Cdo 2694/2015 ze dne Výběr NS 4840/2015

Dodávka tabletů VYZÝVÁ. k předložení nabídky k výše uvedené veřejné zakázce malého rozsahu za podmínek uvedených dále.

Digitální učební materiál

Nvidia CUDA Paralelní programování na GPU

19 Jednočipové mikropočítače

Analýzy v GIS. Co se nachází na tomto místě? Kde se nachází toto? Kolik tam toho je? Co se změnilo od? Co je příčinou? Co když?

Měření ph látek pomocí čidla kyselosti ph

Architektura procesoru Athlon 64 X2

Uživatelský manuál pro práci se stránkami OMS a MS provozované portálem Myslivost.cz. Verze 1.0

Profilová část maturitní zkoušky 2015/2016

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paralelní a distribuované výpočty (B4B36PDV)

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

PROCESORY. Typy procesorů

Část 1 ZÁKLADNÍ RYSY VÝPOČETNÍ PROSTŘEDKŮ DOSTUPNÝCH NA IT4INNOVATIONS

Návod k obsluze programu ERVE4

1.3 Druhy a metody měření

Vyuºití GPGPU pro zpracování dat z magnetické rezonance

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Efektivní vyuºívání programových nástroj Ansys na infrastrukturách MetaCentra / CERIT-SC

PROUDĚNÍ V SEPARÁTORU S CYLINDRICKOU GEOMETRIÍ

STAGE DESK-16 16kanálový dimmer ovladač UŽIVATELSKÁ PŘÍRUČKA

ČESKÁ TECHNICKÁ NORMA

Pokročilé architektury počítačů

Karel Johanovský Michal Bílek. Operační paměť

Architektura grafických ip pro Xbox 360 a PS3

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Servery s Xeon E3-1200v2 Nové servery s procesory IvyBridge Inte Xeon E3-1200v2

GPU a CUDA. Historie GPU. Co je GPGPU? Nvidia CUDA

Jednotný vizuální styl: podpis v ové korespondenci.

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Zoner Photo Studio

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Operace nad celými tabulkami

Profilová část maturitní zkoušky 2015/2016

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

Repeatery pro systém GSM

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

Základní rutiny pro numerickou lineární algebru. I. Šimeček, M. Šoch

Hra Života v jednom řádku APL

Pokročilé architektury počítačů

Vektorové mapy. Ing. Martin Bak, vedoucí týmu vývoje

ODBORNÝ POSUDEK. č. 2381/21/14

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

Paralelní architektury se sdílenou pamětí

AKCELERACE EVOLUCE PRAVIDEL CELULÁRNÍCH AUTOMATŮ NA GPU

ODBORNÝ POSUDEK. č. 2661/108/15

Příručka pro uživatele ČSOB InternetBanking 24 a ČSOB BusinessBanking 24 Online s čipovou kartou v operačním systému Mac OS X

Daniel Velek Optimalizace 2003/2004 IS1 KI/0033 LS PRAKTICKÝ PŘÍKLAD NA MINIMALIZACI NÁKLADŮ PŘI VÝROBĚ

Generátor sítového provozu

Zvyšování kvality výuky v přírodních a technických oblastech CZ.1.07/1.128/ Nástrahy virtuální reality (pracovní list)

Osciloskopy. Osciloskop. Osciloskopem lze měřit

Pokyny k vypracování absolventské práce ZŠ a MŠ Kladno, Vodárenská 2115

Analýza variance (ANOVA) - jednocestná; faktor s pevným efektem; mnohonásobná srovnání

Charakteristika dalších verzí procesorů v PC

Datové struktury. Zuzana Majdišová

TECHNICKÉ KRESLENÍ A CAD

3 nadbytek. 4 bez starostí

Problematika měření velkých průměrů v pracovních podmínkách

Regulovaný vysokonapěťový zdroj 0 až 30 kv

Transkript:

Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH

Paralelizace kódu Rozdíl v přístupu k paralelizaci kódu si ukážeme na operaci násobení matice maticí: Mějme tři čtvercové matice A, B a C uložené v 2D polích Řád všech matic je size. Matice A a B vynásobíme do matice C tak, že do každého prvku C[i][j] přiřadíme hodnotu skalárního součinu i-tého řádku z matice A a j-tého sloupce z matice B. 2

Násobení matic (sekvenční kód) for(row = 0; row < size; row++) { }} for (column = 0; column < size; column++) { pom= 0; for(int position = 0; position < size; position++) { pom + = MA[row][position] * MB[position][column];} MC[row][column]=pom; Složitost je O(size^3) Úvaha: Každý prvek výstupní matice C je počítán nezávisle. Pak pro maximální míru paralelismu je dobré pro každý prvek vytvořit vlastní vlákno, které vypočítá jeho hodnotu. To znamená vynásobí řádek matice A sloupcem matice B. 3

Násobení matic ( pomocí OpenMP) #pragma parallel for numthreads(size*size) schedule(static,1) \ shared(a, B, C, size) private(column, row, position) collapse(2) for(row = 0; row < size; row++) { for (column = 0; column < size; column++) { pom=0; for(int position = 0; position < size; position++) { pom+ = MA[row][position] * MB[position][column];} MC[row][column] = pom; }} 4

Násobení matic (GPU kód) void kernel (int row, int column) { int position ; float pom=0.0; for(int position = 0; position < size; position++) { pom += MA[row][position] * MB[position][column]; MC[row][column]=pom;} void main() { Nakopíruj data (matice A a B) z hlavní paměti do paměti GPU. Spusť size*size vláken (instancí kernelu) s příslušnými parametry row a column. Nakopíruj data (matice C) z paměti GPU do hlavní paměti. } Zajímavé je, že se ztratily dva for cykly. 5

Násobení matic (CPU) - závěry CPU verze má problémy s vytvoření velkého počtu vláken (stovky až tisíce). Výpočet má příliš velkou granularitu, paralelizace nepokryje režii tvorby, synchronizace a zániku vláken. Na CPU je nejefektivnější (u úloh tohoto typu) vytvářet počet vláken rovný počtu fyzických jader. To znamená neparalelizovat výpočet na úrovni prvků matice C, ale na úrovni bloků for cyklu pro proměnou row (cyklus nejvíce vně). Výkon upravené CPU verze není velký (toto je způsobeno naivní implementací), ale zrychlení je lineární. 6

Násobení matic (GPU) - závěry GPU verze nemá (díky HW akceleraci) problémy s vytvoření velkého počtu vláken (stovky až tisíce). Další zjemňování nemá smysl, ale nemá velký dopad na výkon. Výkon této GPU verze není velký, toto je způsobeno naivní implementací. 7

ANSYS Mechanical V145sp-5 and Xeon Phi It supports only SMP in ANSYS Mechanical DMP support is part of the Intel MKL roadmap. Figure 1: Best run times for ANSYS Mechanical on V145sp-5 With two cores, the Intel Xeon Phi coprocessor provided a nearly 2X performance improvement over the baseline.

ANSYS Mechanical V145sp-5 and Xeon Phi With only two licensed CPU cores and the Intel Xeon Phi coprocessor (which counts as a third core for license purposes), the benchmark ran 1.72x faster with Intel Xeon Phi coprocessor support.

ANSYS and CUDA NVIDIA GPUs support the following products: Mechanical: ANSYS Mechanical 15.0 supports a full feature set including use on multiple GPUs. Fluids: ANSYS Fluent 15.0 offers GPU support for pressure-based coupled solver and for radiation heat transfer models. ANSYS Nexxim 15.0 supports a full feature set; ANSYS HFSS supports transient solver in 15.0.

ANSYS and CUDA

ANSYS and CUDA

LU factorization (Xeon Phi, MKL DGETRF)

MMM (Xeon Phi, MKL)

cublas K40m: max. perf. 4.3 Tflops for SP and 1.3 Tflops for DP (GEMM= MMM, SYMM=MMM for symmetric matrix, TRSM= solves a triangular matrix equation, SYRK = a symmetric rank-k update)

cublas vs MKL cublas on K40m, ECC ON, input and output data on device. MKL 11.0.4 on Intel IvyBridge single socket 12 - core E5-2697 v2 @ 2.70GHz???? operace

cusolver Dense vs. MKL

cusparse: Sparse linear algebra 4x Faster than MKL routines Optimized sparse linear algebra BLAS routines for matrix-vector, matrix-matrix, triangular solve Support for variety of formats (CSR, COO, block variants) Incomplete-LU and Cholesky preconditioners New in CUDA 7.0: Graph Coloring

cusolver Sparse QR

NPP Speedup vs. Intel IPP

cudnn Version 2

SI porovnání architektur CPU +silné 1 vlákno - nejnižší max. výkonnost -- SIMD + uniformita vláken - režie synchro Xeon Phi +-slabší 1 vlákno ++ vyšší max. výkonnost - SIMD + uniformita vláken - režie synchro - vlastní paměť + paměť rychlejší + cache srovnatelná ++ možno efektivně použít OpenMP +++ jednodušší portace GPU --slabé 1 vlákno +++ nejvyšší max. výkonnost? SIMT - nutno rozdělit na bloky vláken + synchronizace / komunikace v bloku - synchronizace / komunikace mimo blok - vlastní paměť + paměť rychlejší - Nutnost CUDA