Kiến trúc của GPU hiện đại

Một phần của tài liệu Giải pháp thiết kế và đánh giá hiệu năng siêu máy tính sử dụng CPU GPU (Trang 35 - 37)

GPU có kiến trúc khác nhau phụ thuộc vào nhà sản xuất. Hình 14 mô tả sơ đồ khối kiến trúc của hai nhà sản xuất GPU phổ biến hiện nay là: kiến trúc Tesla/Fermi của NVIDIA và kiến trúc hệ GPU Evergreen/Nother Island của AMD. Các GPU có một cụm các bộ xử lý đa nhân dòng (SM) hoặc một dãy bộ xử lý song song dữ liệu (DPP) mà mỗi bộ xử lý tƣơng ứng với một nhân của bộ xử lý đa nhân. Mỗi một SM có 8 tới 48 nhân CUDA trong đó mỗi nhân đều chứa các đơn vị tính toán số nguyên/dấu phẩy động, một bộ lập lịch cuộn để xếp lịch các lệnh và một vài bộ nhớ tích hợp. DPP có 16 bộ xử lý luồng có kiến trúc VLIW thực thi đƣờng ống dẫn và bộ nhớ tích hợp để chia sẻ dữ liệu. Mỗi một SM hoặc một DPP sẽ đƣợc coi là một đơn vị tính toán.

Để hỗ trợ cho các đơn vị tính toán (CU - Computing Unit) có một đơn vị điều khiển hoạt động của CU ở cả hai kiến trúc GPU là GigaThread Engine ở GPU của NVIDIA và bộ xử lý gửi tin siêu luồng/ bộ xử lý lệnh ở GPU của AMD. GPU cũng tích hợp sẵn các mạng kết nối giữa các đơn vị tính toán và các hệ thống con bao gồm: bộ đệm, bộ điều khiển bộ nhớ và bộ nhớ của GPU.

37

Hình 14: Sơ đồ khối kiến trúc GPU

Mô hình lập trình cho GPGPU đƣợc thiết kế để xử lý một lƣợng lớn dữ liệu một cách đồng thời bằng các CU. Việc xử lý dữ liệu này liên quan đến khái niệm kernel, kernel là một đoạn chƣơng trình đƣợc thực thi trên GPU. Trong mô hình lập trình CUDA của NVIDIA, hàng nghìn các luồng đƣợc khởi tạo bằng cách tham chiếu đến mã của kernel và kernel cũng đƣợc sử dụng để xử lý dữ liệu một cách song song.

Các luồng đƣợc nhóm lại thành dãy các luồng phối hợp (CTA) và các CTA này đƣợc gán và xử lý bởi các CU. GPU của AMD sử dụng mô hình thực thi OpenCL, là một mô hình tính toán theo chuẩn mở, nó có một sự khác biệt nhỏ với mô hình CUDA. Nó sử dụng thuật ngữ khoản công việc (work-item) và nhóm công việc (work-group) tƣơng ứng với luồng và khối và CTA ở CUDA và chúng cũng đƣợc gán và xử lý bởi các đơn vị tính toán. Mặc dù kiến trúc phần cứng bên trong của GPU của hai hãng hoàn toàn khác biệt nhƣng mô hình thực thi ở mức cao thì tƣơng đồng với nhau.

Kiến trúc hiện tại của GPU ngày càng tích hợp nhiều đơn vị thực thi và tính toán hơn để xử lý nhiều dữ liệu cùng một lúc hơn. Chiến lƣợc này khá hiệu quả trong việc cải thiện sức mạnh tính toán của GPU đồng thời nó cũng làm cho kiến trúc của GPU ngày càng phức tạp. Tuy nhiên, điều này cũng là một thách thức đối với các nhà phát triển ứng dụng tính toán GPGPU trong việc lập trình và tổ chức mã để có thể tận dụng tối đa sức mạnh của GPU.

38

Một phần của tài liệu Giải pháp thiết kế và đánh giá hiệu năng siêu máy tính sử dụng CPU GPU (Trang 35 - 37)

Tải bản đầy đủ (PDF)

(126 trang)