Karty graficzne

Nie tylko architektura x86

Od ponad dwóch lat, co jakiś czas, pojawiają się informacje dotyczące możliwości wykorzystania architektury procesorów ARM zaprojektowanych przez Nvidię w komputerach stacjonarnych, serwerach i superkomputerach. Chodzi tutaj o projekt Denver, który ma umożliwić Nvidii wejście na rynek przede wszystkim komputerów PC, w których wykorzystuje się procesory zintegrowane z modułem graficznym – tak jak ma to miejsce w układach Intela i AMD.

Pomysł ten wykorzystali hiszpańscy naukowcy z Barcelona Supercomputer Center, opracowując klaster wykorzystujący procesory ARM i akceleratory wyposażone w graficzno-obliczeniowe układy GPU. Informacje na temat tego eksperymentalnego klastra, po raz pierwszy publicznie przedstawione zostały właśnie na GTC 2013.

Zadaniem opracowanego w Barcelonie klastra było sprawdzenie możliwości współpracy pomiędzy procesorami ARM i architekturą GPU i określenie w rzeczywistości potencjału obliczeniowego tego typu architektury korzystającej z energooszczędnej architektury procesorów z prądożernymi akceleratorami obliczeniowymi. Projekt ten pod nazwą Tibadabo, był pierwszą przymiarką do tego, czy zbudowanie klastra obliczeniowego bazującego na architekturze ARM, wykorzystywanej na co dzień w telefonach i tabletach jest w ogóle możliwe, a jeśli tak, to czy istniejące oprogramowanie może być w takim klastrze wykorzystane oraz czy można różnego rodzaju istniejące aplikacje dostosować do pracy na tego typu klastrze, tak aby możliwa była na nim normalna, codzienna praca.

Naukowcom z Barcelona Supercomputer Center udało się skonstruować klaster mieszczący się w dwóch obudowach blade zawierających łącznie 32 serwery brzegowe, z których każdy wykorzystuje po osiem procesorów ARM. Serwery te stanowią łącznie 256 węzłów klastra, gdzie każdy węzeł składał się z dwurdzeniowego układu Tegra 2. Łącznie klaster zbudowany został z 512 rdzeni ARM.

Osobom pracującym nad projektem Tibadabo udało się przenieść „w miarę bezboleśnie” na klaster jedenaście aplikacji naukowych. Największym problemem było dostosowanie w aplikacjach procedur zarządzania hierarchicznie zorganizowaną pamięcią, tak aby programy te działały w sposób optymalny bez zbędnych opóźnień. Całość pracowała pod kontrolą systemu Linux Ubuntu.

Moc obliczeniowa klastra, jaką udało się osiągnąć wynosiła 512 GFLOPS-ów przy poborze mocy wynoszącej 3,4 KW, co dawało 0,15 GFLOPS na wat. Nie są to jeszcze zbyt imponujące rezultaty, gdyż na liście najbardziej energooszczędnych superkomputerów Green500, najlepsza maszyna na tej liście, Beacon – Appro GreenBlade GB824M z National Institute for Computational Sciences z Uniwersytetu Tennessee, uzyskuje 2,5 GFLOPS/W a ostatni na liście Cluster Platform 3000 DL165 z Financial Services Company 0,33 GFLOPS/W. Niemniej, założenia projektu związane z udowodnieniem możliwości stworzenia klastra bazującego na architekturze ARM zostały spełnione.

Kolejnym krokiem naukowców z Barcelony było zbudowanie klastra korzystającego z architektury ARM i CUDA. W projekcie tym pod nazwą Pedraforca wykorzystano platformę Carma. Carma to deweloperska platforma opracowana przez firmę Seco, która zawiera czterordzeniową jednostkę CPU Tegra 3 bazująca na rdzeniach ARM Cortex-A9 oraz jednostkę GPU Quadro 1000M z 96 rdzeniami CUDA (notebookowa architektura Fermi). Wybór platformy Cortex podyktowany był tym, że jest to pierwsza na świecie hybrydowa platforma łącząca w sobie rdzenie ARM i CUDA. Pojawiła się ona na rynku na początku 2012 roku.

Płyta główna z platformą Carma oprócz procesora Tegra 3 i układu graficznego Qadro 1000M zawiera 2 GB pamięci RAM dla CPU, 2 GB pamięci graficznej DDR3, cztery linie PCI Express łączące CPU z GPU, moduł sieciowy gibabit ethernet, interfejs SATA dla dysku twardego, trzy porty USB 2.0, oraz dwa lub trzy (w zależności od wersji) gniazda HDMI. System operacyjny dla platformy to Ubuntu Linux. Oprócz tego w zestawie Carma dostępne jest zestaw oprogramowania służący do pisania i obsługi dowolnego kodu CUDA. Sam zestaw powstał jako platforma deweloperska służąca do tworzenia aplikacji CUDA dla urządzeń wyposażonych w akceleratory GPU , wykorzystujących procesor bazujący na architekturze ARM, a więc z myślą o firmach produkujących oprogramowanie na tablety i smartfony. Wydajność platformy Carma wynosi 270 GFLOPS-ów w pojedynczej precyzji.

Na bazie Carmy udało zbudować się pierwszy na świecie klaster wykorzystujący architekturę ARM i CUDA. Do budowy wykorzystano 16 zestawów deweloperskich. Uzyskana moc obliczeniowa to 3,72 GLFOPS-ów, niemniej w przeliczeniu na jeden wat pobieranej mocy uzyskano 0,78 GFLOPS-a. Ograniczeniem systemu okazał się niewielki transfer danych do 400 MB/s poprzez magistralę PCI Express łączącą GPU z CPU na płycie głównej Carma oraz niepokrywanie się przesyłanych danych w danym cyklu z danymi potrzebnymi do obliczeń, co wprowadzało niepotrzebne puste cykle oczekiwania na niezbędne do dalszej pracy klastra informacje.

Obecnie zespół z Barcelony pracuje nad drugą wersją systemu Pedraforca – Pedraforca v.2. System ten będzie nie tyle akcelerowanym klastem, ale klastrem akceleratorów. W systemie tym rozdzielona zostanie cześć złożona z procesorów ARM od części GPU. Dzięki temu możliwy będzie transfer danych bezpośrednio pomiędzy poszczególnymi jednostkami GPU bez pośrednictwa CPU. System złożony zostanie na bazie modułów Tegra 3 Q7 (cztery rdzenie ARM Cortex-A9 taktowane zegarem 1,3 GHz), 2 GB pamięci DDR2, płyty głównej Mini ITX (4xPCIe, SATA 2.0, 1 GbE) dysków 2.5” SSD 250 GB SATA 3 MLC, akceleratorów Nvidia Tesla K20 oraz kontrolera Infiniband Mellanox ConnectX-3 o przepustowości 40 Gbit/s. Dzięki kontrolerowi magistrali Infiniband zapewniona będzie bezpośrednia transmisja danych pomiędzy poszczególnymi GPU. Prototyp systemu liczyć ma 64 węzły.