WM tính toán song song thoại nam lập trình cuda sinhvienzone com

16 47 0
WM tính toán song song thoại nam lập trình cuda sinhvienzone com

Đ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

m e co on en Z Vi Si nh Hướng dẫn lập trình framework CUDA LOGO SinhVienZone.com https://fb.com/sinhvienzonevn Lập trình với Nvidia CUDA LOGO m Cấu trúc phần cứng Nvidia GPU Si nh Vi en Z on e co  Gồm nhiều processor tổ chức thành đơn vị multiprocessor  Sử dụng nhớ chung global memory cho tất multiprocessors SinhVienZone.com https://fb.com/sinhvienzonevn e co Si nh Vi en Z on Phù hợp với toán có khả song song liệu cao Sử dụng mơ hình lập trình quản lý threads Hỗ trợ tốt tương tác process m Lập trình với Nvidia CUDA LOGO SinhVienZone.com https://fb.com/sinhvienzonevn Công cụ hỗ trợ lập trình m Lập trình với Nvidia CUDA LOGO Si nh Vi en Z on e co  Sử dụng ngôn ngữ C/C++  CUDA Toolkit CUDA Library cung cấp NVIDIA với thư viện hàm thực để hỗ trợ cho việc giao tiếp với GPU  Hỗ trợ nhiều tảng OS, vd: window, linux,…  Người lập trình khơng cần biết nhiều cấu trúc phần cứng SinhVienZone.com https://fb.com/sinhvienzonevn e co on Si nh Vi en Z Các threads chia thành block grid cho phù hợp với kiến trúc phần cứng m Lập trình với Nvidia CUDA LOGO SinhVienZone.com https://fb.com/sinhvienzonevn en Z on e co m Lập trình với Nvidia CUDA LOGO Si nh Vi Dữ liệu cần xử lý đưa vào nhớ GPU SinhVienZone.com https://fb.com/sinhvienzonevn Vi en Z on e co m Lập trình với Nvidia CUDA LOGO Si nh Chương trình chạy CPU gọi hàm thực thi GPU Các threads xử lý công việc liệu chung SinhVienZone.com https://fb.com/sinhvienzonevn Vi en Z on e co m Lập trình với Nvidia CUDA LOGO Si nh Kết trả lại nhớ cho chương trình SinhVienZone.com https://fb.com/sinhvienzonevn Bài tốn cộng hai vector LOGO Si nh Vi en Z on e co m Giải thuật thông thường: cộng phần tử tương ứng để kết Giải thuật song song: tính tốn đồng thời phần tử vector kết SinhVienZone.com https://fb.com/sinhvienzonevn e co #define N (2048*2048) #define THREADS_PER_BLOCK 512 m Bài toán cộng hai vector int main(void) { en Z on int *a, *b, *c; // host copies of a, b, c int *d_a, *d_b, *d_c; // device copies of a, b, c int size = N * sizeof(int); Si nh Vi // Alloc space for device copies of a, b, c cudaMalloc((void **)&d_a, size); cudaMalloc((void **)&d_b, size); cudaMalloc((void **)&d_c, size); // Alloc space for host copies of a, b, c and setup input values a = (int *)malloc(size); random_ints(a, N); b = (int *)malloc(size); random_ints(b, N); c = (int *)malloc(size); SinhVienZone.com https://fb.com/sinhvienzonevn LOGO Bài toán cộng hai vector LOGO e co m // Copy inputs to device cudaMemcpy(d_a, a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, b, size, cudaMemcpyHostToDevice); en Z on // Launch add() kernel on GPU add(d_a, d_b, d_c); Si nh Vi // 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; } SinhVienZone.com https://fb.com/sinhvienzonevn Bài toán cộng hai vector m Hàm kernel Vi global : hàm thực thi GPU gọi CPU blockIdx: số block chiều x (blockIdy tương tự) threadIdx: số thread chiều x (threadIdy tương tự) blockDim: số thread block Si nh     en Z Một số từ khóa on e co global void add(int *a, int *b, int *c) { int index = threadIdx.x + blockIdx.x * blockDim.x; c[index] = a[index] + b[index]; } SinhVienZone.com https://fb.com/sinhvienzonevn LOGO Biên dịch chạy chương trình en Z Run on $ nvcc vectorAdd.cu e co m Bài mẫu lưu vectorAdd.cu Thêm phần code in kết vào vectorAdd.cu Compile Si nh Vi $ a.out SinhVienZone.com https://fb.com/sinhvienzonevn LOGO Tài liệu tham khảo LOGO Si nh Vi en Z on e co m CUDA C Programming Guide http://docs.nvidia.com/cuda/cuda-cprogramming-guide/ SinhVienZone.com https://fb.com/sinhvienzonevn 14 Câu hỏi tập LOGO en Z on e co m Giải toán cộng vector với N số Giải tốn cộng hai ma trận Mở rộng: Si nh Vi  Giải toán nhân hai ma trận SinhVienZone.com https://fb.com/sinhvienzonevn 15 m e co on en Z Si nh Vi www.themegallery.com LOGO SinhVienZone.com https://fb.com/sinhvienzonevn ... Lập trình với Nvidia CUDA LOGO SinhVienZone. com https://fb .com/ sinhvienzonevn Công cụ hỗ trợ lập trình m Lập trình với Nvidia CUDA LOGO Si nh Vi en Z on e co  Sử dụng ngôn ngữ C/C++  CUDA. .. https://fb .com/ sinhvienzonevn en Z on e co m Lập trình với Nvidia CUDA LOGO Si nh Vi Dữ liệu cần xử lý đưa vào nhớ GPU SinhVienZone. com https://fb .com/ sinhvienzonevn Vi en Z on e co m Lập trình với Nvidia CUDA. .. SinhVienZone. com https://fb .com/ sinhvienzonevn e co on Si nh Vi en Z Các threads chia thành block grid cho phù hợp với kiến trúc phần cứng m Lập trình với Nvidia CUDA LOGO SinhVienZone. com https://fb .com/ sinhvienzonevn

Ngày đăng: 30/01/2020, 22:31

Tài liệu cùng người dùng

Tài liệu liên quan