Len taka mala poznamocka: Tipujem ze malo byt: cudaMemcpyHostToDevice Kopírování paměti z hosta do globální paměti ZARIZENI
Inak diki za fajn clanok.
Len taka mala poznamocka: Tipujem ze malo byt: cudaMemcpyHostToDevice Kopírování paměti z hosta do globální paměti ZARIZENI
Inak diki za fajn clanok.
Dobrý článek. Jinak by to chtělo uvést velikosti jednotlivých pamětí.
Local – 16KB Shared – 16KB Constant – 64KB
(Strana 29, NVIDIA_CUDA_BestPracticesGuide2.3.pdf)
Přičemž shared memory je ještě o 32B menší. (0×4000 – 0×0020)
Procesory mají 8192 nebo 16384 registrů.
A ještě bych doporučoval zmínit možnost využití Pinned memory na hostovi pro podstatně rychlejší kopírování mezi Device a Hostem a mapování paměti zařízení na paměť hosta.
Funkce cudaMallocHost.
Bohužel se všechno do jednoho článku nevejde. Ale určitě bude problematika paměti (např. pinned memory) ještě probrána v dalších dílech.
Souhlas. To mi v článku chybělo, díky.
Nemuzu rict, ze to zrovna chapu. Nebylo by mozne dalsi dil vydat v komiksove forme?
chapat to zacnes az to budes potrebovat. dokud to nepotrebujes nutne tak se k tomu nedokazes intelektualne dokopat.
…by nebolo? Napr. ze si to nakodim na zahradke na nettope, doma vyskusam na ATI a pustim u kamarata gemblera na ultra-drahej grafike. (davam to sem, lebo tu je vyssia pravdepodobnost odpovede ako v 1.dieli)
OpenCL… …snad, jednou
Ještě jedna věc by stála za zmínku – paměťové banky a přístup do nich.
Dobrý den,
chtěl bych se zeptat na 3. podmínku:
Všech 16 elementů leží ve stejném segmentu, přičemž adresa prvního elementu musí být zarovnána k 16násobku velikosti elementu.
chtěl bych se zeptat, jak tuto podmínkou splním, jestli jsem to správně pochopil tak pokud mam pole intu, tak ukazatel na pole(první prvek) musí byt Nx4×16 (N = nějaký násobek, 4 = velikost intu,16 = z podmínky). takže pokud to tak je, tak by mě zajímalo jak to splním.:-/
Chybička se vloudila do obr. cuda-3–1.png. BlockDim.x nemůže být 3, protože jinak by nevyšlo idx. Podle mě je BlockDim.x úplně špatně namalován a má být 4.
Taky jsem premyslel jak se muze 3*2+0 = 8
Dle meho nazoru by se melo to pocitat jako ID bloku * Pocet vlaken v bloku + ID vlakna nez ID bloku * Pocet bloku + ID vlakna.
Je tu nekdo, kdo ma v tomto jasno ?
z Cuda Programming Guide Version 3.0:
B.4.3 blockDim
This variable is of type dim3 (see Section B.3.2) and contains the dimensions of the block.
Tim padem je obrazek opravdu spatne a 3 ma byt 4 protoze se nejedna o pocet bloku, ale logicky o pocet vlaken v bloku.