programování GPGPU

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Trek
Začátečník
Začátečník
Uživatelský avatar
Registrován: 16. kvě 2008

Re: programování GPGPU

Příspěvek od Trek »

Asi by to chtělo přečíst si nějaký skripta nebo knihu a obeznámit se s paralelními systémy. Hlavní problém je, že karty jsou hlavně SIMD (nové nvidie mají možnost 4 clusterů), takže algoritmus musí tomuto odpovídat.

MPI aplikace by mohla obsahovat kód takový, že jednotlivý počítač by mohl část výpočtu provádět na GPU, jinak srovnání MPI a GPGPU je liché.
Mnoho úloh se nehodí pro výpočet na GPU.

Kódovat např. v CUDA je triviání záležotst, jde spíš o znalosti algoritmů apod.
klouda píše:Jakým způsobem by se daly pomocí GPGPU řešit výpočty na paralelních systémech ? Např. jak by se programovala aplikace, která využívá knihovny MPI v počítačovém clusteru ? Pokud vím tak zatím existuje řešení jen pro jeden počítačový systém. :hm
klouda
Nováček
Nováček
Uživatelský avatar
Registrován: 18. kvě 2010
Bydliště: Znojmo
Kontaktovat uživatele:

Re: programování GPGPU

Příspěvek od klouda »

GPGPU se hodí čistě jen na výpočty které se dají vhodně paralelizovat. CPU je objektivnější díky lépe propracovanějšímu systému ALU jednotek.

Mě by zajímalo jestli by se daly na GPU řešit operace analogické těm, které se používají v MPI (např. MPI_Reduce, MPI_Barrier, MPI_Alltoall) nebo je potřeba změnit topologii?

Trek píše:Asi by to chtělo přečíst si nějaký skripta nebo knihu a obeznámit se s paralelními systémy. Hlavní problém je, že karty jsou hlavně SIMD (nové nvidie mají možnost 4 clusterů), takže algoritmus musí tomuto odpovídat.

MPI aplikace by mohla obsahovat kód takový, že jednotlivý počítač by mohl část výpočtu provádět na GPU, jinak srovnání MPI a GPGPU je liché.
Mnoho úloh se nehodí pro výpočet na GPU.

Kódovat např. v CUDA je triviání záležotst, jde spíš o znalosti algoritmů apod.
klouda píše:Jakým způsobem by se daly pomocí GPGPU řešit výpočty na paralelních systémech ? Např. jak by se programovala aplikace, která využívá knihovny MPI v počítačovém clusteru ? Pokud vím tak zatím existuje řešení jen pro jeden počítačový systém. :hm
Trek
Začátečník
Začátečník
Uživatelský avatar
Registrován: 16. kvě 2008

Re: programování GPGPU

Příspěvek od Trek »

GPGPU je o vláknech, bariéra tam samozřejmě je (např. v CUDA syncthreads) ale jen v bloku, ne mezi bloky. Paralelní redukci (a analogické operace) si musíš udělat sám a navíc se to musí dost ladit, aby to jelo správně, protože musíš přistupovat do paměti jen určitým způsobem (tzv. coalesced, vzory jsou v dokumentaci). Já CUDA použil před nějakym časem, tak už to nemám tak živý, ale dokumentaci máš pročtenou za pár hodin a víš vše potřebné. Co jsem viděl, OpenCL syntaxe je dost podobná cuda.

GPGPU má jednu nevýhodu z hlediska OS a to sice TDR (timeout detection and recovery). který je ve win vista a výše a myslím, že to je i v Liuxu. Pokud kernel (program) na grafice (co má display) běží více jak 2 vteřiny os to utípne (ve win se to dá vypnout v registrech).
Problém je ten, že např. ve Vistách to sice utípne, ale končí to strašnou smrtí OS, BSODem a pokoruptuje to kde co (zkoušel jsem to "naschvál"). Běžný to je u gamesek (gameska spadne a je tam tá hlaška, že ovladač přestal odpovídat), takže se musí ještě řešit toto.
Odpovědět

Zpět na „Programování a web“