Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
1,38 MB
Nội dung
i ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐINH TIẾN NGỌC NGHIÊN CỨU CÔNG NGHỆ XỬ LÝ GPU VÀ ỨNG DỤNG THÁI NGUYÊN 2017 ii Tôi xin cam đoan : LỜI CAM ĐOAN Những nghiên cứu luận văn tơi hồn tồn trung thực khơng vi phạm quyền sở hữu trí tuệ Nếu sai tơi xin chịu hồn toàn trách nhiệm TÁC GIẢ LUẬN VĂN Đinh Tiến Ngọc iii LỜI CẢM ƠN Lời xin chân thành cảm ơn đếnTS Lê Quang Minh người thầy tận tình giúp đỡ, hướng dẫn tơi hồn thành luận văn Tôi xin chân thành cảm ơn thầy, cô giảng viên cao học người giúp đỡ tơi nâng cao kiến thức giúp tơi có kiến thức bổ trợ giúp hoàn thiện cho luận văn Tôi xin chân thành cảm ơn người thân, bạn bè giúp đỡ động viên suốt thời gian học tập thời gian thực đề tài Xin chân thành cảm ơn! Thái Nguyên, ngày tháng năm 2017 TÁC GIẢ LUẬN VĂN Đinh Tiến Ngọc iv DANH MỤC THUẬT NGỮ TiếngAnh TiếngViệt GPU Bộ xử lý đồ họa gpgpu Tính tốn thơng dụng GPU API Application Program Interface : Định nghĩa giao diện chuẩn để triệu gọi tập chức coproccessor đồng xử lý kernel hạt nhân texture Kết cấu: cấu trúc đối tượng, xem mơ hình thu nhỏ đối tượng texturefetches Hàm đọc kết cấu texturereference Tham chiếu kết cấu warp Mỗi khối tách thành nhóm SIMD luồng SIMD Single Instruction Multiple Data: đơn lệnh đa liệu stream Dòng streamingprocessor Bộ xử lý dòng MIMD Multiple Instruction Multiple Data: đa lệnh đa liệu primarysurface Bề mặt proccessor Bộ xử lý Rasterization Sự quét mành hình v MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN iii DANH MỤC THUẬT NGỮ iv MỤC LỤC v DANH MỤC HÌNHVẼ vii LỜI MỞ ĐẦU viii CHƯƠNG I : KHÁI QUÁT VỀ BỘ XỬ LÝ ĐỒ HỌA GPU VÀ XỬ LÝ SONG SONG 1.1 Khái quát xử lý song song 1.1.1 Khái quát xử lý song song 1.1.2 Khái quát Hệ thống máy tính song song 1.1.3 Khái quát lập trình song song 1.1.4 Các nguyên tắc thiết kế giải thuật xử lý song song 1.2 Khái quát công nghệ GPU ứng dụng 10 1.2.1 Tổng quan GPU 11 1.2.2 Nguồn gốc trình phát triển GPU 11 1.2.3 Cấu trúc xử lý đồ họa GPU 15 1.2.4 Lập trình GPU 19 1.2.5 Các hỗ trợ phần mềm cho xử lý tính tốn GPU 22 1.2.6 Các kỹ thuật tính tốn GPU 26 1.2.7.Các giải thuật ứng dụng GPU 29 CHƯƠNG II: XỬ LÝ SONG SONG TRÊN THIẾT BỊ ĐỒ HỌA GPU VỚI CUDA 31 2.1 Khái quát CUDA 31 2.2.Cơ chế lập trình cách thức hoạt động CUDA 33 2.2.1.Cơ chế lập trình 33 2.2.2.Cách thức hoạt động CUDA 33 2.3 Tổng quan lập trình với CUDA 38 2.3.1 Là ngôn ngữ lập trình mở rộng ngơn ngữ lập trình C 38 vi 2.3.2 Các phần mở rộng CUDA 38 2.3.3.Biến Built-in CUDA 41 2.3.4 Biên dịch CUDA thông qua NVCC 42 2.3.5.Một số trường hợp cụ thể tính toán song song CUDA 42 2.4 Các ứng dụng CUDA lĩnh vực 45 2.4.1 Ứng dụng CUDA game 45 2.4.2 Ứng dụng CUDA với video số 45 CHƯƠNG III: SỬ DỤNG GPU ĐỂ LÀM TĂNG TỐC ĐỘ TÍNH TỐN CHO BÀI TỐN MÃ HĨA AES 48 3.1 Giới thiệu AES 48 3.2 Thuật tốn mã hóa 48 3.2.1 Công đoạn mã hóa 50 3.2.2 Công đoạn giải mã 54 3.3 Chương trình thuật tốn song song mã hóa AES sử dụng GPU 62 3.3.1 Giao diện chương trình demo 92 3.3.2 Kết chương trình đánh giá hiệu suất tính tốn 93 KẾT LUẬN 88 TÀI LIỆU THAM KHẢO 89 vii DANH MỤC HÌNHVẼ Hình : Kiến trúc Von Neumann Hình : Máy tính song song có nhớ chia sẻ Hình : Máy tính song song có nhớ phân tán Hình : Kiến trúc máy SISD Hình : Kiến trúc máy SIMD Hình : Kiến trúc máy MISD Hình : Kiến trúc máy MIMD Hình : Mơ hình lập trình truyền thơng hai tác vụ hai máy tính Hình : Mơ hình lập trình song song liệu Hình10: Kiến trúc GPU NVIDIA AMD 19 Hình 11: Kiến trúc phần mềm CUDA 31 Hình 12: Thao tác cấp phát thu hồi nhớ 32 Hình 13: Vùng nhớ dùng chung mang liệu gần ALU 33 Hình 14: Sơ đồ hoạt động truyền liệu Host Device 34 Hình 15: Khối luồng 36 Hình 16: Mơ hình nhớ GPU 37 Hình 17: Chiều lưới khối với số khối luồng 42 Hình 18: Phương pháp đánh số luồng 45 Hình 19 : Mã hóa giải mã 49 Hình 20: Biến đổi SubBytes() mảng trạng thái 51 Hình 21: Mơ tả Hàm ShiftRows() 51 Hình 22: Mô tả hàm MixColumns() 52 Hình 23: Mơ tả hàm AddRoundKey() 53 Hình 24: Mơ tả hàm InvShiftRow() 55 viii LỜI MỞ ĐẦU Với phát triển vũ bão công nghệ, ngày công nghệ thông tin trở thành phần thiếu sống Không cịn cơng cụ hữu hiệu ngành khoa học, công nghệ cao,… đặc biệt ngành có nhu cầu tính tốn lớn Tuy nhiên với nhu cầu tính tốn ngày cành tăng cao đó, ngành cơng nghệ thơng tin lại vấp phải vấn đề tối quan trọng lực xử lý CPU có hạn Các nhà phát triển phần cứng thực gia tăng mức độ xử lý cho CPU cách gia tăng xung cho CPU Tuy nhiên việc chạm ngưỡng gặp phải vấn đề tản nhiệt cho CPU nhiệt độ CPU cao Một hướng nhà nghiên cứu đưa phát triển xử lý đa nhân với chế xử lý song song Một bước phát triển hướng xử lý đồ họa – GPU (Graphics Processing Unit - xử lý đồ họa) Khi đời, GPU sử dụng với mục đích cơng việc phù hợp với khả tăng tốc độ xử lý đồ họa, ngành trò chơi chủ yếu Nhưng với phát triển dần trò chơi phần mềm đồ họa, khiến GPU phát triển thêm đến hệ GPUNV30 NVIDIA đời người ta bắt đầu phát triển cơng việc khác cho GPU hỗ trợ tính tốn dấu chấm động đơn, hỗ trợ tính tốn lên ngàn lệnh Và đặc biệt với tiềm nghĩ tới việc sử dụng GPU ngồi đồ họa Cùng với ý tưởng liên tưởng đến việc áp dụng việc xử lý song song GPU thơng qua ngơn ngữ lập trình CUDA Xuất phát từ ý tưởng chọn đề tài: NGHIÊN CỨU CÔNG NGHỆ XỬ LÝ GPU VÀ ỨNG DỤNG Luận văn gồm chương chính: Chương 1: Khái quát xử lý đồ họa GPU xử lý song song, Chương giới thiệu tổng quan xử lý song song xử lý đồ họa GPU Chương 2: Xử lý song song thiết bị đồ họa GPU với CUDA Chương nghiên cứu ngơn ngữ lập trình CUDA cách xử lý song song CUDA GPU Chương 3: Sử dụng GPU để làm tăng tốc độ tính tốn cho tốn mã hóa ix AES Chương tiến hành cài đặt thử chương trình song song, xử lý song song mã hóa AES GPU ngơn ngữ CUDA đưa kết kết luận hiệu suất GPU CHƯƠNG I : KHÁI QUÁT VỀ BỘ XỬ LÝ ĐỒ HỌA GPU VÀ XỬ LÝ SONG SONG 1.1 Khái quát xử lý song song 1.1.1 Khái quát xử lý song song Nguồn gốc đời xử lý songsong Một tảng máy tính thiết kế máy tính John Von Neumann Đó thiết kế mà lệnh thực xử lý Hình1: Kiến trúc Von Neumann Khi cần tính tốn với lượng câu lệnh phép tính lớn thiết kế trở nên lỗi thời Người ta đưa phương pháp nhằm giải vấn đề Trong có việc tăng số lượng nhân xử lý kết nối nhiều máy tính thơng qua mạng để tăng tốc độ xử lý Khi tăng tốc xử lý phép tính máy tính song song, việc sử dụng thuật tốn khơng cịn thích hợp không tận dụng hết khả tiềm tàng máy tính song song Dẫn đến việc đời giải thuật song song Lý phải xử lý song song Như nói máy tính song song với xử lý nhiều nhân thay dần máy tính đơn nhân, xử lý Và với thuật toán, câu lệnh, phép xử lý khơng cịn phù hợp với máy tính song song Do xử lý song song đời thay cho xử lý nhằm đem lại hiệu tính tốn cao Bằng chứng thấy thực tế với nhiều toán xử lý với lượng liệu lớn ... tài: NGHIÊN CỨU CÔNG NGHỆ XỬ LÝ GPU VÀ ỨNG DỤNG Luận văn gồm chương chính: Chương 1: Khái quát xử lý đồ họa GPU xử lý song song, Chương giới thiệu tổng quan xử lý song song xử lý đồ họa GPU Chương... nhiều xử lý Làm rõ xử lý song song xử lý Xử lý thời điểm xử lý phép toán cịn xử lý song song thời điểm thực nhiều phép toán lúc nhiều xử lý, làm cho khả xử lý tăng lên đáng kể so với xử lý Bảng... gen…? ?Xử lý song song chứng minh khả xử lý khả phát triển sau Các khái niệm xử lý songsong Định nghĩa xử lý songsong Xử lý song song trình xử lý thực nhiều tiến trình lúc để xử lý toán, nhiều xử