ACK CYFRONET AGH
AGH


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


  1. RASC
  2. Architektury dedykowane
  3. Układy FPGA
  4. Rekonfigurowalne Systemy Obliczeniowe
  5. HPRC
  6. 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:
  1. 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.

  2. 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