amd_rocm_1

IT tržište relativno je mlado, ali je činjenično najdinamičnije u pogledu implementacije u sve sfere ljudske civilizacije. Gotovo da ne postoji moment ljudskog djelovanja u kojem ne možete pronaći nekakav tip elektroničkog računala, a život 21. stoljeća gotovo je nezamisliv bez istog. Stari ljudi, koji to govore isključivo zato što su stari, reći će da se i prije jelo, ljubilo i okopavalo plodne oranice bez raznih aparata, što je činjenica, ali ne udara u srž. Pa tako dakle možemo zaista podnijeti da se vratimo na pred-tranzistorsko doba, gdje rodni list ne stariji od 6 mjeseci umjesto na pisaču iz topline vlastitog doma moramo vaditi osobno kod razularene službenice čija je srce jedino hladnije od njezine trajne ondulacije, dogovarati sastanak s MalaPlawaNaiwna98 u lokalnom kafiću umjesto preko Tindera i Vibera (da bi se kasnije ispostavilo kako se radi o Miljenki, bivšoj bacačici kladiva iz DDR-a) ili okopavali grunt s improviziranom štihačom umjesto da pustimo svojeg IMT-a ili Zetora da GPS-om ore kako smo mu zadali putem cloud softvera.

amd_rocm_2

No ono što prosječni glasač ne zna jest da je sav taj silni napredak informatike (ter neka mi Bog i narod ne zamjere sto koristim ovako širok i kolokvijalan pojam) donio i neke napretke koje ne vežemo direktno uz računala, barem ne ako ne pogledamo širu sliku. Jer krenemo li od Neofena kada Vas zaboli glava jer je najnovija verzija upravljačkog programa za omiljenu grafičku karticu odlučila ne raditi pa do goriva kojeg ste natočili u vaš Trabant ako ste star čovjek s početka priče i „2 cilindra i 600 kubika ought to be enough for anybody“ kombinatorike obzirom da ste krenuli u trgovinu onkraj grada kako bi ste kupili nešto novo – cjelokupnoj lakoći tog življenja pripomogla je upravo grana informatike koju zovemo HPC (High Performance Computing). I dok je nekad pojam „superračunalo“ podrazumijevalo ogromantnost u svakom segmentu (energetski, prostorno, novčano i obrazovno), zadnjih nekoliko godina taj segment prelazi u sve veće mikro-sfere. Drugim riječima, kako vam je otac vjerojatno prepričavao anegdote kako je gledao Cray na slici na info-vašaru u Tompojevcima '79., tako danas možete za vrlo malo novaca imati „superračunalo“ u džepu.

amd_rocm_3

Na stranu činjenicu da problemi koje obuhvaća HPC spadaju u netrivijalne, dodatni kamen spoticanja uvijek je bio involviranje velike količine programerskog znanja, na stranu sam sukus pretpostavljenih izračuna. Spuštanje na razinu jeftinijih (u odnosnu na „prava“ superračunala) započelo je već sredinom '90. godina s OpenMP projektom, da bi se razbuktalo pojavljivanjem OpenCL i CUDA tehnologija krajem prvog desetljeća ovog stoljeća. Ponovno valja imati na umu da su svi ti razvojni sustavi za sobom povlačili ogromnu kompleksnost i zahtijevali širok spektar poznavanja nekoliko programskih jezika i paradigmi. Kada bi Vam sada netko rekao da bi bilo moguće agregirati sve te tehnologije i postojeće izvorne kodove u jednu ideju… Dobrodošli u ROCm!

amd_rocm_4

ROCm (čita se: rock 'em) je mlada i potentna OpenSource inicijativa koja seže bitno dalje od svih postojećih ideja i tržišnih igrača. 8. listopada ove godine, Gregory Stoner, Senior Director u Radeon Open Computeu predstavio je projekt pobliže i najavio novu verziju 1.3 za 13. listopad, rođendan Neila Younga (iako Wikipedia tvrdi da je stari rocker rođen 12. listopada, no dobro…). Ideja (a namjerno koristimo tu terminologiju) se bazira na performansama, otvorenosti koda (GPL) i „hyperskalabilnosti“, što je fin naziv za korištenje više hardverskih jedinica za obradu podataka. Sama ROCm ideja puno je više od novog seta alata, što u ovom trenu predstavlja podršku za „Hawai“, „Fiji“ te „Polaris“ arhitekturu te neke APU-e (od verzije 1.3), i set razvojnih alata za Linux platformu. Na naš upit o tome kada će biti dostupni alati (makar za sam razvoj) na ne-Linux platformi (pritom vodeći isključivo mišlju o Windowsima), dobili smo poprilično robotski odgovor o neizvjesnosti iste i eventualnom seljenju nekih razvojnih alata na drugu (Windows) platformu. Dovoljno pošteno, obzirom da HPC svijetom ionako vlada Linux već dugi niz godina, što je vrlo jasno vidljivo iz bilo koje TOP500.org statistike.

amd_rocm_5

ROCm predstavlja driver, API i set alata za HPC koji rade gotovo kao RTOS za više programske jezike. Unatoč tome što CUDA u današnjem svijetu predstavlja Coca Colu za programere, ROCm želi postati univerzalni odgovor na pitanje u HPC kafiću – što želite popiti? Predstavljajući dva glavna alata, ROMc nudi kompletno rješenje za prelazak na svoju platformu. Prvenstveno HCC (Heterogeneous Compute Compiler) koji je single source complier za CPU i GLU, izgrađen oko LLVM-a i libC++ s podrškom sve do C++17 standarda i Parallel STL knjižnice, OpenMP podrške za CPU i GPU te, kako se tvrdi, sijasetom optimizacija. No po našem skromnom mišljenju, glavna zvijezda prelaznog roka na novo sučelje predstavlja HIP (Heterogeneous-Compute Interface for Portability) – alat za jednostavan prelazak sa OpenCL i CUDA izvornog koga na ROCm platformu uz minimalan trud i napor s ljudske strane, boljim ili u najgorem slučaju istim performansama. AMD tvrdi da je portao Caffe, jedan od najpopularnijih deep learning frameworka, s 99.6% nemodificiranog koda i s podrškom za sve značajke koje Caffe nudi (multi GPU podrška, P2P, FFT filteri i slično).

amd_rocm_6

Nova inačica 1.3 koja je i bila glavni predmet predstavljanja (obzirom da je sama ideja „stara“ već preko 6 mjeseci) donosi podršku za Polaris i to na svim inačicama od PRO WX7100 pa do RX460 kartica. To donosi ROCm na budget chip od nekoliko stotina dolara s punom podrškom za matematičke knjižnice poput BLAS-a, SPARSE-a, RAND-a i sličnih, frameworka kao što su Trilinosov Kokkos, Charm, QUDA i slični, kao i za razne primjene unutar strojnog učenja (Torch7), kvantne kromodinamike (MILC i Chroma koji su trenutno u razvoju i navodno bi trebali biti dostupni polovicom prosinca ove godine), molekularne dinamike (AMBER, NAMD, Gromacs, HOOMD-blue) te bioinformatike (Peanut I Beagle).

amd_rocm_7

Kada smo rekli da je ROCm ideja a ne set pomagala, to se prvenstveno odnosilo na to da cijelu platformu žele prilagoditi i preseliti na cijeli raspon arhitektura, počevši od x86 od Intela i AMD-a, pa do ARM AArch64 ThunderX odnosno IBM-ovog Powera 8. Ne samo to, nego AMD aktivno sudjeluje u projektima tipa CCIX (međuprocesorska interkonekcija), OpenCAPI (nasljednik/zamjena/alternativa PCI Expressu), OpenUCX projektu izrade open source frameworka za HPC mrežnu komunikaciju (WinSock za HPC, recimo…) i sličnih projekata.

amd_rocm_8

Puno toga je napisano, obećano i započeto, no povijest kao učiteljica života i objektivnost situacije involviranih nam daju dašak sumnje. Bilo kako bilo, optimizam ulijevaju ogroman entuzijazam, FLOSS koncept i nezaustavljiv rast HPC tržišta (ne zaboravite da je Intel kupio Alteru!), pa ostaje nada da ukoliko se samo 50% navedenog realizira do kraja godine, to će predstavljati golemi uspjeh i zalog za budućnost razvoja.

amd_rocm_9

U doba objavljivanja ovog članka nismo imali dovoljno vremena isprobati ROCm 1.3 u praksi (manje od 24 sata za zahtijeva posebno pripremljeno računalo), ali prvom prilikom to će biti ostvareno pa ćemo objaviti, nadam se, neke zanimljive i obećavajuće rezultate.