2010-03-21
Migracja serwera Kinga...
Więcej »
2010-03-17
Profesor Michał Turała w europejskim komitecie EGI-EB...
Więcej »
2010-01-20
Konkurs na pracę doktorską...
Więcej »
|
 |
|
Platforma Rekonfigurowalna
Platforma Obliczeń Rekonfigurowalnych RASC
- RASC
- Architektury dedykowane
- Układy FPGA
- Rekonfigurowalne
Systemy Obliczeniowe
- HPRC
- Kontakt
Oferta obliczeniowa Cyfronetu wykracza poza klasyczne rozwiązania
obliczeniowe.
Oprócz rozwiązań typu SMP i gridowego centrum posiada również platformę
RASC (ang. Reconfigurable Application Specific
Computing) służącą do prowadzenia obliczeń w oparciu o
architektury dedykowane.
Oferowana w Cyfronet platforma RASC RC 100 daje
użytkownikowi możliwość budowy własnej dedykowanej do realizowanego zadania
struktury obliczeniowej. Dzięki temu w szeregu przypadków można
uzyskać kilku do kilkunastokrotne przyśpieszenie prowadzonych obliczeń.
Wyżej wymieniony moduł jest częścią systemu SMP Altix 4700. Praca
modułu opiera się na układach FPGA o
wielkiej pojemności. Dzięki modułowi zainstalowany w Cyfronet system
daje możliwość prowadzenia obliczeń w oparciu o w pełni rekonfigurowalny system
obliczeniowy.
Systemy rekonfiurowalne tego typu znajdują coraz większe zastosowanie w
obliczeniach naukowo-technicznych HPC. Tworząc tym samy tzw. High Performance Reconfigurable Computing.
Programowanie rekonfugurowalnej struktury odbywa się za pośrednictwem
języka opisu sprzętu lub języka wysokiego poziomu typu 'C'.
Zainteresowanych wykorzystaniem nowej platformy prosimy o kontakt.
RASC
SGI® RASC™ (Reconfigurable Application Specific Computing) wykorzystuje
możliwości jakie dają układy FPGA w zakresie rekonfigurowalności
struktury obliczeniowej systemu w taki sposób, aby zaoferować
użytkownikowi maksymalną możliwą wydajność, zoptymalizowaną pod kątem
wykonania jednego specyficznego algorytmu. W przeciwieństwie do
procesorów ogólnego zastosowania, które z natury zwojej wykonują
program
sekwencyjne, układy FPGA realizują operację przy pomocy niskopoziomowej
równoległości.
W przypadku aplikacji, które większość czasu pracy spedędzaja wykonując
niewielki fragment kodu odpowiednio zaprogramowany moduł RASC może
dramatycznie przyśpieszyć czas wykonania zadania.
SGI® RASC™ RC100 Blade
- Dual Virtex 4 LX200 FPGAs
- 80MB QDR SRAM
- Blade or rack-mountable form factor
- Dual NUMAlink™ 4 ports
- Seamless direct attach to server's shared memory fabric
- Datasheet (PDF 140K)
Architektury
dedykowane
Budowa dedykowanej architektury (tzw. sprzętowa implementacja
algorytmów) jest sposobem na przyśpieszenia pracy programu
komputerowego. Jest ona osiągana poprzez odpowiednie dobranie
architektury realizującej dany algorytm. Jeżeli architektura procesora
jest stała, jedynym sposobem na przyśpieszenie realizacji programu jest
takie napisanie programu, aby jak najlepiej wykorzystywał wbudowane
możliwości procesora. Na przykład, programista piszący program (lub
bezpośrednio kompilator) powinien unikać realizacji obliczeń na blokach
danych większych niż rozmiar pamięci cache procesora, a jeżeli taka
koniecznośc istnieje podzielić duże tablice na tablice mniejsze i
realizować zadanie mniejszymi porcjami danych.
Z drugiej strony jeżeli to architektura procesora, a nie program jest
modyfikowana tak, aby
szybciej realizować pewne określone instrukcje, wtedy mówimy o
sprzętowej akceleracji algorytmu. W przypadku procesorów ogólnego
zastosowania, oznacza to, że architektura jest dostosowana do
efektywnej
i szybkiej realizacji operacji, które stanową pewne typowe instrukcje,
wspólne i często pojawiające się dla szeregu algorytmów. Taką operacją
jest na przykład operacja pomnóż-i-dodaj (MAC; ang. multiply and
accumulate). Jest ona szeroko wykorzystywana w operacjach algebry
macierzy, przetwarzania sygnałów i przetwarzania obrazów. Współczesne
procesory ogólnego stosowania dzięki dostosowaniu architektury do
szybkiej realizacji operacji MAC są wydajną platformą na przykład do
operacji mnożenia macierzy. Z kolei programiści, dążąc do napisania
efektywnego kodu starają się tak tylko jak to możliwe wykorzystywać
operację MAC przy realizacji szerokiej gamy algorytmów (akceleracja
softwarowa). Operacja MAC to
przykład w jaki architektura procesora może wspierać wykonanie
wybranych operacji.
Ze względu na różnorodność stosowanych algorytmów procesory ogólnego
stosowania mogą wspierać tylko niektóre z nich. Zawężając klasę
rozważanych algorytmów (np. tylko do algorytmów przetwarzania sygnałów)
zwiększamy możliwości stosowania techniki akceleracji sprzętowej.
Podobieństwo algorytmów powoduje podobne wymagania co do architektury
stosowanegho procesora. Można wtedy budować strukturę dedykowaną do
realizacji określonych zadać. Można podać dwa przykłady takiego
podejścia:
- Procesor ClearSpeed.
Firma ClearSpeed dostarcza
procesory zaprojektowane z myślą o
przyśpieszeniu typowych obliczeń HPC. Procesor CSX600 z rodziny
ClearSpeed oferuje 30GFLOP ciągłej mocy obliczeniowej podwójnej
precyzji. Dzięki specjalizacji
zastosowania, produkowany w technologii 65nm przekracza moce
obliczeniowe oferowane przez procesory ogólnego zastosowania
produkowane w tej samej technologii. W porównaniu z nimi procesory
ClearSpeed są pozbawione części typowych elementów wchodzących w skład
procesorów ogólnego zastosowania, a nie mających bezpośredniego udziału
w realizacji obliczeń arytmetycznych. Dodatkowa
logika sterujaca jest w CSX600 zredukowana do minimum. Dzięki temu
układ może oferować 96 elementów wykonawczych PE (ang. Processing
Elements). Oferowana moc obliczeniowa była możliwa do osiągnięcia
dzięki zastosowaniu architektury SIMD (ang. Single Instruction Multiple
Data) Oznacza to, że procesor może wykonywać tą samą operację dla 96
argumentów danych równocześnie. Dla wielu algorytmów jest to
ograniczenie, ale w szczególnych przypadkach algorytmów HPC może być z
powodzeniem wykorzystywane. Procesor ClearSpeed z powodzeniem realizuje
matematyczne operacje zmiennoprzecinkowe podwójnej precyzji z zakresu
algebry liniowej, FFT, obliczeń falkowych, cyfrowego filtrowania
sygnałów, które mogą z natury być realizowane potokowo i równolegle.
Warto podkreślić, że zużycie mocy procesora CSX600 to około 30W.
Obniżone zapotrzebowania na moc elektryczną to również typowa cecha
obliczeń opartych o architektury dedykowane.
- Procesory graficzne
Złożoność obliczeniowa algorytmów grafiki trójwymiarowej
wykorzystywanej w komputerach PC skłoniła konstruktorów sprzętu do
opracowania specjalnych rozwiązań sprzętowych zdolnych do tworzenia
obrazów trójwymiarowych wydajniej i szybciej niż procesor główny
komputera. Procesory graficzne są bardzo dobrym przykładem korzyści
płynących z zastosowania techniki akceleracji sprzętowej. Procesory
graficzne mogą bardzo szybko wykonywać takie operacje jak rendering,
obliczenia geometryczne, generowanie tekstur i efektów światłocienia.
Dzięki szybkości przetwarzania tych algorytmów animacje wyglądają
bardzo realistycznie. Z drugiej strony szczególne, dedykowane
zastosowanie pozwoliło na implementację operacji tylko i wyłącznie
pojedynczej precyzji. To właśnie pozwala na zwielokrotmnienie zasobóew
obliczeniowych przy wykorzystaniu tej samej powierzchni półprzewodnika.
Technika akceleracji sprzętowej jest korzystna ze względu na większą
moc obliczeniową hardwaru i mniejsze zapotrzebowanie na zużywaną
energię elektryczną.
Jakie są zatem powody, że nie jest ona stosowana powszechnie,
zastępując procesory ogólnego stosowania. Przyczyną tego są wysokie
koszty stosowania dedykowanego sprzętu. Mają one źródła w kosztach
projektowania i kosztach wytwarzania układów półprzewodnikowych. Droga
od pomysłu do elementu półprzewodnikowego składa się z szeregu kroków:
modelowania funkcjonalnego, weryfikacji modelu, projektowania
struktury, symulacji modelu, produkcji prototypu i testowania.
Wymienione kroki są powtarzane wielokrotnie, aż do spełnienia
postawionych układowi wymagań. Wspomniane etapy są oczywiście bardzo
drogie. Na przykład koszt wytworzenia kompletu masek technologicznych
koniecznych do wytworzenia struktury półprzewodnikowej to 1 milion
dolarów w nowoczesnej technologii 65nm. Wymienione wyżej koszty
składają się na kwotę konieczną do zainwestowania w celu wytworzenia
pierwszego układu scalonego (tzw. NRE-Cost). W ostatecznym rachunku
jest on dzielony pomiędzy wszystkie wyprodukowane i sprzedane układy.
Wynika z tego, że tylko układy, które mają szansę na znalezienie
masowego odbiorcy będą opłacalne w produkcji. Wracając do akceleracji
sprzętowej, aby dany algorytm mógł być implementowany w dedykowanym
sprzęcie musi być masowo wykorzystywany.
Drugim sposobem na zastosowanie akceleracji sprzętem jest obniżenie
kosztu NRE. Jest to możliwe na przykład dzięki wykorzystaniu
technologii FPGA.
Układy FPGA
Bramki logiczne są podstawowymi elementami z których budowane są układy
cyfrowe. Bramki są prostymi funktorami które,
realizują najprostsze operacje logiczne, takie jak: NOT, AND, OR.
Bramki są budowane z tranzystorów. Podstawowe elementy architektury
obliczeniowej jak: rejestry, układy dodające i mnożące zbudowane
są właśnie z
bramek logicznych.
Takie układy cyfrowe jak mikroprocesory często klasyfikowane są jako
układy
typu full-custom. Oznacza to,
że cały proces ich projektowania przebiegał począwszy od "czystej"
struktury półprzewodnikowej. Technologia full-custom jest najdroższa z
wszystkich możliwych. ponieważ wymaga przeprowadzenia kompletnego,
zawierającego wszystkie kroki procesu wytwarzania. Z tego powodu tego
typu podejście stosuje się tylko w przypadku spodziewanego bardzo
dużego wolumenu sprzedanych układów scalonych.
W przypadku nieopłacalności
stosowania technologii full-custom
można próbować zastosować technologię semi-custom.
W technologii semi-custom
część procesu wytwarzania jest dzielona pomiędzy układy różnych typów,
zmniejszając tym samym koszt NRE przypadający na pojedynczy układ
scalony. Istnieje wiele technologii typu semi-custom. Jedną z popularnych
jest technologia MPGA (ang. Mask Programmable Gate Array). W MPGA do
realizacji nowych układów scalonych używane są wstępnie przygotowane
struktury półprzewodnikowe z już zrealizowanymi, lecz niepołączonymi
bramkami logicznymi. Krokiem koniecznym do zrealizowania nowego układu
scalonego jest wykonaie połączeń poprzez naniesienie, przy pomocy
maski, połączeń pomiędzy bramkami. Stąd pochodzi nazwa technologii: mask progrmmable.
W latach 80-tych pojawiła się technologiia która oferuje najniższe
możliwe koszty NRE. Oferuje ona gotowe bramki logiczne wraz z już
zrealizowaną, lecz rekonfigurowalną siecią połączeń pomiędzy nimi. Tak
pojawiły się układy FPGA (ang. Field
Programmable Gate Arrays). W przeciwieństwie do MPGA gdzie
proces konfiguracji połączeń musiał być realizowany w fabryce, w FPGA
konfiguracja połączeń może być realizowana samodzielnie przez
użytkownika. Odbywa się ona poprzez zapisanie do układu odpowiedniego
pliku konfigurującego, podobnie jak to ma miejsce w przypadku zapisania
danych do pamięci półprzewodnikowej. Każdy bit zapisywanych danych
konfiguruje odpowiadający klucz przełączający w sieci połączeń. Proces
projektowania jest dzięki temu rozwiązaniu znacznie tańszy, a także
szybszy ponieważ unika się wielu tradycyjnych kroków projektowania. Co
więcej, układy FPGA mogą być konfigurowane wielokrotnie. Po wyłączeniu
zasilania ich konfiguracja wraca do pierwotnego stanu. Dzięki temu
pojedynczy chip FPGA może naprzemiennie pracować z różnymi
konfiguracjami zastępując wiele innych układów scalonych.
Projektowanie struktury układów FPGA może odbywać się przy użyciu
języków programowania o składni podobnej do skłądni języka 'C'.
Rekonfigurowalne
Systemy Obliczeniowe
Najlepszym rozwiązaniem pozwalającym na czerpanie korzyści ze
sprzętowej akceleracji jest budowa systemu wyposażonego w procesor
ogólnego zastosowania i układ rekonfigurowalny FPGA. Technologia FPGA
oferuje mniejszą wydajność (mniej zasobów i mniejsze częstotliwości
zegara) niż technologia full-custom,
czy nawet semi-custom.
Gotowość na dowolną
konfugurację jest w FPGA okupiona mniejszą czestotliwością zegara i
mniejszą liczbą bramek. Dlatego nie jest opłacalne stosowanie FPGA w
tych obszarach gdzie można znaleźć dedykowane rozwiązania full-custom.
W proponowanym tandemie FPGA i procesor ogólnego stosowania FPGA pełni
rolę koprocesora. Jest to oczywiście rozwiązanie znane, ale w
proponowanym przypadku mamy do dyspozycji koprocesor o
rekonfigurowalnej strukturze gotowy do przyśpieszania wybranego w danej
chwili zadania.
Zdolność przyśpieszania obliczeń w FPGA wynika z niskopoziomowej
równoległej realizacji obliczeń. FPGA mogą być użyte do zbudowania
dedykowanej ścieżki przepływu danych algorytmu bez konieczności
każdorazowego pobierania i dekodowania instrukcji tak jak w procesorze
ogólnego zastosowania. Możliwe jest również dobranie architektury do
stosowanej w algorytmie reprezentacji danych, co pozwala na lepsze
wykorzystanie zasobów układu.
HPRC
Coraz większe zasoby obliczeniowe oferowane przez układy FPGA
umożliwiły efektywne ich wykorzystanie w obliczeniach wielkiej skali.
Również rozwój narzędzi służących do projektowania przyczynił się do
upowszechnienia FPGA w HPC. Obecnie tworzenie struktury dedykowanego
procesora sprzętowego w FPGA coraz bardziej przypomina programowanie
softwaru niż projektowanie sprzętu.
Konwencjonalne procesory sa bardzo wydajne w realizowaniu szeregu
często wykonywanych operacji. Dla takich operacji stosowanie układów
FPGA nie jest opłacalne. Istnieje jednak wiele algorytmów, które nie
pasują do struktury procesorów ogólnego stosowania, na przykład pod
względem reprezentacji danych czy typu wykonywanych operacji.
Przykładem mogą być dane o reprezentacji 1-bitowej i operacje typu
logicznego. Takie aplikacje, które dodatkowo dają możliwość
równoległego prowadzenia obliczeń są idealnymi kandydatami do
akceleracji przy pomocy układów rekonfigurowalnych. Algorytmy idealnie
nadające się do FPGA to algorytmy przetwarzania danych o charakterze
lokalnym, nie wymagajace dużego transferu danych do i z procesora.
Do tej pory z sukcesem zastosowano układy rekonfigurowalne w wielu
dziedzinach HPC:
- algorytm Smith-Waterman. Dzięki wykorzystaniu FPGA uzyskanom
przyśpieszenia 50 krotne. Algorytm Smith'a-Watermana służy do
porównywania sekwencji DNA ze znanymi i juz opisanymi genami,
- w sejsmografii. Przyśpieszenie 17 krotne procesu porównywania
przebiegów z czujników z wzorcami,
- w symulacj ruchu drogowego uzyskano 300 krotne przyśpieszenie na
układzie FPGA VirtexII (XC2V6000) w porównaniu do procesora Xeon 1,7GHz
- w farmacji. Przyśpieszenie 200 krotne w algorytmie poszukiwania
podobieństw czasteczek z cząsteczkami znajdującymi się w bazie danych
(w porównaniu z 3.2GHz CPU).
Kontakt
Zespół Akceleracji Obliczeń ACK Cyfronet:
- prof. dr hab. Kazimierz Wiatr
- dr inż. Pawel Russek email: russek@agh.edu.pl
tel. 12 617 27 92
- dr inż. Ernest Jamro email: jamro@agh.edu.pl
- mgr inż Maciej Wielgosz
- mgr inż Marcin Janiszewski
- inż Krzysztof Machaczek
|