Нічого не вільне. GPGPU - SIMD. Інструкції SIMD щодо GPGPU, як правило, ширші, ніж інструкції SIMD на процесорах. GPGPU, як правило, є дрібнозернистими багатопотоковими (і мають набагато більше апаратних контекстів, ніж процесори). GPGPU оптимізовані для потокового передавання . Вони, як правило, приділяють більший відсоток площі одиницям з плаваючою точкою, менший відсоток площі для кешування, і менший відсоток площі для цілої продуктивності.
Давайте зробимо порівняння. Ядро Intel i7-5960x має 8 ядер, кожне з 4-широким (подвійною точністю) SIMD, працює на 3 ГГц (3,5 ГГц турбо), кеш-пам'ять L3 20 М, споживає 356 мм ^ 2 і 140 Вт і коштує 1000 доларів. Так 8 * 4 * 3 * 4 = 384 подвійних точності GFlops. (Додатковий 4x - це тому, що ви можете робити два злиті-множувати-додавання на векторну смугу за цикл.) Це може зробити 768 одноточних GFlops. Це приблизно 1,08 DP GFlops / мм ^ 2 і 2,75 DP GFlops / Вт. Також є близько 57,5 Кб / мм ^ 2 в кеш-пам'яті.
GeForce GTX Titan Black NVidia має 15 SMX, кожен з 32-дюймовою подвійною точністю SIMD, працює на частоті 890 МГц (980 МГц турбо), 3,5 М кеш-пам'яті L1 + L2, споживає 561 мм ^ 2, 250 Вт і коштує 1000 доларів. Так 15 * 32 * .89 * 4 = 1709 GFlops з подвійною точністю. (Те саме 4x з двох злитих-множих-додавань на векторну смугу за цикл.) Це може зробити 5126 одноточних GFlops. Це приблизно 3,05 DP GFlops / мм ^ 2 і 6,8 DP GFlops / Watt. Отже, 3x щільність плаваючої точки DP на одиницю площі та 3x ефективність потужності з плаваючою точкою DP. А компроміс? 6,4 КБ / мм ^ 2 кеш-пам'яті. Приблизно в 9 разів менш щільний, ніж процесор.
Отже, головна відмінність полягає в тому, що GPU обрав баланс площі, який сильно надає перевагу плаваючій точці (і особливо плаваючій точці з одною точністю) над кешем. Навіть ігноруючи той факт, що вам потрібно копіювати матеріали між процесором і графічним процесором, щоб зробити I / O, наскільки добре буде GPU робити порівняно з процесором, залежить від програми, яку ви виконуєте.
Якщо у вас є паралельна програма з плаваючою комою з дуже невеликою розбіжністю в управлінні (всі векторні смуги одночасно виконують те саме), і ваша програма потокова (не може отримати користь від кешування), то GPU збирається приблизно 3 рази ефективніше на одиницю площі або на ватт. Але якщо у вас є якась велика кількість розбіжних керуючих, не паралельних даних даних для виконання, або ви можете отримати користь від великих даних багато разів читати структури, процесор, ймовірно, зробить краще.