Array ( [0] => 15593146 [id] => 15593146 [1] => cswiki [site] => cswiki [2] => GPGPU [uri] => GPGPU [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 0 [has_content] => 0 [12] => [oai_cs_optimisticky] => ) Array ( [0] => {{Upravit|typografie, odkazy, kategorie}} [1] => '''General-purpose computing on graphics processing units''' (zkratka '''GPGPU''') je způsob využití [[Paralelní výpočty|paralelizace]] na [[Grafická karta|grafické kartě]], ale obecněji lze využít takřka každý procesor, jako je například [[Centrální procesorová jednotka|CPU]], [[GPU]], [[Accelerated Processing Unit|APU]] a [[Digitální signálový procesor|DSP]], k výpočtu obecných algoritmů. GPU (což je grafický procesor či čip) dříve obsahovaly pouze jednoúčelový ''fixní'' vykreslovací řetězec, podobný výrobě na lince, který sloužil výhradně ke zpracování grafických primitiv a prezentaci na obrazovce. S příchodem programovatelných shaderů se však vyskytla možnost získat ''výstup operací'' prováděných grafickou kartou. Výpočty na grafické kartě jsou vhodné u algoritmů, které mají podobný formát jako grafická primitiva a obsahují mezi sebou ''minimální nebo žádné vazby'' (taková operace může být například převod pixelů barevného obrazu do šedotónového). S příchodem grafických čipů AMD GPU typu [[AMD Radeon HD 7000|GCN]] a výše, může CPU a GPU či oboje v APU velice úzce spolupracovat, takže například jednotka GPU typu GCN si může od CPU přímo vyžádat data například z disku. Typicky konzole AMD, jako konzole osmé generace [[PlayStation 4|Playstation 4]] a [[Xbox One]], či konzole deváté generace [[PlayStation 5|Playstation 5]] a [[Xbox Series X a Series S]]. [2] => [3] => == Historie a významná data == [4] => * Listopad 2000: [[Direct3D]] 8.0 představil programovatelné [[shader]]y (vertex a pixel)http://news.microsoft.com/2000/11/09/microsoft-announces-release-of-directx-8-0/ [5] => * Červenec 2002: [[OpenGL]] představila [[GLSL]] jako rozšíření v [[OpenGL]] 1.4 [6] => * Září 2004: [[OpenGL]] 2.0 přidala jazyk [[GLSL]] do svého jádra [7] => * Červen 2007: Firma [[NVIDIA]]  představila svůj framework [[CUDA]], sloužící výhradně k paralelním výpočtům na grafických kartách [8] => * Červenec 2008: [[Direct3D]] 11.0 přidalo podporu compute shaderůhttp://msdn.microsoft.com/en-us/library/windows/desktop/ff476342(v=vs.85).aspx#Full [9] => * Říjen 2009 – [[Apple]] představuje [[OpenCL]], které později nahrazuje [[Close To Metal]] od [[AMD]] [10] => * Srpen 2012: [[OpenGL]] 4.3 přidává do své specifikace compute shadery [11] => * Září 2014: [[Apple]] představuje API [[Metal (iOS API)|Metal]] pro mobilní zařízení, které umožňuje využívat výkon grafické karty k obecným výpočtům [12] => * Listopad 2014: [[AMD]] představuje [[AMD Steamroller|Carizzo]] a Carizzo-L, první čipy podporující HSA (Heterogeneous System Architecture).{{Citace elektronického periodika [13] => | příjmení = Hachman [14] => | jméno = Mark [15] => | titul = AMD reveals high-end 'Carrizo' APU, the first chip to fully embrace audacious HSA tech [16] => | periodikum = PCWorld.com [17] => | datum_vydání = 2014-11-21 [18] => | datum_přístupu = 2015-11-17 [19] => | url = http://www.pcworld.com/article/2850853/amd-reveals-high-end-carrizo-apu-its-first-fully-hsa-compliant-chip.html [20] => | jazyk = anglicky [21] => }} [22] => [23] => == Princip == [24] => Grafický procesor ([[GPU]]) má značně rozdílnou architekturu na rozdíl od klasického [[Centrální procesorová jednotka|procesoru]]. [[Centrální procesorová jednotka|CPU]] má rozsáhlou instrukční sadu uzpůsobenou k realizaci obecných výpočtů. Architektura grafického čipu byla na druhou stranu vyvíjena s myšlenkou realizace malého množství specifických instrukcí (operací nad grafickými primitivy) paralelně nad velkou homogenní datovou sadou. V kombinaci s dostupností programovatelného řetězce, jmenovitě [[Vertex shader|vertex]], [[Pixel shader|fragment]], [[Geometry shader|geometry]] a [[compute shader]]ů, mohou být [[Grafická karta|grafické karty]] použity k urychlení obecných, avšak ze své podstaty masivně paralelních algoritmů. [25] => [26] => Pro programování [[algoritmus|algoritmů]] se používá konceptu takzvaného ''kernelu'', který aplikuje operaci paralelně na každé primitivum vstupních dat (např. pixel obrazu) zvlášť. Ukázka jednoduchého kernelu (v jazyce [[GLSL]]), který převádí [[pixel]]y barevného obrazu do šedotónové hloubky může vypadat například takto: [27] => [28] => [29] => #version 430 [30] => [31] => // Vstupy a vystupy [32] => uniform readonly image2D vstup; [33] => uniform writeonly image2D vystup; [34] => [35] => void main() { [36] => // Ziskame koordinaty pixelu, ktery zpracovavame [37] => ivec2 koordinaty = ivec2(gl_GlobalInvocationID.xy); [38] => [39] => // Nacteme pixel ze vstupu [40] => vec4 pixel = imageLoad(vstup, koordinaty); [41] => [42] => // Prevedeme pixel do stupni sedi [43] => pixel.rgb = 0.144 * pixel.r + 0.587 * pixel.g + 0.299 * pixel.b; [44] => [45] => // A zapiseme pixel na vystup [46] => imageStore(vystup, koordinaty, pixel); [47] => } [48] => [49] => [50] => == Použití == [51] => Na GPU lze při dostupnosti programovatelného řetězce implementovat jakýkoliv algoritmus, ovšem ne u každého takového algoritmu lze dosáhnout urychlení. Příklady vhodných aplikací pro urychlování na [[GPU]] mohou být [[algoritmus|algoritmy]]: [52] => * [[Počítačové vidění|Počítačového vidění]] (předzpracování, segmentace, počítačové učení) [53] => * [[Počítačová simulace|Fyzikální simulace]] (částicové simulace) [54] => * [[Kryptografie|Kryptografické]] (výpočty kontrolních součtů) [55] => [56] => == Softwarové knihovny == [57] => Pro desktopové aplikace existují implementace otevřeného standardu [[OpenCL]] (spravován [[Khronos Group]]) a z používanějších také proprietární framework [[CUDA]] firmy [[NVIDIA]]. Pro vývoj na převažujících mobilních [[Operační systém|operačních systémech]] jsou dostupné [[Knihovna (programování)|knihovny]] [[Renderscript]] (pro [[Operační systém|OS]] [[Android (operační systém)|Android]]) a [[Metal (iOS API)|Metal]] (pro [[iOS]]). [58] => [59] => == Související články == [60] => * [[OpenGL]] – průmyslový standard specifikující multiplatformní rozhraní (API) pro tvorbu aplikací počítačové grafiky, [61] => * [[WebGL]] – jako OpenGL, pro [[JavaScript]], [62] => * [[OpenAL]] – je audio standard, [63] => * [[OpenCL]] – průmyslový standard specifikující multiplatformní rozhraní (API) pro tvorbu výpočetně náročných aplikací, [64] => * [[GLUT]] – OpenGL Utility Toolkit, [65] => * [[ALUT]] – OpenAL Utility Toolkit, [66] => * [[DirectX]] – grafické API pro Microsoft Windows, [67] => * [[Direct3D]] – součást DirectX. [68] => [69] => == Reference == [70] => [71] => {{Autoritní data}} [72] => [73] => [[Kategorie:Nově vznikající technologie]] [74] => [[Kategorie:Grafické karty]] [] => )
good wiki

GPGPU

General-purpose computing on graphics processing units (zkratka GPGPU) je způsob využití paralelizace na grafické kartě, ale obecněji lze využít takřka každý procesor, jako je například CPU, GPU, APU a DSP, k výpočtu obecných algoritmů.  GPU (což je grafický procesor či čip) dříve obsahovaly pouze jednoúčelový fixní vykreslovací řetězec, podobný výrobě na lince, který sloužil výhradně ke zpracování grafických primitiv a prezentaci na obrazovce.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'OpenGL','Centrální procesorová jednotka','OpenCL','GLSL','Direct3D','GPU','Grafická karta','NVIDIA','algoritmus','AMD','CUDA','Apple'