1. Trang chủ
  2. » Giáo Dục - Đào Tạo

NGHIÊN CỨU KIẾN TRÚC SONG SONG VÀ GIẢI THUẬT SONG SONG ỨNG DỤNG TRÊN HỆ XỬ LÝ GPU

22 95 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 0,96 MB

Nội dung

NGHIÊN CỨU KIẾN TRÚC SONG SONG VÀ GIẢI THUẬT SONG SONG ỨNG DỤNG TRÊN HỆ XỬ LÝ GPU NGƢỜI BÁO CÁO:TĂNG CẨM NHUNG BM TIN HỌC CÔNG NGHIỆP MỤC ĐÍCH NGHIÊN CỨU NHU CẦU TÍNH TỐN TĂNG CAO TĂNG TỐC ĐỘ CPU NHIỆT ĐỘ CPU CAO PHÁT TRIỂN CÔNG NGHỆ ĐA LÕI GIẢI QUYẾT CÁC BÀI TOÁN LỚN VỚI THỜI LƯỢNG VÀ CHI PHÍ THẤP GIẢI THUẬT SONG SONG MƠI TRƯỜNG LẬP TRÌNH DEVICE SONG CUDA:COMPUTE UNIFIED SONG TRÊN GPU: CUDA ARCHITECTURE PHÁT TRIỂN BỘ XỬ LÝ ĐỒ HỌA GPU KIẾN TRÚC SONG SONG Nguyên tắc phân loại Flynn SIMD (Single Instruction Multiple Data) đơn lệnh đa liệu  MIMD (Multiple Instruction Multiple Data) đa lệnh đa liệu  KIẾN TRÚC SONG SONG(tt) SIMD (Single Instruction Multiple Data) đơn lệnh đa liệu KIẾN TRÚC SONG SONG(tt)  MIMD (Multiple Instruction Multiple Data) đa lệnh đa liệu KIẾN TRÚC SONG SONG (tt) Hai cơng nghệ xây dựng hệ thống tính tốn song song  Cải tiến công nghệ, tăng tốc độ xử lý máy tính Xây dựng Siêu máy tính(Super Computer)  Chia tốn thành cơng việc nhỏ để chạy song song nhiều xử lý Hệ thống tính tốn song song phân cụm CƠ SỞ XỬ LÝ SONG SONG  Định nghĩa:là trình xử lý gồm nhiều tiến trình đƣợc kích hoạt đồng thời tham giải toán đƣợc thực hệ thống đa xử lý  Phân biệt XLTT với XLSS XLTT XLSS Mỗi thời điểm thực đƣợc phép toán Mỗi thời điểm thực đƣợc nhiềuphép tốn Thời gian thực phép toán chậm Thời gian thực phép toán nhanh NGUYÊN LÝ THIẾT KẾ GIẢI THUẬT SONG SONG Xây dựng giải thuật song song cho tốn  xác định vấn đề mà thực tế song song hóa đƣợc hay không Song song Không song song Sắp xếp mảng Giải thuật Fibonaci Tìm kiếm Giai thừa Đồ thị NGUYÊN LÝ THIẾT KẾ GIẢI THUẬT SONG SONG(tt) Phase Phân chia liệu cho tác vụ Phase Xác định phương thức truy cập chia sẻ liệu Phase Phase Phân Đồng tác tiến vụ cho trình tiến trình GIỚI THIỆU VỀ GPU  GPU - Bộ xử lý đồ họa (Graphics Processing Unit): xử lý chuyên dụng cho biểu diễn hình ảnh 3D từ vi xử lý máy tính  Năm 2007: GPU NV30 NVIDIA đời, GPU tham gia cơng việc khác ngồi đồ họa: hỗ trợ tính tốn dấu chấm động đơn, hỗ trợ tính tốn lên ngàn lệnh  Hiện tại: GPU đáp ứng hiệu  Đồ họa máy tính  Cấu trúc song song cao cấp  Xử lý thuật toán phức tạp tốt nhiều so với vi xử lý thông thƣờng 10 GIỚI THIỆU VỀ GPU(tt) 11 GIỚI THIỆU VỀ GPU(tt) 12 GIỚI THIỆU VỀ CUDA  CUDA: từ viết tắt thuật ngữ Compute Unified Device Architecture, kiến trúc thiết bị hợp cho tính tốn  CUDA xuất từ 07/2007 đóng vai trò cơng cụ phát triển PM dựa ngôn ngữ C Kiến trúc phần mềm CUDA 13 GIỚI THIỆU VỀ CUDA(tt)  Cơ chế hoạt động CUDA  Host: Là tác vụ cấu trúc phần cứng, phần mềm đƣợc xử lý từ CPU  Divice: Là tác vụ cấu trúc phân cứng, phần mềm đƣợc xử lý GPU  B1: Dữ liệu tính tốn nhớ Host  truyền liệu cần tính toán từ Host qua nhớ Device  B2: Sau Device tính tốn liệu  trả nhớ Host 14 GIỚI THIỆU VỀ CUDA(tt)  Cấu trúc Block  Registers: Tập ghi cục 32 bit cho xử lý  Local Memory: Không gian nhớ cục bộ, đƣợc cài đặt nhƣ vùng đọc ghi nhớ thiết bị khơng có đệm  Global Memory:Vùng nhớ dùng chung đƣợc chia sẻ tất xử lý cài đặt không gian nhớ dùng chung  Constant Memory: Vùng đệm số đọc đƣợc dùng chung tất xử lý  Texture Memory: Vùng đệm kết cấu đọc đƣợc dùng tất xử lý thực thi nhiều chế độ định địa 15 LẬP TRÌNH ỨNG DỤNG TRÊN CUDA  NNLT CUDA: mở rộng ngơn ngữ lập trình C, Cung cấp cách tiếp cận đơn giản cho ngƣời sử dụng quen với ngôn ngữ lập trình C, dễ dàng viết chƣơng trình cho việc xử lý thiết bị  Ngơn ngữ lập trình CUDA gồm :  Một thiết lập tối thiểu thành phần mở rộng cho ngơn ngữ lập trình C cho phép ngƣời lập trình hƣớng tới phân chia mã nguồn chƣơng trình cho việc xử lý thiết bị  Thƣ viện chạy đƣợc chia thành • Thành phần (host component) chạy host cung cấp chức cho việc điều khiển truy nhập nhiều thiết bị khác từ host • Các thiết bị thành phần (device component) đƣợc chạy thiết bị cung cấp hàm riêng thiết bị • Một thành phần chung (common component) cung cấp xây dựng kiểu vector tập thƣ viện chuẩn C Thành phần chung hỗ trợ cho host thiết bị thành phần 16 LẬP TRÌNH ỨNG DỤNG TRÊN CUDA(tt)  Những mở rộng ngôn ngữ lập trình CUDA so với ngơn ngữ C  Từ khóa phạm vi kiểu hàm cho phép xác định liệu hàm thực host hay thiết bị liệu đƣợc triệu gọi từ host từ thiết bị  Từ khóa phạm vi kiểu biến cho phép đặc tả vị trí nhớ thiết bị biến  Bốn biến build-in để xác định chiều lƣới khối, số khối luồng  Một thị để xác định nhân (kernel) đƣợc thực thiết bị từ phía host 17 LẬP TRÌNH ỨNG DỤNG TRÊN CUDA(tt)  Từ khóa phạm vi kiểu hàm  device : Khai báo device định nghĩa hàm xử lý thiết bị đƣợc gọi từ thiết bị  global : Khai báo global định nghĩa hàm nhƣ hạt nhân xử lý thiết bị triệu gọi đƣợc từ host  host : Khai báo host hàm xử lý host  Từ khóa phạm vi kiểu biến  device : Khai báo device định nghĩa biến giới hạn thiết bị  constant : Khai báo constant đƣợc dùng với khai báo device định nghĩa biến  shared : Biến chia sẻ lựa chọn sử dụng với thiết bị khác  Bốn biến build-in 18 LẬP TRÌNH ỨNG DỤNG TRÊN CUDA(tt)  Bốn biến build-in  gridDim: biến kiểu dim3 chứa kích thƣớc lƣới  blockIdx: biến thuộc kiểu uint3 chứa số khối lƣới  blockDim: loại dim3 chứa kích thƣớc khối  threadIdx: biến thuộc loại uint3 chứa số luồng khối 19 ỨNG DỤNG  Xây dựng giải thuật Dijkstra song song CUDA  Yêu cầu: Dựa giải thuật Dijkstra xây dựng giải thuật Dijkstra song song để tìm đƣờng ngắn từ đỉnh đến tất đỉnh lại  Mô tả giải thuật: Giải thuật đƣợc chia làm hai giai đoạn nhƣ sau: • Khởi tạo: ban đầu yêu cầu CUDA driver cung cấp đủ số thread để thực việc gán giá trị ban đầu cho mảng d lƣu chi phí mảng để lƣu vết đƣờng đánh dấu đỉnh tự (tức đỉnh tối ƣu) • Lặp: - Tìm đỉnh u đỉnh tự cho chi phi từ đỉnh xuất phát đến đỉnh u nhỏ - Nếu nhƣ khơng tìm thấy đỉnh u có d[u] nhỏ khỏi vòng lặp, tức tìm thấy đƣờng khơng tìm thấy đƣờng - Ngƣợc lại tìm thấy đỉnh u với d[u] nhỏ đánh dấu đỉnh u, dùng đỉnh u để xét lại đỉnh tự lại - Yêu cầu CUDA driver cung cấp đủ số thread (Tid) để thực việc dùng đỉnh u xét tất đỉnh lại theo cơng thức: d[Tid]:= Min(d[Tid], d[u] + a[u, Tid]) 20 7.ỨNG DỤNG(tt)  Giải thuật Dijkstra song song  Bƣớc 1: (Khởi tạo): Phân chia cho thread (Tid) thực công việc sau:  Gán giá trị cho d[Tid], d mảng lƣu chi phí đƣờng đi, ban đầu mảng d đƣợc gán đƣờng trực tiếp từ đỉnh xuất phát đến tất đỉnh lại (nếu khơng có đƣờng trực tiếp gán giá trị vô cực)  Đánh dấu đỉnh tự (trừ đỉnh xuất phát đánh dấu cố định)  Lƣu vết đƣ ờng đi, ban đầu đỉnh kề trƣớc đỉnh xuất phát  Bƣớc 2: (Lặp)  Tìm đỉnh u đỉnh tự cho d[u] nhỏ  Nếu d[u]== +∞ vòng lặp  Ngƣợc lại đánh dấu đỉnh u cố định  Phân chia cho thread (Tid) thực công việc dùng đỉnh u xét đỉnh Tid sửa lại d[Tid] theo công thức: d[Tid]:= Min (d[Tid], d[u] + a[u,Tid] )  Quay lại bƣ ớc thực 21 ỨNG DỤNG(tt)  Giải thuật Dijkstra song song  Kết quả: giải thuật đƣợc thực • Intel Core i5, 2.5 GHz, RAM GB, Windows 7, 32bit, card đồ họa GeForce 610M • Ngơn ngữ sử dụng: ngơn ngữ C • Sử dụng hàm thƣ viện CUDA Thời gian chạy / giây Số đỉnh Tuần tự Song song 1000 0.042 0.196 2000 0.172 0.465 6000 1.610 1.950 8000 2.850 2.900 9000 3.630 3.450 11000 5.410 4.450 12000 6.391 4.766 14000 9.036 6.092 15000 10.059 7.128 22

Ngày đăng: 29/05/2018, 20:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w