Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
4,68 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ÐỀ TÀI KH&CN CẤP TRƯỜNG TRỌNG ÐIỂM NGHIÊN CỨU VỀ LẬP TRÌNH SONG SONG TRÊN GPU VÀ VIẾT ỨNG DỤNG MINH HOẠ Mã số: T2014 - 40 Chủ nhiệm đề tài: ThS Trần Công Tú S K C0 Tp Hồ Chí Minh, tháng 03/2015 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG NGHIÊN CỨU VỀ LẬP TRÌNH SONG SONG TRÊN GPU VÀ VIẾT ỨNG DỤNG MINH HOẠ Mã số: T2014 - 40 Chủ nhiệm đề tài: ThS Trần Công Tú TP HCM, 03/2015 Luan van TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG NGHIÊN CỨU VỀ LẬP TRÌNH SONG SONG TRÊN GPU VÀ VIẾT ỨNG DỤNG MINH HOẠ Mã số: T2014 - 40 Chủ nhiệm đề tài: ThS Trần Công Tú TP HCM, 03/2015 Luan van MỤC LỤC MỞ ĐẦU Tính cấp thiết đề tài Mục tiêu đề tài Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Cách tiếp cận Phương pháp nghiên cứu Nội dung nghiên cứu CHƯƠNG I: TỔNG QUAN VỀ GPU I.1 Bộ xử lý đồ hoạ GPU I.2 Thuật ngữ GPGPU I.3 GPU computing I.4 Kiến trúc GPU đại I.5 So sánh GPU CPU CHƯƠNG II: GIỚI THIỆU CÔNG NGHỆ CUDA II.1 Công nghệ CUDA II.2 Ứng dụng CUDA lĩnh vực công nghệ 10 II.2.1 CUDA cho ngành công nghiệp trò chơi 10 II.2.2 CUDA cho ứng dụng video số 11 II.3 Môi trường lập trình với CUDA 12 II.4 Cơ chế hoạt động chương trình CUDA 14 II.5 Mơ hình lập trình 15 II.5.1 Bộ đồng xử lý đa luồng mức cao 15 II.5.2 Gom lô luồng (Thread Batching) 16 II.6 Mơ hình nhớ 18 II.7 Tìm hiểu ngơn ngữ lập trình CUDA 19 II.7.1 Ngơn ngữ lập trình CUDA mở rộng ngơn ngữ lập trình C 19 II.7.2 Những mở rộng ngơn ngữ lập trình CUDA so với ngơn ngữ C 20 II.7.3 Từ khóa phạm vi kiểu hàm 21 Các hạn chế 21 II.7.4 Từ khóa phạm vi kiểu biến 22 Các ràng buộc 23 II.7.5 Thực cấu hình 24 CHƯƠNG III: CÁC CHƯƠNG TRÌNH MINH HOẠ 33 III.1 Nhân hai ma trận 33 III.1.1 Cài đặt CPU 33 III.1.2 Cài đặt GPU 33 III.1.3 Cài đặt GPU – sử dụng tile 34 III.1.4 So sánh kết 34 Luan van Trang i III.2 Sắp xếp mảng chiều 35 III.2.1 Cài đặt CPU 35 III.2.2 Cài đặt GPU 35 III.2.3 So sánh kết 36 III.3 Tìm kiếm chuỗi file liệu lớn 36 III.3.1 Cài đặt CPU 36 III.3.2 Cài đặt GPU 37 III.3.3 So sánh kết 37 KẾT LUẬN 39 IV.1 Kết đạt 39 IV.2 Hạn chế 39 IV.3 Hướng phát triển 39 TÀI LIỆU THAM KHẢO 41 Luan van Trang ii TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc KHOA CÔNG NGHỆ THÔNG TIN TP.HCM, ngày tháng năm 2015 THÔNG TIN KẾT QUẢ NGHIÊN CỨU Thông tin chung: - Tên đề tài: Nghiên cứu lập trình song song GPU viết ứng dụng minh hoạ - Mã số: T201440 - Chủ nhiệm: ThS Trần Cơng Tú - Cơ quan chủ trì: Trường ĐH Sư phạm Kỹ thuật TP.HCM - Thời gian thực hiện:1/2014 đến 12/2014 Mục tiêu: Tận dụng khả tính tốn GPU, lập trình song song giải tốn minh hoạ Tính sáng tạo: Tính tốn GPU xu hướng nghiên cứu mẻ trường ĐH Sư phạm Kỹ thuật TP.HCM Kết nghiên cứu: - Một báo cáo khoa học hồn chỉnh làm tài liệu tham khảo tốt cho giáo viên sinh viên quan tâm - Một báo cáo khoa học đăng website khoa CNTT Sản phẩm: - Một chương trình máy tính minh họa việc lập trình song song GPU Hiệu quả, phương thức chuyển giao kết nghiên cứu khả áp dụng: - Giúp giáo viên sinh viên dễ dàng tiếp cận cơng nghệ - Giúp nhóm nghiên cứu tính tốn hiệu cao tận dụng thêm sức mạnh tính tốn GPU nhằm giải tốn địi hỏi khả tính tốn cao Trưởng Đơn vị Chủ nhiệm đề tài (ký, họ tên) (ký, họ tên) Luan van Trang iii MỞ ĐẦU Nhu cầu tính tốn nhằm giải tốn khoa học, công nghệ vượt khả máy tính (ví dụ mơ hệ sinh thái, số hóa ký ức người, dự đốn cấu trúc 3D protein…)[1] Do người ln cố gắng tạo hệ thống máy tính ngày mạnh, nhiên, việc tăng khả xử lý lại phụ thuộc nhiều vào cơng nghệ, cần có thời gian nhiều hạn chế Một giải pháp khác đưa sử dụng nhiều xử lý để giải toán (gọi xử lý song song) Một giải pháp tận dụng công nghệ để xử lý song song nhằm tăng tốc độ tính tốn sử dụng xử lý đồ họa (GPU - Graphic Proccessing Unit) GPU ban đầu thực chất hỗ trợ tính tốn phù hợp với khả tăng tốc độ xử lý đồ họa, đến thời điểm GPU NV30 NVIDIA đời, GPU thực tính tốn vượt qua giới hạn cơng việc đồ họa Do GPU không công cụ xử lý đồ họa mạnh mà xử lý hỗ trợ lập trình song song mức cao, giúp xử lý toán số học phức tạp băng thông nhớ tăng đáng kể so với CPU loại Sự tăng tốc nhanh chóng GPU khả hỗ trợ lập trình lực tính tốn tạo xu hướng nghiên cứu Tính cấp thiết đề tài Hiện nay, hầu hết hệ thống máy tính có xử lý đồ họa (GPU), GPU không xử lý đồ họa mà cịn cơng cụ hỗ trợ để lập trình song song Sự phát triển mạnh mẽ lực tính tốn GPU tạo xu hướng nghiên cứu tính tốn hiệu cao có khả đảm nhận thay cho CPU thực tính tốn phức tạp thay dừng lại ứng dụng trò chơi 3D Luan van Trang Mục tiêu đề tài Tận dụng khả tính tốn GPU, lập trình song song giải toán minh họa Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu - Bộ xử lý đồ họa - Kiến trúc CUDA Phạm vi nghiên cứu - Lập trình song song GPU, giải toán minh họa Phương pháp nghiên cứu Cách tiếp cận Nghiên cứu lý thuyết, cài đặt cơng cụ, tìm tốn, lập trình minh họa Phương pháp nghiên cứu Tìm hiểu kiến trúc CUDA, cơng cụ lập trình GPU, giải toán minh họa Nội dung nghiên cứu - Tìm hiểu GPGPU (General Purpose Computing on Graphics Processing Units) - Tìm hiểu cơng nghệ NVIDIA kiến trúc CUDA - Lập trình song song GPU để giải toán minh họa Luan van Trang CHƯƠNG I: I.1 TỔNG QUAN VỀ GPU Bộ xử lý đồ hoạ GPU GPU đưa giới thiệu lần vào năm 1999 NVIDIA nay, xử lý song song phổ biến GPU vi xử lý chuyên dụng đảm nhiệm việc tăng tốc, xử lý đồ họa cho xử lý trung tâm CPU Với cấu trúc mang tính xử lý song song mạnh mẽ, GPU cho thấy hiệu CPU nhiều nhiều thuật toán phức tạp GPU sử dụng 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, GPU xuất card đồ họa, gắn mainboard I.2 Thuật ngữ GPGPU Từ năm 2003, nhà nghiên cứu cố gắng khai thác sức mạnh GPU cho ứng dụng khơng mang tính đồ họa Đặc biệt khoa học máy tính, với nhà nghiên cứu lĩnh vực hình ảnh y khoa, điện từ… Họ bắt đầu sử dụng GPU để chạy ứng dụng điện toán đa dụng (general purpose) cho thấy xuất sắc khả biểu diễn phép tính dấu chấm động GPU, dẫn đến tăng hiệu suất lớn cho loạt ứng dụng khoa học Từ dẫn đến đời GPGPU – General Purpose computing (Điện toán đa dụng) I.3 GPU computing Mặc dù GPGPU có tốc độ tính tốn nhanh nhờ khả xử lý song song, có số hạn chế: Địi hỏi lập trình viên phải có kiến thức sâu sắc giao diện lập trình ứng dụng đồ họa (graphics APIs) kiến trúc GPU Các tính lập trình truy xuất đọc, viết ngẫu nhiên vào nhớ không hỗ trợ, giới hạn phần mơ hình lập trình Luan van Trang 3 Việc thiếu hỗ trợ độ xác kép (double precision) khiến cho số ứng dụng khoa học chạy GPU Để khắc phục vấn đề này, NVIDIA giới thiệu kỹ thuật then chốt: - Đồ họa hợp kiến trúc tính tốn G80 (được giới thiệu GPU GeForce 8800®, Quadro FX 5600® Tesla C870®) - CUDA: kiến trúc phần mềm phần cứng cho phép lập trình GPU nhiều ngơn ngữ lập trình cấp cao (C, C++, Fortran…) Hai kỹ thuật giúp cho lập trình viên viết chương trình C với mở rộng kiến trúc CUDA sử dụng vào mục đích tổng quan (khơng dành cho lập trình đồ họa) với xử lý song song mạnh mẽ, qua hỗ trợ nhiều ứng dụng hơn, nhiều ngơn ngữ lập trình NVIDIA gọi cách lập trình GPU – Điện tốn GPU (GPU computing) I.4 Kiến trúc GPU đại GPU xây dựng cho nhu cầu ứng dụng khác so với CPU, u cầu tính tốn lớn chạy song song, với trọng tâm thông lượng độ trễ Do đó, kiến trúc GPU phát triển theo hướng khác so với CPU GPU phân chia nguồn lực xử lý theo khung cảnh khác nhau, cho đường ống chia theo không gian thời gian Các phần vi xử lý làm việc khung cảnh cấp liệu đầu trực tiếp vào phần khác mà hoạt động giai đoạn Cơ chế tổ chức thành công GPU cố định chức hai lý Đầu tiên, phần cứng khung cảnh khai thác chế song song liệu khung cảnh đó, xử lý nhiều phần tử lúc nhiều chế song song công việc chạy lúc nào, GPU đáp ứng nhu cầu tính tốn lớn đường ống dẫn đồ họa Thứ hai, phần cứng khung cảnh tùy chỉnh với phần cứng chuyên dụng cho công việc đưa Luan van Trang Địa nhớ toàn cục truy xuất đồng thời luồng suốt việc thi hành lệnh máy đọc ghi nên xắp xếp để việc truy cập nhớ kết hợp thành việc truy xuất vùng nhớ liên tục Chính xác hơn, half-warp, luồng số N half-warp nên truy cập vào địa HalfWarpBaseAddress + N Với HalfWarpBaseAddress kiểu trỏ type* tuân theo cách dàn nhớ Hơn nữa, HalfWarpBaseAddress nên cấp vùng nhớ theo cách 16*sizeof(type) byte Nói cách khác, HalfWarpBaseAddress nên có số bit có nghĩa tối thiểu log2(16*sizeof(type)) Bất kỳ địa BaseAddress biến thường trú nhớ toàn cục trả lại cách cấp phát nhớ nhắc đến D.3 E.6 ln đưa vào vùng nhớ 256 bytes Vì để thỏa mãn buộc dàn xếp nhớ, HalfWarpBaseAddress nên bội 16*sizeof(type) Chú ý half-warp thỏa mãn tất yêu cầu bên trên, truy xuất nhớ luồng liên tục với vài luồng half-warp không thực truy xuất nhớ Nên tuân tủ yêu cầu gắn kết toàn warp với halfwarp riêng rẽ thiết bị tương lai cần điều cho việc kết tập cách truy xuất nhớ tồn cục luồng luồng có ID tid truy cập phần tử mảng cấp phát địa BaseAddress kiểu type* sử dụng địa sau: BaseAddress + tid Để có việc truy xuất kết tập, type phải tuân theo kích thước yêu cầu cấp phát nhớ Đặc biệt, điều nghĩa type cấu trúc lớn 16 byte, nên chia nhỏ thành vài cấu trúc khác phù hợp với yêu cầu liệu nên phân chia nhớ thành danh sách vài mảng cấu trúc thay mảng kiểu type* Luan van Trang 28 Một cách truy cập nhớ toàn cục phổ biến khác luồng có số (tx,ty) truy cập phần tử mảng hai chiều đặt địa BaseAddress kiểu type* chiều rộng width sử dụng địa sau: BaseAddress + width * ty + tx Trong trường hợp đó, việc truy xuất nhớ kết tập cho tất halfwarp khối luồng nếu: + Chiều rộng khối luồng bội số kích thước warp + Chiều rộng phải bội số 16 Đặc biệt, điều có nghĩa mảng có chiều rộng bội số 16 truy xuất hiệu mảng cấp phát với chiều rộng làm tròn lên thành bội số 16 hàng mảng xếp Các hàm cuMemAllocPitch(), cudaMallocPitch() hàm chép nhớ có liên quan mơ tả D.3 E.6 cho phép nguời dùng phát triển dịng lệnh khơng phụ thuộc vào phần cứng để cấp phát mảng thỏa mãn điều kiện Bộ nhớ số Không gian nhớ số lưu vùng đệm, việc đọc từ nhớ số thời gian lần đọc từ thiết bị nhớ trường hợp khơng có nhớ đệm (cache), trường hợp lại lần đọc vùng đệm số Đối với tất luồng half-warp, việc đọc từ vùng đệm số nhanh việc đọc từ ghi miễn tất luồng đọc địa Giá việc đọc từ vùng nhớ số gần tỷ lệ với số địa khác đọc luồng Tất luồng toàn mạch đọc địa đối lập với trường hợp tất luồng nằm nửa mạch Luan van Trang 29 Bộ nhớ kết cấu Không gian vùng nhớ kết cấu lưu vào vùng đệm, việc đọc kết cấu lần đọc từ thiết bị nhớ trường hợp nhớ đệm, ngược lại lần đọc từ vùng đệm kết cấu Vùng đệm kết cấu tối ưu cho không gian 2D, luồng warp đọc địa kết cấu gần đạt hiệu tối đa Đọc nhớ thiết bị qua việc lấy kết cấu lựa chọn nâng cao để đọc nhớ thiết bị từ nhớ toàn cục nhớ số Bộ nhớ dùng chung Vì nhớ dùng chung gắn vi xử lý, nên không gian nhớ dùng chung nhanh nhiều so với không gian nhớ cục nhớ toàn cục Trong thực tế, để tất luồng warp, truy cập vào nhớ dùng chung nhanh truy cập vào ghi miễn khơng có xung đột dải nhớ (bank) luồng, chi tiết Để có băng thơng nhớ cao, nhớ dùng chung chia thành mơ-đun nhớ có kích thước gọi dải nhớ, mà truy cập lúc Vì vậy, nhớ đọc ghi yêu cầu thực n địa nằm n dải nhớ riêng biệt phục vụ đồng thời, hiệu suất băng thông hiệu cao n lần băng thông mô-đun đơn lẻ Tuy nhiên, hai địa yêu cầu nhớ rơi vào dải nhớ, xung đột dải nhớ việc truy cập vào dải nhớ phải nối tiếp Phần cứng, cần thiết, thực việc chia tách yêu cầu vùng nhớ với xung đột dải nhớ thành nhiều yêu cầu không bị tranh chấp riêng biệt, làm giảm băng thông hiệu yếu tố với số yêu cầu nhớ riêng biệt Nếu số lượng yêu cầu nhớ riêng biệt n, yêu cầu vùng nhớ khởi tạo ban đầu gây xung đột dải nhớ theo n cách Luan van Trang 30 Để có hiệu suất tối đa, quan trọng hiểu địa vùng nhớ ánh xạ với dải nhớ từ để lập lịch trình yêu cầu vùng nhớ để để giảm thiểu xung đột dải nhớ Trong trường hợp không gian nhớ dùng chung, dải nhớ tổ chức liên tiếp từ 32bit gán cho liên tiếp dải nhớ dải nhớ có băng thơng 32 bit hai chu kỳ đồng hồ Đối với thiết bị khả tính tốn 1.x, kích thước warp 32 số lượng dải nhớ nhớ 16, yêu cầu nhớ dùng chung cho warp chia thành yêu cầu cho nửa đầu warp yêu cầu cho nửa sau warp Như hệ quả, khơng có xung đột dải nhớ luồng thuộc nửa warp một luồng thuộc nửa sau warp Biên dịch với NVCC NVCC trình điều khiển trình biên dịch việc đơn giản hóa q trình biên dịch mã CUDA NVCC cung cấp tùy chọn dòng lệnh đơn giản quen thuộc thực chúng cách gọi tập hợp công cụ thực công đoạn biên dịch khác NVCC bao gồm luồng công việc việc tách mã thiết bị từ mã host biên dịch mã thiết bị sang dạng nhị phân đối tượng cubin Các mã host sinh đầu mã C để biên dịch cách sử dụng công cụ khác mã đối tượng trực tiếp việc triệu gọi trình biên dịch host giai đoạn biên dịch trước Ứng dụng bỏ qua mã host sinh ra, tải đối tượng cubin vào thiết bị khởi động mã thiết bị sử dụng trình điều khiểu API CUDA liên kết tới mã host sinh ra, bao gồm đối tượng cubin xem mảng liệu khởi tạo toàn cục chứa dịch cú pháp thực thi cấu hình thành mã cần thiết khởi động thời gian chạy CUDA để nạp khởi động lần biên dịch hạt nhân Luan van Trang 31 Front end trình biên dịch xử lý file nguồn CUDA theo cú pháp quy định C++ Tuy nhiên, có tập C C++ hỗ trợ Điều có nghĩa đặc tính đặc trưng C++ lớp (classes), kế thừa việc khai báo biến khối không hỗ trợ Như hệ việc sử dụng cú pháp C++, trỏ void (ví dụ trả lại malloc()) gán tới trỏ non-void mà khơng có ép kiểu [2] Luan van Trang 32 CHƯƠNG III: CÁC CHƯƠNG TRÌNH MINH HOẠ Có nhiều toán minh họa cộng, nhân ma trận, tìm kiếm chuỗi ký tự, xếp liệu v.v…Các tốn có đặc điểm chung song song hóa để GPU thực lúc nhiều phép tính tốn Chương trình bày kết thử nghiệm tốn: Nhân ma trận, tìm kiếm chuỗi file liệu lớn xếp dãy số Các tốn lập trình chạy CPU GPU Thời gian tính tốn CPU GPU ghi nhận đánh giá III.1 Nhân hai ma trận Thực nhân ma trận vuông A, B Kết lưu vào ma trận S III.1.1 Cài đặt CPU III.1.2 Cài đặt GPU Luan van Trang 33 III.1.3 Cài đặt GPU – sử dụng tile III.1.4 So sánh kết Thực chạy chương trình CPU Intel Core i5, 1.7GHz, RAM 4GB, Card đồ họa NVIDIA GeForce GT 635M Thời gian chạy tương ứng với kích thước ma trận thể bảng bên Thời gian Thời gian Thời gian chạy Kích thước chạy chạy GPU với CPU (ms) GPU (ms) Tile (ms) 100 10 612.4 118 200 62 617 128 500 1050 698.2 132 1000 13680.2 1186 178 1200 24762.5 1277.5 191 1400 40203 2143 215 Dữ liệu bên cho thấy kích thước ma trận lớn, tốc độ tính tốn GPU hiệu quả, đặc biệt sử dụng kỹ thuật Tile tốc độ cải thiện gần 10 lần so với cách tính GPU thông thường Luan van Trang 34 III.2 Sắp xếp mảng chiều Sắp xếp liệu mảng chiều theo thứ tự tăng dần III.2.1 Cài đặt CPU Thực gọi hàm sort với đối số mảng liệu cần xếp có sẵn thư viện C: std::sort(datain.begin(), datain.end()); III.2.2 Cài đặt GPU Luan van Trang 35 III.2.3 So sánh kết Thực chạy chương trình CPU Intel Core i5, 1.7GHz, RAM 4GB, Card đồ họa NVIDIA GeForce GT 635M Thời gian chạy tương ứng với kích thước mảng thể bảng bên BITONIC_BLOCK_SIZE Kích thước 256 512 1024 65536 262144 1048576 Thời gian chạy trên GPU (ms) 770 800 950 Thời gian chạy trên CPU (ms) 120 520 1931 Tương tự kết toán nhân ma trận, liệu bên cho thấy kích thước liệu lớn, tỉ lệ mức độ hiệu tính tốn GPU cao III.3 Tìm kiếm chuỗi file liệu lớn Tìm kiếm chuỗi ký tự file liệu lớn III.3.1 Cài đặt CPU Luan van Trang 36 III.3.2 Cài đặt GPU III.3.3 So sánh kết Tương tự hai toán Kết đo đạc thực CPU Intel Core i5, 1.7GHz, RAM 4GB, Card đồ họa NVIDIA GeForce GT 635M Thời gian tìm kiếm tương ứng với kích thước liệu thể bảng bên Kích thước Thời gian tìm kiếm Thời gian tìm kiếm Tỉ lệ liệu (MB) CPU (ms) GPU (ms) (CPU/GPU) 16 561.364 127.011 4.420 32 1187 260.325 4.560 64 2258.75 455.275 4.961 128 4655.75 846.475 5.500 Luan van Trang 37 Tương tự hai toán nhân ma trận, kết thử nghiệm cho thấy kích thước liệu lớn, tỉ lệ mức độ hiệu tính tốn GPU cao Luan van Trang 38 KẾT LUẬN IV.1 Kết đạt Sự phát triển công nghệ GPU cho thấy việc ứng dụng xử lý song song nhằm giải tốn địi hỏi khả tính tốn lớn không thực siêu máy tính mà thực máy tính cá nhân Đề tài tìm hiểu thành cơng cơng nghệ hỗ trợ tính tốn song song thiết bị đồ họa GPU hãng NVIDIA trình bày ngơn ngữ lập trình song song CUDA Cách biên dịch chương trình CUDA chạy thiết bị đồ họa GPU NVIDA Áp dụng minh hoạ vào số tốn như: nhân hai ma trận, tìm kiếm chuỗi con, xếp dãy số nguyên… giải phương pháp lập trình song song thiết bị đồ họa GPU Đồng thời đề tài thực so sánh thời gian tính tốn giải tốn GPU CPU từ thấy hiệu việc lập trình song song GPU IV.2 Hạn chế Bên cạnh kết đạt được, đề tài có hạn chế: - Chưa có tốn minh họa mang tính ứng dụng cao - Chương trình tương tác với người sử dụng dạng dòng lệnh, chưa trực quan, sinh động IV.3 Hướng phát triển Từ hạn chế trên, hướng nghiên cứu triển khai đề tài là: - Chương trình cần thử nghiệm hệ thống thiết bị đồ họa có lực tính tốn mạnh hơn, áp dụng với liệu lớn để đánh giá đầy đủ Luan van Trang 39 - Tìm kiếm giải tốn mang tính học thuật mang tính ứng dụng cao để thuyết phục khả tính tốn GPU Luan van Trang 40 TÀI LIỆU THAM KHẢO [1] A Brayner and A Loureiro, Grand Challenges in Computer Science, Research in Brazil – 2006 – 2016, Workshop Report, Sao Paulo, May 2006 [2] NVIDIA (3/6/2011), NVIDIA CUDA C Programming Guide, NVIDIA CUDA [3] Nguyễn Thị Thùy Linh (2009), Tính tốn hiệu cao với xử lý đồ họa GPU ứng dụng, Luận văn thạc sĩ, Đại học Công nghiệp - Đại học quốc gia Hà Nội, tr 17-60 Luan van Trang 41 Luan van ... GPU, lập trình song song giải toán minh họa Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu - Bộ xử lý đồ họa - Kiến trúc CUDA Phạm vi nghiên cứu - Lập trình song song GPU, giải tốn minh họa. ..BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI KH&CN CẤP TRƯỜNG NGHIÊN CỨU VỀ LẬP TRÌNH SONG SONG TRÊN GPU VÀ VIẾT ỨNG DỤNG MINH HOẠ Mã số:... nghiên cứu Cách tiếp cận Nghiên cứu lý thuyết, cài đặt cơng cụ, tìm tốn, lập trình minh họa Phương pháp nghiên cứu Tìm hiểu kiến trúc CUDA, cơng cụ lập trình GPU, giải tốn minh họa Nội dung nghiên