- silně NUMA systémy
- NVLINK proprietární propojení, 2 až 4 linky
- “síťová karta v gpu”
- tlustý strom, poissova síť
- mnohonásobně dražší systém - až u karet, co stojí třeba 0.5 milionu
- power 9 a 10
- potřeba přemýšlet na rozpoložení/topografii - jak problém rozdělit a namapovat
cudaSetDevice(int deviceID) - důležitý výběr GPU
- přepneme se na danou kartu
- pozor na parametry kernelu!
- mapuje indexy na volné karty (asi vždy 0, 1, …)
- ve slurmu soubor gs.conf?
cudaSetDeviceFlags()
- příznaky pro memcpy jsou zbytečné, pozná se podle pointeru do kterého zařízení se jde
- Explicitně - Device 2 host, Host 2 device, synchronizace, …
- Explicitně - Peer-to-Peer transfery
- Implicitně - dám kernelu pointer kam má nakopírovat, sníží počet kernelů, které budeme potřebovat, potřeba vyřešit synchronizaci
- principielně cache koherence - všichni vidí všechno
- nvidiaComminicationLibrary - subset MPI, nvidiaSent, Receive, Broadcast, …
enable je jednosměrný, pro oba směry musíme enablenout na obou GPU
- CUDA-aware MPI umožňuje použití datových typů a přenos dat přes síť přímo z GPU
- potřebuje zorchestrovat pointery do paměti jiných ranků (/gpu)