Das Hauptproblem ist, dass Sortieralgorithmen (1) viel Flexibilität benötigen und (2) mit Hardware ohnehin nur sehr schwer zu beschleunigen sind.
Eine Sache ist, dass Sortieralgorithmen bereits schnell genug sind, um die Speicherbandbreite des Prozessors zu überschreiten - der Prozessor verbringt bereits einen großen Teil seiner Zeit damit, darauf zu warten, dass Daten hin und her in den Hauptspeicher verschoben werden. Ein hardwarebeschleunigter Sortier-Co-Prozessor oder eine spezielle Sortieranweisung hätte das gleiche Problem.
Die Art und Weise, wie diese Speicherbandbreite angesprochen wird, besteht darin, bessere Algorithmen und Datenstrukturen zu verwenden, die eine bessere "Lokalität" aufweisen, und auf diesem Gebiet wird noch erhebliche Arbeit geleistet, insbesondere "Cache-ahnungslose Algorithmen" (sie sind in dem Sinne, dass sie funktionieren, ahnungslos unabhängig von den Details des Caching, während "Cache-fähige" Algorithmen auf eine bestimmte Cache-Seitengröße usw. abgestimmt sind.
Im Gegensatz dazu verwenden Medienanwendungen (Audio und Grafik, insbesondere 3D-Grafik) einige sich sehr wiederholende Strukturen - natürlich gibt es Flexibilität, aber sie bauen auf einer großen und sehr gut strukturierten Grundlage auf. Dadurch konnte die Grafikbeschleunigung einfach mit Blitting (einer konfigurierbaren, aber immer noch sehr strukturierten Blockkopieroperation) und dem Zeichnen von Linien / Polygonen beginnen. Mit zunehmender Komplexität der Grafik- und Tonverarbeitung wurden Vektoroperationen zu einem offensichtlichen Ziel für die Optimierung - zuerst MMX (Vektoren von ganzen Zahlen), dann SSE (Vektoren von Floats). Dies bedeutete, dass es eine ziemlich genau definierte Struktur für die Funktionsweise einer 3D-Grafik-Engine gab, als die alte 3D-Grafik-Pipeline mit fester Funktion auf 3D-Grafikhardware verschoben wurde.
Bei 3D-Grafiken wird das, was früher in Hardware gemacht wurde, jetzt in Software aus Gründen der Flexibilität ausgeführt. Shader sind beispielsweise Software. Auf diese Weise erhalten wir eine große Auswahl an verschiedenen Shadern, die das Erscheinungsbild verschiedener Materialien verleihen. Diese Software funktioniert jedoch immer noch viel strukturierter als allgemeine Software und kann daher immer noch eine viel spezialisiertere Hardwareplattform verwenden. Aus diesem Grund kann Ihre Grafikkarte jetzt alles von der Physik bis zum Knacken von Passwörtern beschleunigen - Anwendungen, die ebenfalls zu demselben Modell passen und mithilfe der Befehlssätze moderner Grafikprozessoren effizient implementiert werden können.
Grafikprozessoren sind heute die geistigen oder tatsächlichen Nachkommen digitaler Signalprozessoren, die eine Art spezialisierter Prozessor für den Umgang mit digitalen Signalen (z. B. Audio) waren (und wahrscheinlich immer noch sind).
Was zu einem letzten Punkt führt - Sortieralgorithmen können durch Hardware beschleunigt werden. Abhängig von Ihren Daten kann die Sortierung mithilfe von MMX- oder SSE-Anweisungen (Single-Instruction-Multiple-Data) auf Ihrem Prozessor durchgeführt werden, aber aufgrund des Problems mit der Speicherbandbreite macht es wahrscheinlich nicht viel Sinn - vielleicht können Sie etwas energieeffizienter sein auf diese Weise jedoch. Sie können jedoch auch Ihre Grafikhardware verwenden. Auf diese Weise können Sie von der oft viel besseren Speicherbandbreite für Grafikkarten profitieren. Sie werden nicht in der Lage sein, alle Arten auf diese Weise zu ersetzen, aber es ist sicherlich möglich und wird wahrscheinlich gegebenenfalls durchgeführt.
IOW ist aufgrund der verschiedenen wirtschaftlichen und praktischen Probleme nicht wirklich sinnvoll , Hardware speziell zu entwickeln, um eine relativ enge Aufgabe wie das Sortieren zu beschleunigen. Eine Funktion, die einen größeren Aufgabenbereich beschleunigt oder vorhandene Beschleunigungshardware auf einen größeren Aufgabenbereich anwendbar macht, ist häufig viel sinnvoller.