Tôi nghĩ câu hỏi này được phục vụ tốt hơn trong phần CS của Stack Exchange. Bây giờ chúng ta có GPGPU với các ngôn ngữ như CUDA và OpenCL, các tiện ích mở rộng SIMD đa phương tiện (SSE / AVX / NEON) có còn phục vụ mục đích không?
Tôi đã đọc một bài báo gần đây về cách các hướng dẫn SSE có thể được sử dụng để tăng tốc các mạng sắp xếp. Tôi nghĩ rằng điều này khá gọn gàng nhưng khi tôi nói với giáo sư kiến trúc sư của mình, anh ấy đã cười và nói rằng việc chạy mã tương tự trên GPU sẽ phá hủy phiên bản SIMD. Tôi không nghi ngờ điều này bởi vì SSE rất đơn giản và GPU là các máy gia tốc lớn rất phức tạp với sự song song hơn rất nhiều, nhưng tôi nghĩ, có nhiều tình huống mà các tiện ích mở rộng SIMD đa phương tiện hữu ích hơn so với sử dụng GPU?
Nếu GPGPU làm cho SIMD trở nên dư thừa, tại sao Intel sẽ tăng hỗ trợ SIMD của họ? SSE là 128 bit, bây giờ là 256 bit với AVX và năm tới nó sẽ là 512 bit. Nếu GPGPU là mã xử lý tốt hơn với tính song song dữ liệu thì tại sao Intel lại đẩy các phần mở rộng SIMD này? Họ có thể có thể đưa các tài nguyên tương đương (nghiên cứu và khu vực) vào bộ đệm và bộ dự báo nhánh lớn hơn để cải thiện hiệu suất nối tiếp.
Tại sao nên sử dụng SIMD thay vì GPGPUs?