BIJOTOVÁ, K. Paralelizace náročných úloh rekonstrukce v dynamické magnetické rezonanci [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2019.

Posudky

Posudek vedoucího

Mašek, Jan

Práce se zabývala optimalizací výpočetně náročných částí rekonstrukčního modelu v dynamické magnetické rezonanci. Cílem bylo nastudovat předložený rekonstrukční model v prostředí Matlabu, dále s pomocí funkce "gpuArray" provést jednoduchou optimalizaci tohoto kódu. Stěžejním cílem pak bylo přepsat vybrané výpočetně náročné části (zejména funkci NUFFT) z Matlabu do prostředí jazyka Java a nakonec takto vytvořený kód dále použít při vytvoření kernelů volaných knihovnou jcuda. Studentka pravidelně chodila konzultovat, bohužel její postup v práci mezi jednotlivými konzultacemi byl velmi malý. Stěžejní část práce začala řešit až během dubna. Výsledkem byly téměř kompletně přepsané části kódu z Matlabu do Javy, jedná se hlavně o maticové operace a funkci NUFFT, tyto kódy byly otestovány a jsou funkční. Další částí práce mělo být vytvoření GPU kernelů z tohoto JAVA kódu a jejich volání s pomocí knihovny jcuda. Studentka bohužel začala na této části pracovat až týden před odevzdáním práce, tudíž tuto část pouze rozpracovala a výsledkem byly nevhodně navržené kernely pro funkci NUFFT, které jsou pro očekávanou optimalizaci rekonstrukčního modelu nepoužitelné. Dalším problémem je nenapojení výstupů z JAVY zpět do Matlabu, proto není možné celý program z Matlabu spustit. Prezentované výstupy práce popisují pouze dílčí dosažené výsledky a z některých výsledků jsou vyvozeny špatné závěry. Hlavním problémem této práce je, že není dokončena, proto navrhuji známku E/50 bodů.

Navrhovaná známka
E
Body
50

Posudek oponenta

Rajmic, Pavel

Práce paní Bc. Kateřiny Bijotové se věnuje optimalizaci rekonstrukce MR obrazů a sekvencí. Text je na stranách 12 až 50 + několik stran příloh. Jazyk je dobrý, srozumitelnost je výborná, a to zejména v obecných částech. Typografie na dobré úrovni až na drobnosti. Dvakrát se v textu objevuje místo, kde studentka plete dohromady zrychlení při samotném MR měření se zrychlením při rekonstrukci signálu z již pořízeného měření -- to jsou zcela odlišné a oddělené věci! Zadání práce je zaměřeno hodně prakticky. Lze tedy přimhouřit oko nad tím, že teoretická část práce není na vysoké úrovni: 1/ Občas se pracuje s nezavedeným značením (např. d_c ve vztahu (2.3), nezavedení norem, konstant N_c, N_f). 2/ NUFFT, ačkoliv jde o klíčovou rutinu k paralelizaci, není rozebráno. 3/ Používají se pojmy blok, vlákno, registr, aniž by se vysvětlilo, o co jde. 4/ Regularizační člen r(x) je ponechán jen takto obecně, bez specifikace, ačkoliv má ve studentčině případě zcela konkrétní podobu, která je vcelku zásadní pro podobu algoritmu, který se v diplomové práci optimalizuje. To souvisí i s částí o proximálních operátorech, které jsou zpracovány velmi letmo. 5/ Algoritmus není nikde odvozen. 6/ SVD není algoritmus, jak se píše, ale na výpočet SVD existují algoritmy; především ale není uvedeno, proč je SVD potřeba pro řešení problému. Přijměme tedy pohled, že stěžejní bylo implementovat algoritmy (hlavně tedy část s NUFFT) na GPU. NUFFT se typicky skládá z části interpolace a následné FFT; interpolace se ani v JAVA, ani v CUDA nevyskytuje, je to součást tzv. inicializace, která přeprogramována nebyla. V JAVA jsou vytvořeny pouze fragmenty, které neběží jako celek, není tedy možné pustit souvisle ani jednu itaraci, natož třeba padesát, což je počet v praxi nutný. Klíčový probém vidím v tom, že autorka sice vybrané části kódu paralelizovala, ale tyto kódy jsou tak hluboko zanořeny v hierarchii programu, že režie zbylých přesunů na CPU a zpět úplně vymaže získané zrychlení. Očekávat efektivitu v takovém případě je marné a měření jsou nepřínosná, navíc nevěrohodná, protože např. v JAVA je při každém zavolání funkce fft prováděna inicializace GPU, což je zbytečné a zpomaluje to. Zrychlení rekonstrukce, které najdeme v literatuře, je dosahováno typicky tak, že se NUFFT vykonává paralelně pro všechny zpracovávané časové "framy"; k tomu ale v autorčině programu nedošlo. Na straně 41 se vyskytuje tvrzení o tom, že totální variace byla po paralelizaci neefektivní. Žádné další podklady však nenajdeme. To vyznívá podivně, protože proximální operátor TV normy lze aplikovat absolutně nezávisle pro každý pixel a tedy se pro efektivní paralelizaci nabízí. Data v příloze nejsou, není možné si spustit programy ani z Matlabu. Dvakrát se píše, že autorčin program produkuje shodné výsledky s matlabovskou předlohou. Shoda výstupů ale není doložena. Není ji možné ověřit z výše uvedeného důvodu. Autorka neuvádí literární zdroje, které by se zabývaly zrcyhlením rekonstrukce, případně paralelizace NUFFT. Přitom jich existuje řada. Nezmiňuje se ani již hotová, široce používaná knihovna gpuNUFFT. Shrnuto, studentka „něco udělala“, ale velké nedostatky má práce jak v textu, tak hlavně v implementaci, která je nepoužitelná a navíc nepřesvědčivá. Proto celkově navrhuji hodnocení F.

Navrhovaná známka
F
Body
45

Otázky

eVSKP id 118189