El problema principal es que los algoritmos de clasificación (1) necesitan mucha flexibilidad y (2) sería muy difícil acelerar el uso de hardware de todos modos.
Una cosa es que los algoritmos de clasificación ya son lo suficientemente rápidos como para superar el ancho de banda de la memoria del procesador: el procesador ya pasará una gran parte de su tiempo esperando que los datos se muevan hacia atrás y hacia adelante a la memoria principal. Un coprocesador de clasificación acelerado por hardware o una instrucción de clasificación especial tendrían el mismo problema.
La forma en que se aborda este ancho de banda de memoria es mediante el uso de mejores algoritmos y estructuras de datos que tienen una mejor "localidad", y todavía se está realizando un trabajo significativo en este campo, particularmente "algoritmos ajenos a la memoria caché" (son ajenos en el sentido de que funcionan bien independientemente de los detalles del almacenamiento en caché, mientras que los algoritmos "conscientes de caché" están ajustados para un tamaño de página de caché particular, etc.
En contraste, las aplicaciones de medios (audio y gráficos, particularmente gráficos en 3D) hacen uso de algunas estructuras muy repetitivas; por supuesto, hay flexibilidad, pero está construido sobre una base grande y muy bien estructurada. Eso permitió que la aceleración de gráficos comenzara de manera simple con cosas como Blitting (una operación de copia en bloque configurable pero aún muy estructurada) y dibujo de línea / polígono. Significaba que a medida que los gráficos y el procesamiento de sonido se volvían más sofisticados, las operaciones vectoriales se convirtieron en un objetivo obvio para la optimización: primero MMX (vectores de enteros) y luego SSE (vectores de flotadores). Significaba que había una estructura bastante bien definida de cómo funcionaba un motor de gráficos 3D cuando la antigua tubería de gráficos 3D de función fija se movía al hardware de gráficos 3D.
Sin embargo, con los gráficos en 3D, lo que una vez se hizo en hardware ahora se hace en software por flexibilidad: los sombreadores son software, por ejemplo, y así es como obtenemos una amplia gama de diferentes sombreadores que dan la apariencia de diferentes materiales. Sin embargo, ese software todavía funciona de una manera mucho más estructurada que el software general y, por lo tanto, todavía puede usar una plataforma de hardware mucho más especializada. Es por eso que su tarjeta gráfica ahora puede acelerar todo, desde física hasta descifrar contraseñas, aplicaciones que también se ajustan al mismo modelo y pueden implementarse eficientemente utilizando los conjuntos de instrucciones que proporcionan los procesadores gráficos modernos.
Los procesadores gráficos ahora son descendientes espirituales o reales de los procesadores de señales digitales, que eran (y probablemente aún lo son) un tipo de procesador especializado para manejar señales digitales (por ejemplo, audio).
Lo que lleva a un punto final: los algoritmos de clasificación pueden acelerarse por hardware. Dependiendo de sus datos, la ordenación puede manejarse usando instrucciones MMX o SSE (instrucción única-datos múltiples) en su procesador, pero probablemente no tenga mucho sentido debido al problema del ancho de banda de la memoria; tal vez pueda ser un poco más eficiente en cuanto a consumo de energía de esa manera, sin embargo. Sin embargo, también podría usar su hardware de gráficos. De esa manera, puede beneficiarse del ancho de banda de memoria, a menudo mucho mejor, para las tarjetas gráficas. No podrá reemplazar todo tipo de esta manera, pero ciertamente es posible y probablemente se haga cuando sea apropiado.
IOW debido a los diversos problemas económicos y prácticos, el diseño de hardware específicamente para acelerar una tarea relativamente estrecha como la clasificación realmente no tiene sentido. Una característica que acelera una gama más amplia de tareas, o que hace que el hardware de aceleración existente sea aplicable a una gama más amplia de tareas, a menudo tiene mucho más sentido.