Superkomputerowa Inicjatywa Boltzmana: karty AMD uruchomią kod CUDA Nvidii

Superkomputerowa Inicjatywa Boltzmana: karty AMD uruchomią kod CUDA Nvidii

Superkomputerowa Inicjatywa Boltzmana: karty AMD uruchomią kod CUDA Nvidii
18.11.2015 10:03, aktualizacja: 18.11.2015 11:15

Artysta postawiony w obliczu śmierci głodowej tworzy częstodzieła najlepsze – to spostrzeżenie ze świata sztuki zaczynamieć także swoje przełożenie na branżę półprzewodnikową.Pogrążone w finansowym kryzysie od wielu kwartałów AMD zaczynarobić rzeczy pomysłowe i niezwykłe, jakby chcąc udowodnić zawszelką cenę, że świat komputerów bez czerwonych byłby o wieleuboższy. Kolejnym takim dowodem jest nowa inicjatywa firmy, noszącanazwisko Ludwiga Boltzmanna, ojca termodynamiki i mechanikistatystycznej. W sprytny sposób połączono tu dotychczasoweosiągnięcia w dziedzinie heterogenicznej architektury obliczeniowejz wtargnięciem w domenę, w której do tej pory niepodzielnierządziła NVIDIA. Mówiąc w skrócie, CUDA będzie działać cudatakże na układach graficznych AMD – przynajmniej w pewnym sensie.

Obraz

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

Obraz

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

Obraz

Łącząc CPU i dyskretne GPU w jednej przestrzeni adresowej, AMDmoże sobie pozwolić na zrobienie tego, co dwa lata temu pokazałaNVIDIA w szóstej wersji frameworkaCUDA. Z perspektywy programisty cały klaster procesorówgłównych i graficznych spiętych w jednej strukturze przezInfiniBand (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 tegoframeworka. Rozwiązanie Nvidii stało się w branży standardem nietylko 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), aleteż ze względu na wsparcie dla wysokopoziomowej składni C++.Otwarty konkurent, framework OpenCL był długi czas znaczniebardziej 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 wprowadzeniemnowszych jego wersji).

Obraz

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

Na bazie HCC działa zaś HIP – heterogeniczny interfejsobliczeniowy, który pozwala „ukraść” kod pisany pod CUDA iuruchomić go na platformie AMD. Założenie jest takie, by znającyskładnię frameworku Nvidii programiści nie musieli się niczegouczyć, tylko pisali kod jak do tej pory, a następnie wykorzystalinarzędzia HIPify, by przekształcić go do formy akceptowanej przezHCC, a zarazem zgodnej z kompilatorem Nvidii. W ten sposób czerwonibezpośrednio wchodzą na podwórko zielonych – może ich procesorygraficzne 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 modyfikowanypod konkretny sprzęt. Pozostaje jedynie pytanie, co na to prawnicyNvidii, którzy zachęceni ostatnimi sukcesami Oracle w walce zGoogle o dopuszczalność patentowania interfejsów programowaniaJavy mogą heretycki interfejs AMD zawlec przed sąd, jakonaruszający własność intelektualną.

W tym wszystkim niewiadomą pozostaje zachowanie Intela, którywraz z premierą swoich nowych akceleratorów KnightsLanding 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żynybardzo cenna.

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

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (52)