Урок 2: Зачем нужен GPU? Пропускная способность против задержки
У CPU есть несколько очень мощных ядер, которые быстро завершают одну задачу — это низкая задержка. У GPU тысячи простых ядер, которые выполняют одну и ту же операцию над большим объёмом данных сразу — это высокая пропускная способность. Чтобы сложить два вектора длиной в миллион, CPU проходит элеме
CPU — это несколько шеф-поваров, быстро готовящих одно сложное блюдо. GPU — это тысяча поваров на раздаче, каждый нарезает один помидор — по отдельности каждый медленный, но вместе они нарезают тысячу помидоров за время, нужное на один.
- пропускная способность
- Объём работы, выполняемый за единицу времени. Здесь выигрывает GPU: множество одинаковых операций параллельно.
- задержка
- Время выполнения одной отдельной операции. Здесь выигрывает CPU: одно сильное ядро быстро завершает одну задачу.
- kernel
- Функция, выполняющаяся на GPU. Помечается __global__ и запускается тысячами потоков одновременно.
- SIMT
- Single Instruction, Multiple Threads — все потоки выполняют одну и ту же инструкцию, каждый над своими данными.