Układy FPGA w systemach obliczeniowych
Plan prezentacji Czym są FPGA ? Ogólne informacje na temat zastosowania układów FPGA w komputerowych systemach obliczeniowych Ideowa struktura systemu HPRC Współczesne rozwiązania sprzętowe HPRC dostępne komercyjnie Środowiska programistyczne dla systemów HPRC Układy FPGA vs procesory wielordzeniowe Potencjał układów FPGA w systemach HPRC Obszary ekspansji systemów HPRC Podsumowanie
Czym są FPGA (Field-Programmable Gate Array)
Czym są FPGA CLB(LB) – configurable logic block
Zastosowanie FPGA w komputerowych systemach obliczeniowych Elastyczność architektury Równoległość wykonywania operacji Rosnąca różnica pomiędzy prędkościami procesorów i pamięci(zwiększa się czas dostępu do pamięci) Łatwa rekonfiguracja (zwiększanie lub zmniejszanie określonych elementów logiki w zależności od potrzeb algorytmu) Bezpieczeństwo (np.odporność na ataki sieciowe) Rząd wielkości mniejsze zużycie mocy w porównaniu z procesorami (~10W vs ~100W)
Zastosowanie FPGA w komputerowych systemach obliczeniowych Potencjalnie pełne wykorzystanie powierzchni krzemowej (procesory – tylko około 10 %) Duże zasoby nowoczesnych układów programowalnych Zwiększające się prędkości zegara, dochodzące obecnie do 500 MHz (Xilinx Virtex 5, Atlera Stratix III) Dostępne są aplikacje umożliwiające pisanie kodu dla układów FPGA w języku opartym najczęściej na C lub C++ Inne podejście – dopasowanie sprzętu do algorytmu
Jednostki obliczeniowe z układami FPGA Pojawia się kwestia odpowiedniego środowiska zdolnego do podziału algorytmu na część sprzętową oraz programową. Ewentualne rozwiązanie może polegać na separacji algorytmu dokonywanej przez projektanta.
Ideowa struktura systemu HPRC Profil kodu Podział algorytmu Kompilacja Synteza + implementacja Część sprzętowa Część softwarowa Magistrala Komunikacyjna
Współczesne rozwiązania HPRC dostępne komercyjnie Cray XT4 Architektura XT4 opiera się na pojedyńczym PE (processing element) który może się składać z procesora AMD Opteron (jedno, dwu albo cztero rdzeniowy) lub układu FPGA wpinanego w gniazdo procesora. Elementy PE są bezpośrednio podłączone do pamięci. The Cray XT4 (codenamedHood during development) is an updated version of theCray XT3 supercomputer, which includes an updated version of the SeaStar interconnectrouter, processor sockets for Socket AM2 Opteron processors, and 240-pinunbuffered DDR2 memory. The XT4 also includes support for FPGA coprocessors that plug directly into the processor sockets. Otherwise, the interconnect, cabinet, system software and programming environment remain unchanged from the Cray XT3.
Współczesne rozwiązania HPRC dostępne komercyjnie Cray XT4 – komunikacja międzymodułowa
Współczesne rozwiązania HPRC dostępne komercyjnie Cray XT4 Architektura routera zapewnia komunikacje z prędkością 6,4 GB/s z sześcioma przylegającymi PE.
Współczesne rozwiązania HPRC dostępne komercyjnie Akcelerator z układem Xilinx Virtex-4 LX200 wpinany bezpośrednio w podstawkę procesora AMD Opteron -Socket 940. Płyta akceleratora zawiera również kontroler pamięci oraz 2 GB DDR2. Dostęp do pamięci z prędkością 14,4 GB/s.
Współczesne rozwiązania HPRC dostępne komercyjnie Cray XT4 – wizualne środowisko monitorowania zasobów PE
Współczesne rozwiązania HPRC dostępne komercyjnie Od 16 do 512 procesorów Max. 256 układów programowalnych (256 Virtex-4 LX200) - 128 TB pamięci SGI Altix-4700
Współczesne rozwiązania HPRC dostępne komercyjnie SGI NUMAlink – magistrala komunikacyjna
Współczesne rozwiązania HPRC dostępne komercyjnie SGI RASC RC100 Blade
Współczesne rozwiązania HPRC dostępne komercyjnie SGI RASC RC100 Blade
SGI Współczesne rozwiązania HPRC dostępne komercyjnie Programowanie FPGA z wykorzystaniem języków opisu sprzętu.
SGI Współczesne rozwiązania HPRC dostępne komercyjnie Programowanie FPGA z wykorzystaniem narzędzi wysokiego poziomu.
Współczesne rozwiązania HPRC dostępne komercyjnie SRC Computers SRC-7 Hi-Bar Switch
Współczesne rozwiązania HPRC dostępne komercyjnie SRC Computers SRC-7 MAP
Współczesne rozwiązania HPRC dostępne komercyjnie DRC Computer Corp.
Współczesne rozwiązania HPRC dostępne komercyjnie DRC Computer Corp.
Współczesne rozwiązania HPRC dostępne komercyjnie DRC Computer Corp.
Współczesne rozwiązania HPRC dostępne komercyjnie XtremeData XD1000™ FPGA COPROCESSOR MODULE for SOCKET 940
Współczesne rozwiązania HPRC dostępne komercyjnie XtremeData XD1000™ FPGA COPROCESSOR MODULE for SOCKET 940
Współczesne rozwiązania HPRC dostępne komercyjnie XtremeData XD1000™ FPGA COPROCESSOR MODULE for SOCKET 940
Środowiska programistyczne dla systemów HPRC Mitrion-C Impuls C SRC Carte Prace Xilinx’a nad nowym środowiskiem
Środowiska programistyczne dla systemów HPRC - przykład Mitrion – C Podstawowa składania jest taka sama jak dla języka C – {},=,if, for, while .. Nie występują wskaźniki Brak możliwości dynamicznego przydzielania pamięci Zmienne mogą mieć nadaną wartość tylko raz (wynika z równoległości interpretacji zapisu kodu) Występują listy interpretowane jako implementacja potokowości Wszystkie funkcje są wywoływane przez wartość oraz są typu inline (brak rekurencji)
Przykład Zmienne wewnątrz pętli przypisywane w jednym czasie int:25 i = 2; int:25 s = 3; int:25 sum = while(i < q){ s = i * s; // s is assigned 2 * 3 in first iteration i = s + i; // i is assigned 3 + 2 in first iteration } s;
Układy FPGA vs procesory wielordzeniowe Pytanie to można rozbić na szereg drobniejszych zagadnień. Czy układy FPGA mogą dostarczyć o rząd wielkości większą moc obliczeniową dla operacji DP FP ? Czy programowanie systemów HPRC może być bardziej „przyjazne” (nie będzie konieczna znajomość HDL)? Czy istnieje możliwość usunięcia wąskich gardeł w transferach danych pomiędzy elementami obliczeniowymi, pamięciami oraz układami IO (układy FPGA wtedy są w stanie wykorzystać w pełni swój potencjał) ? Duża część rozwiązań HPRC narzuca ściśle określone częstotliwości sygnału zegarowego jakim mogą być taktowane FPGA w systemie co ogranicza potencjalna wydajność systemu. Czy można rozluźnić to kryterium ? Czy wraz ze wzrostem pojemności FPGA będzie rosła trudność zapewnienia skalowalności systemów HPRC ? Jak będzie następował rozwój wielu nowoczesnych gałęzi przemysłu (np. biotechnologia, genetyka) które korzystając z mocy obliczeniowej systemów HPRC wydatnie przyczyniają się do ich dynamicznego rozwoju ?
Potencjał układów FPGA w systemach HPC Efektywność przyspieszenia
Potencjał układów FPGA w systemach HPC Quantum Monte Carlo 7x (Intel Xeon 2.4 GHz, Xilinx Virtex 4) Genome Sequncing FPGA speedups of 50X (Virtex-II Pro 50) and 100X (Virtex-4 LX160) over a 2.2 GHz Opteron
Potencjał układów FPGA w systemach HPC Hardware Accelerated Scalable Parallel Random Number Generators, Xilinx Virtex II Pro FPGAs introduces 4-15 times speedup over 2.8GHz Pentium 4 processors Hardware Acceleration of the 3D Discrete Element Method 34 times speedup , dual core, 2.80GHz P4 vs Xilinx Virtex 4
Obszary ekspansji systemów HPRC Meteorologia Dynamika płynów Biologia, genetyka Chemia teoretyczna Analiza obrazu Finanse
Podsumowanie Rozwój HPRC można obecnie porównać do stanu zaawansowania systemów HPC przed 15 laty. Nieodzowne wydaje się stworzenie wygodnego narzędzia programistycznego oraz wprowadzenia ujednoliconego standardu rozwiązań (np.interfejsów, bibliotek itp.). Początki prac są już widoczne (np. OpenFPGA).
Szacunkowe koszty akceleracji Na postawie operacji MAC
Szacunkowe koszty akceleracji Na postawie operacji MAC