Vấn đề chính là các thuật toán sắp xếp (1) cần rất nhiều tính linh hoạt và (2) sẽ rất khó để tăng tốc bằng cách sử dụng phần cứng.
Một điều là các thuật toán sắp xếp đã đủ dễ dàng đủ nhanh để vượt qua băng thông bộ nhớ của bộ xử lý - bộ xử lý sẽ dành một phần lớn thời gian để chờ dữ liệu di chuyển ngược và chuyển sang bộ nhớ chính. Một bộ đồng xử lý sắp xếp tăng tốc phần cứng hoặc một lệnh sắp xếp đặc biệt sẽ có cùng một vấn đề.
Cách thức giải quyết băng thông bộ nhớ này là bằng cách sử dụng các thuật toán và cấu trúc dữ liệu tốt hơn có "địa phương" tốt hơn và vẫn còn nhiều việc phải làm trong lĩnh vực này, đặc biệt là "thuật toán lãng quên bộ nhớ cache" (chúng không biết theo nghĩa là chúng hoạt động cũng không phân biệt các chi tiết của bộ đệm, trong khi các thuật toán "nhận biết bộ đệm" được điều chỉnh cho một kích thước trang bộ đệm cụ thể, v.v.).
Ngược lại, các ứng dụng phương tiện (âm thanh và đồ họa, đặc biệt là đồ họa 3D) sử dụng một số cấu trúc rất lặp đi lặp lại - tất nhiên là có tính linh hoạt, nhưng nó được xây dựng trên nền tảng lớn và có cấu trúc rất tốt. Điều đó cho phép tăng tốc đồ họa để bắt đầu đơn giản với những thứ như Blits (một hoạt động sao chép khối có cấu hình nhưng vẫn rất có cấu trúc) và vẽ đường thẳng / đa giác. Điều đó có nghĩa là khi việc xử lý đồ họa và âm thanh trở nên tinh vi hơn, các hoạt động của vectơ trở thành mục tiêu rõ ràng để tối ưu hóa - MMX đầu tiên (vectơ số nguyên) sau đó là SSE (vectơ của phao). Điều đó có nghĩa là có một cấu trúc được xác định khá rõ ràng về cách thức hoạt động của một công cụ đồ họa 3D khi đường ống đồ họa 3D chức năng cố định cũ được chuyển sang phần cứng đồ họa 3D.
Tuy nhiên, với đồ họa 3D, những gì đã từng được thực hiện trong phần cứng giờ đây được thực hiện bằng phần mềm để tạo sự linh hoạt - ví dụ, shader là phần mềm, đó là cách chúng ta có được một loạt các shader khác nhau tạo ra sự xuất hiện của các vật liệu khác nhau. Tuy nhiên, phần mềm đó vẫn hoạt động theo cách có cấu trúc hơn nhiều so với phần mềm thông thường, và do đó vẫn có thể sử dụng nền tảng phần cứng chuyên dụng hơn nhiều. Đó là lý do tại sao card đồ họa của bạn giờ đây có thể tăng tốc mọi thứ, từ vật lý đến bẻ khóa mật khẩu - các ứng dụng phù hợp với cùng một mô hình và có thể được triển khai hiệu quả bằng cách sử dụng các bộ hướng dẫn mà bộ xử lý đồ họa hiện đại cung cấp.
Bộ xử lý đồ họa bây giờ là hậu duệ tinh thần hoặc thực tế của bộ xử lý tín hiệu số, mà (và có lẽ vẫn là) một loại bộ xử lý chuyên dụng để xử lý tín hiệu số (ví dụ âm thanh).
Điều này dẫn đến một điểm cuối cùng - các thuật toán sắp xếp có thể được tăng tốc bằng phần cứng. Tùy thuộc vào dữ liệu của bạn, việc sắp xếp có thể được xử lý bằng cách sử dụng các lệnh MMX hoặc SSE (một lệnh đa dữ liệu) trên bộ xử lý của bạn, nhưng có lẽ không có nhiều điểm vì vấn đề băng thông bộ nhớ - có thể bạn sẽ tiết kiệm điện hơn một chút theo cách đó, mặc dù. Tuy nhiên, bạn cũng có thể sử dụng phần cứng đồ họa của bạn. Bằng cách đó, bạn có thể hưởng lợi từ băng thông bộ nhớ thường tốt hơn nhiều cho các card đồ họa. Bạn sẽ không thể thay thế tất cả các loại theo cách này, nhưng chắc chắn là có thể và có thể được thực hiện khi thích hợp.
IOW vì các vấn đề kinh tế và thực tế khác nhau, thiết kế phần cứng đặc biệt để tăng tốc một nhiệm vụ tương đối hẹp như sắp xếp không thực sự có ý nghĩa. Một tính năng tăng tốc phạm vi tác vụ rộng hơn hoặc làm cho phần cứng tăng tốc hiện có áp dụng cho phạm vi tác vụ rộng hơn thường có ý nghĩa hơn nhiều.