Основне питання полягає в тому, що алгоритмам сортування (1) потрібна велика гнучкість, і (2) було б дуже важко прискорити використання апаратного забезпечення в будь-якому випадку.
Одне полягає в тому, що алгоритми сортування вже досить швидко швидко перевищують пропускну здатність пам’яті процесора - процесор вже витратить велику частку свого часу, чекаючи, коли дані переміщаться назад і вперед до основної пам'яті. Таку ж проблему мали б і апаратний прискорений сортування процесора сортування або спеціальна інструкція щодо сортування.
Спосіб вирішення цієї пропускної здатності пам’яті полягає у використанні кращих алгоритмів та структур даних, які мають кращу «локальність», і в цій галузі все ще виконується значна робота, зокрема «кешувати алгоритми, що не забувають» (вони не мають уваги в тому сенсі, що вони працюють добре незалежно від деталей кешування, тоді як алгоритми "відомості про кеш" налаштовані на певний розмір сторінки кешу тощо).
На відміну від цього, медіа-додатки (аудіо та графіка, зокрема 3D-графіка) використовують деякі дуже повторювані структури - звичайно, є гнучкість, але вона побудована на основі великої та дуже добре структурованої основи. Це дозволило прискорити графічне прискорення з таких речей, як Blitting (налаштований, але все ще дуже структурований блок копіювання) та малювання ліній / багатокутників. Це означало, що в міру того, як графіка та обробка звуку стали більш досконалими, векторні операції стали очевидною метою оптимізації - спочатку MMX (вектори цілих чисел), а потім SSE (вектори поплавків). Це означало, що існує досить чітко визначена структура того, як працював 3D-графічний двигун, коли старий конвеєр 3D-графічної графіки був переміщений на апаратне забезпечення 3D-графіки.
Однак з 3D-графікою те, що колись робилося в апаратному забезпеченні, зараз робиться в програмному забезпеченні для гнучкості - наприклад, шейдери - це програмне забезпечення, саме таким чином ми отримуємо величезний спектр різних шейдерів, що надають зовнішній вигляд різних матеріалів. Однак це програмне забезпечення все ще працює набагато більш структуровано, ніж загальне програмне забезпечення, і тому все ще може використовувати набагато більш спеціалізовану апаратну платформу. Ось чому ваша відеокарта тепер може пришвидшити все, починаючи від фізики до зламання паролів - додатків, які також відповідають тій самій моделі та можуть бути ефективно реалізовані за допомогою наборів інструкцій, які надають сучасні графічні процесори.
Графічні процесори зараз є духовними або фактичними нащадками цифрових сигнальних процесорів, які були (і, мабуть, досі є) своєрідним спеціалізованим процесором для обробки цифрових сигналів (наприклад, аудіо).
Що призводить до кінцевої точки - алгоритми сортування можуть бути прискорені апаратними засобами. Залежно від ваших даних, сортуванням можна займатися за допомогою інструкцій MMX або SSE (одна інструкція з декількома даними) на вашому процесорі, але, мабуть, немає великого сенсу через проблеми з пропускною здатністю пам'яті - можливо, ви можете бути трохи ефективнішими таким чином, хоча. Однак ви також можете використовувати графічне обладнання. Таким чином, ви можете скористатися часто набагато кращою пропускною здатністю пам'яті для відеокарт. Ви не зможете замінити всілякі способи таким чином, але це, безумовно, можливо і, ймовірно, робиться там, де це доречно.
IOW через різні економічні та практичні проблеми, проектування апаратних засобів спеціально для прискорення відносно вузьких завдань, таких як сортування, насправді не має сенсу. Функція, яка прискорює більш широкий спектр завдань, або яка робить існуюче обладнання для прискорення застосовно до більш широкого кола завдань, часто має набагато більше сенсу.