- poslední přednáška na půlsemestrálku
- atomické instrukce - ještě pomalejší než?
- bariéra
__syncthreads()
- paměťové zábrany jako
ompflush()
- atom v shared mem
- rychlejší než v globální
- ale pomalejší než normální přístup - až 10 taktů (musí se vypláchnout)
- v warpech
synchwarp() - ze synchronizaci nejrychlejší
- velmi drahé při přístupu do 1 proměnné
- to stejné, když je zámek z 2 vláken na 1 cache line
- L2 = latence 100 taktů, stále hodně, ale 10x než global mem
- SM = poměrně levné při dobrém přístupu
- Pokud máme asociativní operaci - můžeme paralelizovat!
volatile zaručí zápis do paměti, ale stačí __syncwarp()
- pokud warp nebyl zasynchronizovaný, tak se použitím této operace za synchronizuje
- Kdo zajistí, že proměnná res byla inicializována na 0?
- kernel předtím nebo z procesoru
- při velkém počtu prvků může mezi část potřebovat udělat víckrát