Nghiên cứu và tìm hiểu kiến trúc GPU Nvidia - Pdf 13

Nghiên cứu và tìm hiểu kiến trúc GPU Nvidia
A. Tổng quan về điện toán GPU (GPU computing)
1. GPU là gì?
GPU viết tắt cho Graphics Processing Unit được gọi là Đơn vị xử lý đồ họa ( đôi khi được gọi VPU –
Visual Processing Unit) là một bộ vi xử lý chuyên dụng nhận nhiệm vụ tăng tốc, xử lý đồ họa cho
bộ vi xử lý trung tâm CPU.
Các GPU hiện đại có năng suất rất cao trong xử lý đồ họa máy tính. Với cấu trúc mang tính xử lý
song song mạnh mẽ của mình, GPU cho thấy nó hiệu quả hơn CPU rất nhiều trong nhiều thuật
toán phức tạp.
GPU được sử dụng trong các hệ thống nhúng, điện thoại di động, máy tính cá nhân, máy trạm,
máy chơi game v…v.. Trong máy tính cá nhân, một GPU có thể xuất hiện ở card đồ họa, hoặc nó
cũng có thể được gắn trên mainboard.
2. Lịch sử phát triển của điện toán GPU (GPU computing)
GPU được đưa ra và giới thiệu lần đầu tiên vào 31-8-1999 bởi NVIDIA và được xem như bộ xử lý
song song phổ biến nhất cho đến nay. Dựa trên những mong muốn chưa được thỏa mãn về khả
năng đồ họa như thật, thời gian thực, GPU đã phát triển trở thành bộ xử lý có thể biểu diễn các
phép tính dấu chấm động (floating-point) cũng như khả năng lập trình. Những GPU ngày nay đã
thật sự vượt qua các CPU trong khả năng tính toán số học và băng thông bộ nhớ, khiến chúng trở
thành bộ xử lý lý tưởng để tăng tốc nhiều ứng dụng xử lý dữ liệu song song khác nhau.
GPGPU
Các nỗ lực để khai thác GPU cho các ứng dụng không mang tính đồ họa đã được tiến hành từ năm
2003. Đặc biệt trong khoa học máy tính, cùng với các nhà nghiên cứu trong các lĩnh vực như hình
ảnh y khoa, điện từ… Họ đã bắt đầu sử dụng GPU để chạy các ứng dụng điện toán đa dụng
(general purpose). Họ đã nhận thấy sự xuất sắc trong khả năng biểu diễn các phép tính dấu chấm
động của các GPU, dẫn đến tăng hiệu suất rất lớn cho một loạt các ứng dụng khoa học. Từ đó dẫn
đến sự ra đời của GPGPU – General Purpose computing (Điện toán đa dụng).
GPU computing
Tuy mô hình GPGPU đã chứng minh khả năng tăng tốc tuyệt vời của mình, nhưng nó vẫn phải đối
mặt với một số vấn đề. Thứ nhất, nó đòi hỏi các lập trình viên phải có kiến thức sâu sắc về các giao
diện lập trình ứng dụng đồ họa (graphics APIs) và kiến trúc của GPU. Thứ hai, các vấn đề phải
được thể hiện trong các thuật ngữ của các chương trình xác định tọa độ đỉnh (vertex

512 nhân CUDA hiệu suất cao
Mỗi SM có 32 bộ xử lý CUDA – một sự cải thiện gấp 4 lần so với các thiết kế SM trước đây. Mỗi bộ xử lý
CUDA có đầy đủ các pipeline đơn vị luận lý toán học số nguyên(ALU) và đơn vị dấu chấm động (FPU). Các
GPU trước đây sử dụng các bộ số học dấu chấm động IEE 754-1985. Kiến trúc Fermi bổ sung chuẩn
floating-point mới là IEEE 754-2008, cung cấp chỉ thị fused multiply-add (FMA) cho cả các phép tính chính
xác đơn và chính xác kép. FMA được cải thiện hơn chỉ thị multiply-add (MAD) bằng cách thực hiện các
phép nhân và phép cộng chỉ với 1 bước final rounding đơn, không mất sự chính xác trong phép cộng. FMA
chính xác hơn thực hiện các tính toán riêng rẽ. GT200 đã bổ sung bộ FMA chính xác kép.
Trong GT200, bộ luận lý toán học số nguyên bị giới hạn độ chính xác chỉ 24-bit cho các thao tác nhận; và
kết quả là các đa chỉ thị cạnh emulation sequences were require for integer arithmetic. Trong kiến trúc
Fermi, bộ luận lý toán học số nguyên mới hỗ trợ đầy đủ độ chính xác 32-bit cho tất cả các chỉ thị, ổn định
đối với các đòi hỏi của các ngôn ngữ lập trình chuẩn. Bộ luận lý toán học số nguyên ALU cũng đồng thời tối
ưu để hỗ trợ hiệu quả các thao tác chính xác 64-bit và chính xác mở rộng. Đạ dạng các chỉ thị được hỗ trợ,
bao gồm Boolean, shift, move, compare, convert, bit-field extract, bit-reverse insert và population count.
16 đơn vị Load/Store
Mỗi SM có 16 đơn vị load/store, cho phép địa chỉ nguồn và địch có thể được tính trong 16 thread mỗi
clock. Hỗ trợ các đơn vị tải và lưu trự dữ liệu ở mỗi địa chỉ để lưu trữ trên cache hoặc DRAM.
4 đơn vị chức năng đặc biệt
Các đơn vị chức năng đặc biệt (SFUs) thực thi chỉ thị siêu việt như là sin, cosine, phản đề(reciprocal) và căn
bậc 2. Mỗi SFU thực thi 1 chỉ thị trên 1 thread mỗi clock; 1 warp thực thi 8 clock. Pipeline SFU được tách
riêng ra từ đơn vị điều phối (dispatch), cho phép đơn vị điều phối hỗ trợ những đơn vị thực thi khác trong
khi SFU đang bị chiếm.
Thiết kế cho độ chính xác động
Độ chính xác kép số học là trái tim của những ứng dụng HPC như linear algebra, numerical simulation và
quantum chemistry. Kiến trúc Fermi đã được thiết kế đặc biệt để cung cấp sự thi hành các tính toán chính
xác kép chưa được biết trước, lên đến 16 double precision fused multiply-add operation và có thể được
thi hành trên mỗi SM, mỗi clock, một sự cải thiện gây ấn tượng sấu sắc so vượt trên kiến trúc GT200.
Dual Warp Scheduler
SM sắp xếp các thread vào 1 nhóm 32 thread song song được gọi là Warp. Mỗi SM có 2 bộ lập lịch trình
warp và 2 đơn vị phân phối chỉ thị, cho phép 2 warp được đưa ra và thực thi đồng thời. Bộ lập lịch trình


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status