Le problème principal est que les algorithmes de tri (1) ont besoin de beaucoup de flexibilité et (2) seraient de toute façon très difficiles à accélérer en utilisant du matériel.
Une chose est que les algorithmes de tri sont déjà assez rapides pour dépasser la bande passante mémoire du processeur - le processeur passera déjà une grande partie de son temps à attendre que les données se déplacent en arrière et en avant vers la mémoire principale. Un coprocesseur de tri accéléré par matériel ou une instruction de tri spéciale aurait le même problème.
La façon dont cette bande passante mémoire est traitée consiste à utiliser de meilleurs algorithmes et des structures de données qui ont une meilleure «localité», et il y a encore un travail important à faire dans ce domaine, en particulier les «algorithmes inconscients du cache» (ils sont inconscients dans le sens où ils fonctionnent). bien quels que soient les détails de la mise en cache, alors que les algorithmes "sensibles au cache" sont réglés pour une taille de page de cache particulière, etc.).
En revanche, les applications multimédias (audio et graphiques, en particulier les graphiques 3D) utilisent des structures très répétitives - bien sûr, il y a de la flexibilité, mais elles sont construites sur une base large et très bien structurée. Cela a permis à l'accélération graphique de commencer simplement avec des choses comme Blitting (une opération de copie de bloc configurable mais toujours très structurée) et le dessin de ligne / polygone. Cela signifiait que les graphiques et le traitement du son devenant plus sophistiqués, les opérations vectorielles devinrent une cible évidente pour l'optimisation - d'abord MMX (vecteurs d'entiers) puis SSE (vecteurs de flottants). Cela signifiait qu'il y avait une structure assez bien définie pour le fonctionnement d'un moteur graphique 3D lorsque l'ancien pipeline de graphiques 3D à fonction fixe a été déplacé sur du matériel graphique 3D.
Pourtant, avec les graphiques 3D, ce qui était autrefois fait dans le matériel l'est maintenant dans le logiciel pour plus de flexibilité - les shaders sont des logiciels, par exemple, c'est ainsi que nous obtenons une vaste gamme de shaders différents donnant l'apparence de différents matériaux. Cependant, ce logiciel fonctionne toujours de manière beaucoup plus structurée que les logiciels généraux, et peut donc toujours utiliser une plate-forme matérielle beaucoup plus spécialisée. C'est pourquoi votre carte graphique peut désormais tout accélérer, de la physique au cracking des mots de passe - des applications qui correspondent également au même modèle et peuvent être mises en œuvre efficacement à l'aide des jeux d'instructions fournis par les processeurs graphiques modernes.
Les processeurs graphiques sont maintenant les descendants spirituels ou réels des processeurs de signaux numériques, qui étaient (et sont probablement toujours) une sorte de processeur spécialisé pour traiter les signaux numériques (par exemple audio).
Ce qui conduit à un point final - les algorithmes de tri peuvent être accélérés par le matériel. Selon vos données, le tri peut être géré à l'aide d'instructions MMX ou SSE (single-instruction-multiple-data) sur votre processeur, mais il n'y a probablement pas grand-chose à cause du problème de bande passante mémoire - peut-être pouvez-vous être un peu plus économe en énergie de cette façon, cependant. Cependant, vous pouvez également utiliser votre matériel graphique. De cette façon, vous pouvez bénéficier d'une bande passante mémoire souvent bien meilleure pour les cartes graphiques. Vous ne pourrez pas remplacer toutes sortes de cette façon, mais c'est certainement possible et probablement fait le cas échéant.
IOW en raison des divers problèmes économiques et pratiques, concevoir du matériel spécifiquement pour accélérer une tâche relativement étroite comme le tri n'a pas vraiment de sens. Une fonctionnalité qui accélère une gamme plus large de tâches ou qui rend le matériel d'accélération existant applicable à une gamme plus large de tâches a souvent beaucoup plus de sens.