Trong khi đó thì AMD và Intel lại đƣa ra kiến trúc hợp nhất giữa CPU và GPU lên trên cùng một bảng mạch, ví dự nhƣ AMD Fusion và Intel Knight Ferry với mong muốn sẽ gỡ bỏ đƣợc nút thắt cổ chai ở PCIe.
Hình 25 mô tả nguyên nhân xảy ra tình trạng thắt cổ chai ở kết nối PCIe với hệ thống có GPU riêng biệt. Nhƣ đã nói ở trên, CPU x86 có quyền truy cập bộ nhớ hệ thống cũng nhƣ việc khởi tạo các tác vụ tính toán trên GPU.. Mặc dù GPU có thể thực thi hàng trăm tỷ phép tính dấu phẩy động một giây nhƣng hiện tại kết nối PCIe chỉ có thể truyền tải khoảng một gigaword một giây [23]. Việc tái sử dụng dữ liệu không phải lúc nào cũng khả thi do đó sẽ có những trƣờng hợp mà thời gian thực thi tính toán trên GPU nhỏ hơn thời gian để truyền dữ liệu đến GPU hoặc có những ứng dụng mà quá trình DMA phải thực hiện nhiều lần. Đối với những ứng dụng nhƣ vậy thì việc sử dụng mô hình CPU-GPU riêng biệt không đảm bảo sẽ đem lại hiệu năng cần thiết.
57
Hình 25: Sơ đồ khối CPU GPU riêng biệt
Nhận thấy sự hạn chế trên nên AMD đã đƣa ra kiến trúc Fusion hay còn gọi là kiến trúc CPU-GPU hợp nhất. Nếu nhìn một cách tổng quát nhất thì kiến trúc Fusion là sự kết hợp bộ xử lý vô hƣớng dùng cho tính toán chung với bộ xử lý véc tơ trên cùng một bảng mạch tạo thành một bộ xử lý tính toán không đồng nhất. Kiến trúc này nhắm tới việc đƣa ra một giải pháp “tốt cả cho hai thế giới” nghĩa là những tác vụ vô hƣớng nhƣ xử lý từ, duyệt web sẽ đƣợc xử lý bởi nhân CPU x86 còn các tác vụ dạng véc tơ nhƣ xử lý dữ liệu song song thì sẽ đƣợc nhân GPU xử lý.
Hình 26 là sơ đồ khối của kiến trúc Fusion. Điểm đáng chú ý trong mô hình này là nhân CPU x86 và engine SIMD cùng nối với bộ nhớ hệ thống qua chung một đƣờng bus tốc độ cao và bộ điều khiển bộ nhớ. Nhớ vào yếu tố trên mà kiến trúc Fusion của AMD đã loại bỏ đƣợc sự phụ thuộc vào kết nối PCIe mà từ trƣớc tới giờ luôn là điểm hạn chế lớn làm giảm hiệu năng của hệ thống CPU-GPU riêng biệt. Ngoài việc tích hợp các bộ xử lý trên cùng một bo mạch, kiến trúc Fusion còn tích hợp bộ điều khiển bộ nhớ, bộ điều khiển I/O, bộ giải mã video, đầu ra hiển thị và các giao diện bus trên cùng một bo mạch.
58
Tuy nhân x86 và các engine SIMD cùng chia sẻ một đƣờng bus tới bộ nhớ hệ thống nhƣng thế hệ đầu tiên của kiến trúc Fusion lại chia bộ nhớ hệ thống ra thành hai phần: một phần khả dụng và điều khiển bởi nhân x86 và phần còn lại quản lý bởi phần mềm chạy trên các engine SIMD. Do đó, ngay cả kiến trúc Fusion, dữ liệu vẫn phải chuyển từ phần của hệ điều hành sang phần dành cho GPU. Tuy nhiên dữ liệu này không phải đi qua kết nối PCIe và AMD sử dụng cơ chế chuyển khối dữ liệu tốc độ cao để chuyển dữ liệu giữa hai vùng nhớ. Vì vậy kiến trúc Fusion của AMD hứa hẹn là một giải pháp cải thiện hiệu năng cho các ứng dụng GPGPU đang phải chịu tình trạng thắt cổ chai ở kết nối PCIe.
Hình 26: Kiến trúc Fusion của AMD
Trong tƣơng lai, kiến trúc Fusion đƣợc kì vọng sẽ sử dụng bộ nhớ liền một khối giữa hai vùng nhớ, tức là sẽ không có công đoạn chuyển dữ liệu từ vùng nhớ của CPU sang vùng nhớ của GPU [23]. Mô hình lập trình trên kiến trúc Fusion theo chuẩn của OpenCL nên tất cả những ứng dụng cho hệ thống CPU-GPU riêng biệt trên nền OpenCL đều có thể chạy mà không cần chỉnh sửa trên các hệ thống theo kiến trúc Fusion.
59
Hình 27: Kiến trúc hợp nhất giữa CPU và GPU trên một bảng mạch