Hướng dẫn lập trình trên framework CUDA

Lập trình với Nvidia CUDA

Cấu trúc phần cứng Nvidia GPU

Gồm nhiều processor được tổ chức thành các đơn vị multiprocessor

Sử dụng bộ nhớ chung global memory cho tất cả multiprocessors

pptx 16 trang thamphan 26/12/2022 2380
Bạn đang xem tài liệu "Hướng dẫn lập trình trên framework CUDA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pptxhuong_dan_lap_trinh_tren_framework_cuda.pptx

Nội dung text: Hướng dẫn lập trình trên framework CUDA

  1. Hướng dẫn lập trình trên framework CUDA LOGO
  2. Lập trình với Nvidia CUDA LOGO ❖Phù hợp với bài toán có khả năng song song dữ liệu cao. ❖Sử dụng mô hình lập trình và quản lý threads. ❖Hỗ trợ tốt tương tác giữa các process 3
  3. Lập trình với Nvidia CUDA LOGO ❖Các threads được chia thành các block và grid cho phù hợp với kiến trúc phần cứng 5
  4. Lập trình với Nvidia CUDA LOGO Chương trình chính chạy trên CPU gọi hàm thực thi trên GPU Các threads cùng xử lý công việc trên dữ liệu chung 7
  5. Bài toán cộng hai vector LOGO ❖Giải thuật thông thường: cộng tuần tự các phần tử tương ứng để ra được kết quả ❖Giải thuật song song: tính toán đồng thời các phần tử của vector kết quả
  6. Bài toán cộng hai vector LOGO // Copy inputs to device cudaMemcpy(d_a, a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, b, size, cudaMemcpyHostToDevice); // Launch add() kernel on GPU add >>(d_a, d_b, d_c); // Copy result back to host cudaMemcpy(c, d_c, size, cudaMemcpyDeviceToHost); // Cleanup free(a); free(b); free(c); cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); return 0; }
  7. Biên dịch và chạy chương trình LOGO ❖Bài mẫu được lưu vectorAdd.cu ❖Thêm phần code in kết quả vào vectorAdd.cu ❖Compile $ nvcc vectorAdd.cu ❖Run $ a.out
  8. Câu hỏi và bài tập LOGO ❖Giải bài toán cộng vector với N là một số bất kì ❖Giải bài toán cộng hai ma trận ❖Mở rộng: ▪ Giải bài toán nhân hai ma trận 15