r   e   k   l   a   m   a
r   e   k   l   a   m   a

Superkomputerowa Inicjatywa Boltzmana: karty AMD uruchomią kod CUDA Nvidii

Strona główna AktualnościOPROGRAMOWANIE

Artysta postawiony w obliczu śmierci głodowej tworzy często dzieła najlepsze – to spostrzeżenie ze świata sztuki zaczyna mieć także swoje przełożenie na branżę półprzewodnikową. Pogrążone w finansowym kryzysie od wielu kwartałów AMD zaczyna robić rzeczy pomysłowe i niezwykłe, jakby chcąc udowodnić za wszelką cenę, że świat komputerów bez czerwonych byłby o wiele uboższy. Kolejnym takim dowodem jest nowa inicjatywa firmy, nosząca nazwisko Ludwiga Boltzmanna, ojca termodynamiki i mechaniki statystycznej. W sprytny sposób połączono tu dotychczasowe osiągnięcia w dziedzinie heterogenicznej architektury obliczeniowej z wtargnięciem w domenę, w której do tej pory niepodzielnie rządziła NVIDIA. Mówiąc w skrócie, CUDA będzie działać cuda także na układach graficznych AMD – przynajmniej w pewnym sensie.

Nie ma co ukrywać, że do tej pory linuksowe sterowniki były dla czerwonej drużyny czymś wtórnym i znacznie mniej znaczącym, niż dla zielonych. Nie ma w tym nic dobrej woli Nvidii – świetna jakość ich sterowników to po prostu spełnienie potrzeb kluczowych biznesowych klientów z sektora High Performance Computing, dla których Windows nie nadaje się do poważnej pracy. Jeśli AMD chciałoby zaistnieć na tym lukratywnym rynku, nie ma wyjścia, musi dostarczyć świetne sterowniki dla Linuksa.

Taki właśnie 64-bitowy sterownik dla kart AMD, przeznaczony do działań bez wyświetlania grafiki, czerwoni chcą dostarczyć w przyszłym roku, jako fundament Inicjatywy Boltzmana. Co najważniejsze, sterownik ten będzie w pełni obsługiwał rozszerzony standard heterogenicznej architektury obliczeniowej HSA także dla niezależnych, dyskretnych GPU, zapewniając jednolitą przestrzeń adresową pamięci dla jednostek głównych i procesorów graficznych. To rozszerzenie samo już standardowe nie jest, mechanizmy mające zapewnić obniżenie opóźnień dla dyspozycji i transferów danych po szynie PCIe zostaną jednak w przyszłym roku udostępnione na wolnej i otwartej licencji.

r   e   k   l   a   m   a

Łącząc CPU i dyskretne GPU w jednej przestrzeni adresowej, AMD może sobie pozwolić na zrobienie tego, co dwa lata temu pokazała NVIDIA w szóstej wersji frameworka CUDA. Z perspektywy programisty cały klaster procesorów głównych i graficznych spiętych w jednej strukturze przez InfiniBand (czy inne magistrale superkomputerowe) będzie czarną skrzynką, samodzielnie zajmującą się optymalizacją zadań równoległych lub szeregowych na odpowiedniego rodzaju hardware.

Skoro już o CUDA mowa, trzeba wyjaśnić znaczenie tego frameworka. Rozwiązanie Nvidii stało się w branży standardem nie tylko ze względu na świetne wyniki akceleratorów Tesla i zgodność z nim całej linii układów graficznych (kod dla CUDA działa też na kartach GeForce i Quadro oraz mobilnych procesorach Tegra), ale też ze względu na wsparcie dla wysokopoziomowej składni C++. Otwarty konkurent, framework OpenCL był długi czas znacznie bardziej niskopoziomowy i nie zdołał znaleźć większego uznania w świecie superkomputerów (choćby dlatego, że NVIDIA z jakiegoś tajemniczego powodu zupełnie się nie spieszyła z wprowadzeniem nowszych jego wersji).

Teraz AMD zmienia swoją strategię. Nie oznacza to rezygnacji z OpenCL, ale pogodzenie się z rynkowymi realiami. Pomóc w tym ma HCC, heterogeniczny kompilator, który wykorzystując otwarte komponenty (m.in. Clang/LLVM) będzie w stanie tworzyć gotowy kod wynikowy dla środowisk HSA+, powstający z jednego pliku źródłowego, w jednym języku – do wyboru C, C++, ewentualnie z rozszerzeniami OpenMP. Kompilator zapewnia wysokopoziomowe wsparcie dla paralelizmu obliczeniowego, na podobieństwo biblioteki C++ AMP z DirectX 11, a w przyszłości obsłuży także rozszerzenia ParallelSTL z nowego standardu C++ 17, które już w pełni zwalniać mają programistę z samodzielnego kontrolowania paralelizacji.

Na bazie HCC działa zaś HIP – heterogeniczny interfejs obliczeniowy, który pozwala „ukraść” kod pisany pod CUDA i uruchomić go na platformie AMD. Założenie jest takie, by znający składnię frameworku Nvidii programiści nie musieli się niczego uczyć, tylko pisali kod jak do tej pory, a następnie wykorzystali narzędzia HIPify, by przekształcić go do formy akceptowanej przez HCC, a zarazem zgodnej z kompilatorem Nvidii. W ten sposób czerwoni bezpośrednio wchodzą na podwórko zielonych – może ich procesory graficzne nie uruchomią kodu skompilowanego na architekturę Nvidii, ale w świecie superkomputerów nie ma to większego znaczenia, gdyż tam i tak prawie zawsze kod źródłowy jest dostępny i modyfikowany pod konkretny sprzęt. Pozostaje jedynie pytanie, co na to prawnicy Nvidii, którzy zachęceni ostatnimi sukcesami Oracle w walce z Google o dopuszczalność patentowania interfejsów programowania Javy mogą heretycki interfejs AMD zawlec przed sąd, jako naruszający własność intelektualną.

W tym wszystkim niewiadomą pozostaje zachowanie Intela, który wraz z premierą swoich nowych akceleratorów Knights Landing też przymierza się do wejścia na lukratywny, zmonopolizowany przez Nvidię rynek akceleratorów GPU. Xeony Phi też przecież nie uruchomią kodu dla CUDA, więc możliwość wykorzystania HCC i HIP powinna być tu dla „niebieskiej” drużyny bardzo cenna.

Jednego możemy być pewni – zieloni na pewno łatwo nie ustąpią, poważny biznes i ośrodki naukowe wciąż najczęściej wybierają Tesle. Zaprezentowane ostatnio akceleratory Tesla M40 to 7 TFLOPS mocy obliczeniowej kosztem 250W, a dla tych, którzy potrzebują czegoś energooszczędnego, NVIDIA ma Teslę M4, która daje 2,2 TFLOPS kosztem 50 W. Do grona klientów na ten sprzęt dołączyła ostatnio amerykańska Narodowa Administracja Oceanu i Atmosfery (NOAA), która do swojego klastra meteorologicznego zamówiła 760 takich akceleratorów.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.