CUDA: Porovnání verzí

Smazaný obsah Přidaný obsah
JAnDbot (diskuse | příspěvky)
m Robot: přidáno {{Autoritní data}}; kosmetické úpravy
aktualizace, doplnění a výslovnosť
Řádek 1:
{{Infobox - software
| jméno = CUDA
| logo =
| velikost loga =
| obrázek =
| velikost obrázku =
| alt =
| popisek =
| vývojář = [[nVIDIA]] Corp.
| datumprvní vydání = 2007-11-29
| aktuální verze = 8.0.51<ref>[http://www.nvidia.com/object/macosx-cuda-8.0.51-driver.html NVIDIA CUDA 8.0 for MAC OS X release] {{en}}</ref>
| datum aktuální verze = [[29. listopad]]u [[2016]]0
| datum aktuální verze = [[25. září]] [[2017]]<ref name="devítka" />
| připravovaná verze =
| datum připravovanépřipravovaná verze =
| datum připravované verze =
| operační systém = [[Microsoft Windows|MS Windows]], [[OS X|macOS]], [[Linux|GNU/Linux]]
| programovací jazyk =
| platforma = [http://developer.nvidia.com/cuda-gpus podporovaná GPU]
| typ softwaru = [[GPGPU]]
| typ | licencesoftwaru = [[freewareGPGPU]]
| licence = [[freeware]]
| lokalizace =
| web = [http://www.nvidia.com/object/cuda_home_new.html www.nvidia.com]
}}
 
'''CUDA''' ([[akronym]] z&nbsp;[[Angličtina|angl.]] '''C'''ompute '''U'''nified '''D'''evice '''A'''rchitecture, výslovnost [ˈkjuːdə]) je hardwarová a softwarová architektura,<ref>{{Citace elektronické monografie
}}'''CUDA''' ([[akronym]] z&nbsp;[[Angličtina|angl.]] '''C'''ompute '''U'''nified '''D'''evice '''A'''rchitecture, výslovnost [ˈkjuːdə]) je hardwarová a softwarová architektura,</ref name="ncpg" /> která umožňuje na vybraných [[GPU]] spouštět programy napsané v&nbsp;jazycích [[C (programovací jazyk)|C]]/[[C++]], [[FORTRAN]] nebo programy postavené na technologiích [[OpenCL]], [[DirectCompute]] a jiných. Použití této architektury je omezeno pouze na [[Grafická karta|grafické akcelerátory]] společnosti [[nVIDIA]], která ji vyvinula. Konkurenční technologie společnosti [[Advanced Micro Devices|AMD]] se nazývá [http://en.wikipedia.org/wiki/AMD_FireStream AMD FireStream] (dříve Close To Metal). Obě společnosti jsou také členy [[Khronos Group]], která zajišťuje vývoj OpenCL.
| titul = nVIDIA CUDA Programming Guide Version 1.1
| url = http://docs.nvidia.com/cuda/index.html#axzz3wagwJWX1
| datum vydání = 2007-11-29
| datum přístupu = 2011-12-01
| vydavatel = nVIDIA
| jazyk = en
}}</ref> která umožňuje na vybraných [[GPU]] spouštět programy napsané v&nbsp;jazycích [[C (programovací jazyk)|C]]/[[C++]], [[FORTRAN]] nebo programy postavené na technologiích [[OpenCL]], [[DirectCompute]] a jiných. Použití této architektury je omezeno pouze na [[Grafická karta|grafické akcelerátory]] společnosti [[nVIDIA]], která ji vyvinula. Konkurenční technologie společnosti [[Advanced Micro Devices|AMD]] se nazývá [http://en.wikipedia.org/wiki/AMD_FireStream AMD FireStream] (dříve Close To Metal). Obě společnosti jsou také členy [[Khronos Group]], která zajišťuje vývoj OpenCL.
 
== Historie ==
Řádek 37 ⟶ 32:
V květnu 2011 byla vydána verze CUDA SDK 4.0. Největší změnou je zde unifikace paměťových prostorů a masivní podpora [[Scalable Link Interface|MultiGPU]].
 
Nejnovější verzí je CUDA SDK 89.0 ze září roku 20162017.
 
== Mikroarchitektura GPU ==
Řádek 48 ⟶ 43:
 
=== Výpočetní možnosti (Compute capability) ===
Výpočetní možnosti popisují vlastnosti zařízení a množinu instrukcí, které jsou podporovány. Některé z&nbsp;těchto vlastností jsou shrnuty v&nbsp;tabulce níže, ostatní lze nalézt v&nbsp;oddílu F nVIDIA CUDA C Programming Guide.<ref name="r-PG4" />{{Citace elektronické monografie
| titul = CUDA Toolkit Documentation v8.0
| url = http://docs.nvidia.com/cuda/index.html#axzz4QZxUCmXI
| datum vydání = 2016-09-27
| datum přístupu = 2016-11-20
| vydavatel = nVIDIA
| jazyk = en
}}</ref>
 
{| class="wikitable" style="text-align: center; margin: 0 auto;"
Řádek 142 ⟶ 130:
== Programovací model ==
[[Soubor:Block-thread.svg|náhled|270px|Uspořádání vláken a bloků]]
CUDA aplikace je složena z&nbsp;částí, které běží buď na host ([[Procesor|CPU]]) nebo na CUDA zařízení (GPU). Části aplikace běžící na zařízení jsou spouštěny hostem zavoláním [[CUDA Kernel|kernelu]], což je funkce, která je prováděna každým spuštěným [[Vlákno (program)|vláknem]] (''thread'' [θred]).
 
; Blok (''thread block'') : Vlákna jsou organizována do 1D, 2D nebo 3D bloků, kde vlákna ve stejném bloku mohou sdílet data a lze synchronizovat jejich běh. Počet vláken na jeden blok je závislý na výpočetních možnostech zařízení. Každé vlákno je v&nbsp;rámci bloku identifikováno unikátním indexem přístupným ve spuštěném kernelu přes zabudovanou [[Proměnná|proměnou]] '''threadIdx'''.
Řádek 159 ⟶ 147:
 
=== Ukázka kódu v CUDA C ===
Převzato z&nbsp;<ref name="r-PG4" />.
<source lang="c">
// Kód pro GPU
Řádek 171 ⟶ 159:
int main()
{
int N = ...;
size_t size = N * sizeof(float);
// Alokace vstupních vektorů h_A and h_B v hlavní paměti
Řádek 177 ⟶ 165:
float* h_B = (float*)malloc(size);
// Inicializace vstupních vektorů
...
// Alokace paměti na zařízení
float* d_A;
Řádek 199 ⟶ 187:
cudaFree(d_C);
// Uvolnění hlavní paměti
...
</source>
 
Řádek 235 ⟶ 223:
|-
! Lokální
| Mimo čip
| style="background-color: #ff9090" | Ne <ref name="cc" group="pozn">Od compute capabilities 2.0 je ukládání do cache umožněno</ref>
| Čtení/Zápis
Řádek 293 ⟶ 281:
 
== Reference ==
<references />
<ref name="devítka">{{Citace elektronického periodika
| příjmení = Hagara
| jméno = Ladislav
| titul = CUDA 9.0
| url = http://www.abclinuxu.cz/zpravicky/cuda-9.0
| vydavatel = Nitemedia s. r. o.
| datum vydání = 2017-09-27
| datum aktualizace =
| datum přístupu = 20112017-1211-0107
| periodikum = AbcLinuxu
| issn = 1214-1267
| jazyk = cs
}}</ref>
<ref name="ncpg">{{Citace elektronické monografie
| titul = nVIDIA CUDA Programming Guide Version 1.1
| url = http://docs.nvidia.com/cuda/index.html#axzz3wagwJWX1
| lokace = nVIDIA Developer
| vydavatel = nVIDIA Corporation
| datum vydání = 2007-11-29
| datum přístupu = 20162017-11-2006
| jazyk = en
}}</ref>
<ref name="r-PG4">{{Citace elektronické monografie
| titul = CUDA Toolkit Documentation v8.0
| url = http://docs.nvidia.com/cuda/index.html#axzz4QZxUCmXI
| lokace = nVIDIA Developer
| vydavatel = nVIDIA Corporation
| datum vydání = 2016-09-27
| datum přístupu = 2017-11-06
| jazyk = en
}}</ref>
</references>
 
{{Autoritní data}}