Các câu trả lời khác ở đây là khá tốt. Tôi cũng sẽ ném vào 2 xu của mình.
Một lý do khiến CPU trở nên quá phổ biến là chúng linh hoạt. Bạn có thể lập trình lại chúng cho vô số nhiệm vụ. Ngày nay, các công ty sản xuất sản phẩm gắn CPU hoặc vi điều khiển nhỏ vào một thứ gì đó và lập trình chức năng của nó rẻ hơn và nhanh hơn so với việc phát triển mạch tùy chỉnh để thực hiện cùng một nhiệm vụ.
Bằng cách sử dụng cùng một thiết bị với các thiết bị khác, bạn có thể tận dụng các giải pháp đã biết cho các sự cố khi sử dụng cùng thiết bị đó (hoặc tương tự). Và khi nền tảng trưởng thành, các giải pháp của bạn phát triển và trở nên rất trưởng thành và tối ưu hóa. Những người viết mã trên các thiết bị này cũng có được chuyên môn và trở nên rất giỏi trong nghề của họ.
Nếu bạn đã tạo ra một loại thiết bị mới từ đầu, một số thay thế cho GPU, sẽ mất nhiều năm để ngay cả những người dùng đầu tiên thực sự hiểu được cách sử dụng nó. Nếu bạn gắn ASIC vào CPU, làm thế nào để bạn tối ưu hóa tính toán giảm tải cho thiết bị đó?
Cộng đồng kiến trúc máy tính đã trở nên ồn ào với ý tưởng này trong nhiều năm (rõ ràng nó đã phổ biến trước đây, nhưng gần đây đã chứng kiến sự phục hưng). Những 'máy gia tốc' (thuật ngữ của chúng) có mức độ lập trình lại khác nhau. Vấn đề là, làm thế nào hẹp bạn xác định phạm vi của vấn đề mà máy gia tốc của bạn có thể giải quyết? Tôi thậm chí đã nói chuyện với một số người đang làm việc tạo ra một máy gia tốc sử dụng các mạch tương tự với op-amps để tính toán các phương trình vi phân. Ý tưởng tuyệt vời, nhưng phạm vi cực kỳ hẹp.
Sau khi bạn có một máy gia tốc làm việc, các lực lượng kinh tế sẽ quyết định số phận của bạn. Quán tính thị trường là một lực lượng đáng kinh ngạc. Ngay cả khi một cái gì đó là một ý tưởng tuyệt vời, nó có khả thi về mặt kinh tế để tái cấu trúc các giải pháp làm việc của bạn để sử dụng thiết bị mới này không? Co le không.
GPU thực sự khủng khiếp đối với một số loại vấn đề nhất định, vì vậy rất nhiều người / công ty đang làm việc trên các loại thiết bị khác. Nhưng GPU đã quá cố thủ, liệu các thiết bị của họ có trở nên khả thi về mặt kinh tế không? Tôi đoán chúng ta sẽ thấy.
Chỉnh sửa: Mở rộng câu trả lời của tôi một chút, bây giờ tôi xuống xe.
Một nghiên cứu trường hợp thận trọng là dự án Intel Larrabee. Nó khởi đầu như một thiết bị xử lý song song có thể làm đồ họa trong phần mềm; nó không có phần cứng đồ họa chuyên dụng. Tôi đã nói chuyện với một người làm việc trong dự án, và một lý do chính khiến họ nói rằng nó thất bại và bị hủy bỏ (bên cạnh chính trị nội bộ khủng khiếp) là họ không thể có được trình biên dịch để tạo ra mã tốt cho nó. Tất nhiên nó tạo ra mã làm việc, nhưng nếu toàn bộ điểm của sản phẩm là hiệu suất tối đa thì tốt hơn bạn nên có một trình biên dịch tạo mã khá tối ưu. Điều này trở lại với nhận xét trước đây của tôi về việc thiếu chuyên môn sâu về cả phần cứng và phần mềm cho thiết bị mới của bạn là một vấn đề lớn.
Một số yếu tố của thiết kế Larrabee đã biến nó thành Xeon Phi / Intel MIC. Sản phẩm này thực sự làm cho nó ra thị trường. Nó hoàn toàn tập trung vào việc song song hóa các tính toán khoa học và loại HPC khác. Có vẻ như đó là một thất bại thương mại bây giờ. Một người khác mà tôi đã nói chuyện với Intel ngụ ý rằng họ chỉ không cạnh tranh về giá / hiệu năng với GPU.
Mọi người đã cố gắng tích hợp tổng hợp logic cho các trình biên dịch vào các trình biên dịch, để bạn có thể tự động tạo mã cho các trình tăng tốc của bạn. Họ không làm việc tốt.
Một nơi dường như là mảnh đất thực sự màu mỡ cho máy gia tốc, hoặc các lựa chọn thay thế khác cho GPU, là đám mây. Nền kinh tế quy mô tồn tại tại các công ty lớn như Google, Amazon và Microsoft khiến việc đầu tư vào các chương trình tính toán thay thế đáng giá. Ai đó đã đề cập đến các đơn vị xử lý tenor của Google. Microsoft có các GPU và các thứ khác trên khắp cơ sở hạ tầng Bing và Azure. Câu chuyện tương tự với Amazon. Nó hoàn toàn có ý nghĩa nếu quy mô có thể bù đắp khoản đầu tư của bạn về thời gian, tiền bạc và nước mắt kỹ sư.
Tóm lại, chuyên môn hóa là mâu thuẫn với rất nhiều thứ khác (kinh tế, sự trưởng thành của nền tảng, chuyên môn kỹ thuật, vv). Chuyên môn hóa có thể cải thiện đáng kể hiệu suất của bạn, nhưng nó thu hẹp phạm vi mà thiết bị của bạn được áp dụng. Câu trả lời của tôi tập trung vào rất nhiều tiêu cực, nhưng chuyên môn hóa cũng có rất nhiều lợi ích. Nó hoàn toàn nên được theo đuổi và điều tra, và như tôi đã đề cập, nhiều nhóm đang theo đuổi nó khá tích cực.
Xin lỗi, chỉnh sửa lại: Tôi nghĩ tiền đề ban đầu của bạn là sai. Tôi tin rằng đó không phải là một trường hợp tìm kiếm thêm nguồn sức mạnh tính toán, và nhiều trường hợp mọi người nhận ra một cơ hội. Lập trình đồ họa rất nặng về đại số tuyến tính và GPU được thiết kế để thực hiện hiệu quả các hoạt động phổ biến như nhân ma trận, hoạt động véc tơ, v.v. Các hoạt động cũng rất phổ biến đối với máy tính khoa học.
Sự quan tâm đến GPU bắt đầu ngay khi mọi người nhận ra rằng những lời hứa mà dự án Intel / HP EPIC đưa ra đã bị cường điệu hóa quá mức (cuối những năm 90 đầu những năm 2000). Không có giải pháp chung cho song song hóa trình biên dịch. Vì vậy, thay vì nói "chúng ta tìm thấy sức mạnh xử lý nhiều hơn ở đâu, ồ chúng ta có thể thử GPU", tôi nghĩ rằng đó là "chúng ta có một cái gì đó tốt khi tính toán song song, chúng ta có thể làm cho điều này có thể lập trình chung hơn". Rất nhiều người tham gia vào cộng đồng máy tính khoa học, những người đã có mã Fortran song song họ có thể chạy trên máy Cray hoặc Tera (Tera MTA có 128 luồng phần cứng). Có lẽ có sự chuyển động từ cả hai hướng, nhưng tôi chỉ nghe đề cập đến nguồn gốc của GPGPU từ hướng này.