<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description rdf:about="https://repozitorij.uni-lj.si/IzpisGradiva.php?id=88533"><dc:title>Priprava programov OpenCL za učinkovito izvajanje na različnih arhitekturah</dc:title><dc:creator>ŠEMROV,	JURE	(Avtor)
	</dc:creator><dc:creator>Lotrič,	Uroš	(Mentor)
	</dc:creator><dc:subject>OpenCL</dc:subject><dc:subject>heterogeni sistemi</dc:subject><dc:subject>računske enote</dc:subject><dc:subject>delovne skupine</dc:subject><dc:subject>niti</dc:subject><dc:subject>SIMD</dc:subject><dc:subject>SIMT</dc:subject><dc:subject>lokalni pomnilnik</dc:subject><dc:description>V diplomski nalogi se posvečamo predvsem vprašanju, kako programe OpenCL napisati, da se bodo učinkovito izvajali na različnih arhitekturah. Težava, s katero se soočamo, so arhitekturne razlike med sistemi. Če torej želimo doseči maksimalno učinkovitost, moramo program ustrezno prilagoditi. Prilagoditve obsegajo število računskih enot, število niti v skupini, uporabo vektorske enote, lokalnega pomnilnika in predpomnilnikov ter še druge načine za prikrivanje latence. Na kratko, izkoristiti moramo morebitne arhitekturne prednosti naprave in paralelizem tako na nivoju ukazov, kot tudi na nivoju niti. 


V nalogi obravnavamo pet programov, to so histogram, množenje matrik, predponska vsota, problem n teles in bitonično urejanje. Te programe prilagodimo trem različnim sistemom, in sicer CPE Intel Core i5-2450M, mnogojedrnik Xeon Phi 5110P, GPE Nvidia Tesla K20. Da bi te prilagoditve izkusili tudi v praksi, smo izmerili čas izvajanja programov za različno velike skupine in skušali razbrati kaj se dogaja. 


Če naše ugotovitve posplošimo, lahko privzamemo, da naj bo število skupin vsaj toliko, kot je računskih enot, skupine pa naj bodo ravno prav velike, da zmanjšamo režijo preklopa skupin in pomnilniško latenco ter obenem ne povečamo režije zaradi komunikacije ali zmanjšamo števila skupin, ki se sočasno izvajajo na računski enoti. Za učinkovito izvajanje moramo na CPE in mnogojedrniku upoštevati predpomnilnike in širino vektorske enote, medtem ko moramo na GPE čim bolje izkoristiti visoko prepustnost ter prikriti latenco z velikim številom niti in lokalnim pomnilnikom.</dc:description><dc:date>2017</dc:date><dc:date>2017-01-16 14:25:08</dc:date><dc:type>Diplomsko delo/naloga</dc:type><dc:identifier>88533</dc:identifier><dc:language>sl</dc:language></rdf:Description></rdf:RDF>
