1. Trang chủ
  2. » Tất cả

Luận văn thạc sĩ nghiên cứu công nghệ xử lý gpu và ứng dụng

20 1 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

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 LỜI CAM ĐOAN Tôi xin cam đoan Những nghiên cứu dưới đây[.]

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 LỜI CAM ĐOAN Tôi xin 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 1 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 yêu cầu tốc độ nhanh độ xác tốn đồ họa, xử lý ảnh, xử lý tín hiệu, mơ giao thơng, mô chuyển động phân tử, nguyên tử, dự báo thời tiết, mô đồ 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ử 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 cho thấy khác xử lý xử lý song song Bảng 1.1: So sánh khác lập trình song song Lập trình tính tốn Lập trình tính tốn song song - Chương trình chạy xử lý - Chương trình ứng dụng chạy nhiều (single processor) xử lý - Các câu lệnh xử lý(CPU) - Các câu lệnh vi xử lý thực thực cách cách song song, đồng thời - Mỗi câu lệnh thực thiện - Mỗi câu lệnh thao tác nhiều thành phần liệu thành phần liệu khác 3 - Chỉ cần viết câu lệnh giải - Viết câu lệnh giải thuật Ngoài thuật chạy chương trình phải rõ phần chương trình cần phải chạy song song - Dùng với toán liệu nhỏ, độ - Được sử dụng tốn có phức tạp không cao yêu cầu thời gian liệu lớn, độ phức tạp cao thời gian ngắn chấp nhận  Mục đích xử lý song song Dựa việc tính tốn song song nhiều xử lý cho tốc độ xử lý cao, xử lý song song thường dùng cho tốn có độ phức tạp lớn, u cầu khối lượng tính tốn lớn 1.1.2 Khái quát Hệ thống máy tính song song Là hệ thống máy tính với nhiều nhân xử lý có khả xử lý song song Bao gồm máy tính với xử lý mà gồm nhiều lõi, gọi máy tính song song Phân loại máy tính song song phổ biến biết tới phân loại máy tính song song Michael Flynn vào năm 1966 Dựa vào đặc điểm số lượng xử lý, cấu trúc nhớ,… Michael Flynn phân máy tính thành bốn loại dựa biểu cặp khái niệm: Dòng lệnh (instruction stream) dòng liệu (data stream), loại nằm trong hai trạng thái đơn (single) đa (multiple) Dựa theo phân loại Flynn có loại máy tính song song theo bảng dưới: Bảng 1.2: Mô tả phân loại kiến trúc Flynn Dòng lệnh (instruction Dòng liệu stream) (data stream) Trạng thái đơn (single) Trạng thái đơn SISD (single) Single Instruction Single Trạng thái đa SIMD Data (multiple) Single Instruction Multiple Trạng thái đơn MISD Data (single) Multiple Instruction Single Trạng thái đa MIMD Data (multiple) Multiple Instruction Multiple Trạng thái đơn (single) Trạng thái đa (multiple) Trạng thái đa (multiple) Loại kiến trúc Data Dựa cấu trúc nhớ Flynn chia làm loại máy tính Các xử lý với nhớ chia sẻ truy cập đến vùng nhớ chung Sự thay đổi nội dung nhớ nhận biết xử lý khác Hình : Máy tính song song có nhớ chia sẻ Lại chia tiếp lớp nhỏ loại máy tính này: Lớp máy tính UMA (Uniform Memory Access – Truy cập nhớ đồng nhất) khả truy cập nhớ xử lý có thời gian Lớp máy tính NUMA (NonUniform Memory Access – Truy cập nhớ không đồng nhất) khả truy cập nhớ xử lý có thời gian khơng 5 Máy tính song song với nhớ phân tán Mỗi xử lý có nhớ khả truy cập độc lập Sự thay đổi nội dung vùng nhớ xử lý không làm ảnh hưởng đến xử lý khác Hình : Máy tính song song có nhớ phân tán Mơ hình cấu trúc đơn dòng lệnh đơn luồng liệu (SISD) Là máy tính có xử lý thời điểm thực lệnh, đọc, ghi mục liệu Chỉ có ghi gọi đệm kết đầu theo câu lệnh Hình : Kiến trúc máy SISD Mơ hình cấu trúc đơn dịng lệnh đa luồng liệu (SIMD) Mỗi xử lý thực xử lý luồng liêu Các xử lý thực phép toán nhiều luồng liệu khác có thành phần để điều khiển cho xử lý thực xử lý luồng câu lệnh 6 Hình : Kiến trúc máy SIMD Mơ hình cấu trúc đa dịng lệnh đơn luồng liệu (MISD) Là loại máy tính thực nhiều câu lệnh mục liệu Hình : Kiến trúc máy MISD Mơ hình cấu trúc đa dòng lệnh đa luồng liệu (MIMD) Là loại máy tính đa nhân, đa xử lý thực nhiều câu lệnh nhiều luồng khác nhau.Các xử lý có nhớ riêng biệt truy cập vào nhớ chung cần giúp tăng tốc độ xử lý Mơ hình kiến trúc mơ hình kiến trúc phức tạp mơ hình ưu việt có nhiều máy tính xây dựng kiến trúc này, ví dụ: BBN Butterfly 7 Hình : Kiến trúc máy MIMD 1.1.3 Khái quát lập trình song song Là việc lập trình câu lệnh đoạn chương trình song song để chạy hệ thống máy tính song song Cũng hiểu việc song song hóa thuật tốn nhằm tăng tốc độ xử lý tính tốn lên nhiều lần Trong việc lập trình song song chia chương trình, tốn lớn thành tốn chia toán thành toán nhỏ hơn…rồi chia tốn nhỏ cho xử lý giải đồng mặt thời gian xử lý công việc để nhận kết cuối Việc quan xử lý toán đồng thời Do muốn lập trình song song thuật tốn ta cần xác định song song hóa thuật tốn hay khơng Các kiểu song song hóa:  Song song hóa mặc định: Việc phân chia công việc đến xử lý tự động  Song song hóa thủ cơng: Việc phân chia cơng việc đến xử lý người lập trình tự định Trong cần để ý đến vấn đề cân tải Khi xử giải nhiều công việc cần chuyển công việc đến xử lý khác giải cơng việc 8 Một vấn đề quan trọng lập trình song song việc kết nối nhớ Có hai kỹ thuật kết nối là: sử dụng nhớ chia sẻ truyền thơng điệp Mơ hình lập trình song song bao gồm hệ thống truyền thông vào/ra song song, ứng dụng, ngôn ngữ, biên dịch, thư viện Việc phân chia cơng việc cho máy tính song song hiệu cho tất tốn khơng khả thi Vấn đề người lập trình viên song song phải biết sử dụng hiệu mơ hình cho toán hoăc kết hợp chúng với Hiện có mơ hình lập trình song song: Truyền thông điệp (Message Passing) Song song liệu (Data Parallel) Truyền thông điệp xử lý song song Là mơ hình sử dụng rộng rãi cho hệ phân tán Bao gồm đặc trưng sau:  Trong q trình tính tốn luồng sử dụng vùng nhớ cục riêng  Các luồng sử dụng chung tài nguyên  Việc trao đổi luồng thực cách gửi thông điệp  Mỗi luồng thực việc điều khiển việc truyền liệu Ví dụ thao tác gửi luồng phải ứng với thao tác nhận luồng khác Hình 8: Mơ hình lập trình truyền thơng hai tác vụ hai máy tính Song song liệu xử lý song song Ở mô hình chủ yếu việc song song thực tập liệu Cấu trúc tập liệu mảng khối Cùng phép toán, Các tác vụ thực kiểu liệu tập liệu khác Mơ hình chủ yếu dành cho máy tính song song kiểu xử lý mảng Hình : Mơ hình lập trình song song liệu 1.1.4 Các nguyên tắc thiết kế giải thuật xử lý song song Để xét đến việc xử lý song song cần quan tâm đến giải thuật việc thực giải thuật song song loại máy tính Những bước cần thực thiết kế giải thuật song song:  Phân nhỏ toán thành toán nhỏ cho độc lập mặt liệu chức năng, giải toán đồng thời  Chỉ rõ việc chia sẻ liệu truy cập  Chia tác vụ cho tiến trình cho nhân xử lý  Việc đồng tiến trình Các bước thiết kế giải thuật song song chương trình xử lý song song Khi bắt tay thiết kế giải thuật song song điều quan trọng ta phải biết cần song song công đoạn Trước song song thuật tốn ta cần biết thuật tốn dạng tuần tự, đồng thời phải hiểu giải thuật ngơn ngữ lập trình cụ thể Khi ta xét bước sau để xem tốn có song song hóa khơng: - Phân tích tốn, xác định thành phần giải thuật khơng thể song song hóa - Để ý đến hạn chế xử lý song song hạn chế lớn 10 phụ thuộc liệu Các ví dụ chương trình song song hóa Một tốn ví dụ song song hóa cộng hai mảng số nguyên có phần tử Cơng đoạn song song hóa cộng phẩn tử có thứ tự độc lập với phần tử khác A 1 1 + B = C 4 5 4 5 Các ví dụ chương trình khơng thể song song hóa Tính chuỗi Fibonacci (1, 1, 2, 3, 5, 8, 13, 21,…) cách sử dụng công thức: F(k+2)= F(k+1) + F(k), với n > Bài tốn khơng song song hóa ngun nhân tính số hạng dãy Fibonacci theo công thức phụ thuộc độc lập Trong việc tính giá trị thứ k+2 phải sử dụng giá trị hai giá trị k+1 k Cách thiết kế giải thuật song song Cách thiết kế khái quát đề cập đến luận văn phân chia liệu  Áp dụng liên quan đến tính tốn nhiều cấu trúc liệu Các cấu trúc liệu phân chia nhỏ tính tốn phần cấu trúc liệu nhỏ Minh chứng cho lập luận toán cộng hai mảng số nguyên Trường hợp ta có n xử lý làm việc để cộng hai mảng X[0…N-1] Y[0…N-1] lưu vào mảng kết Z[0 N-1], việc phân chia liệu đặt N/n phần tử mảng vào q trình tính tốn N/n phần tử tương ứng mảng kết Như 11 vậy, với n xử lý nhiều thời gian chạy nhanh, ngược lại chạy chậm 1.2 Khái quát công nghệ GPU ứng dụng 1.2.1 Tổng quan GPU Một phần tách rời hệ thống máy tính ngày xử lý đồ họa (Graphic Proccessing Unit) gọi tắt GPU.Từ đời GPU cho ta thấy phát triển ấn tượng hiệu suất GPU không cơng cụ xử lý đồ họa mạnh mà cịn xử lý hỗ trợ lập trình song song mức cao, giúp giải toán số học cần khả xử lý số học phức tạp băng thông nhớ tăng đáng kể so với CPU loại Sự phát triển mạnh hiệu suất GPU việc hỗ trợ lập trình khả tính tốn tạo hướng nghiên cứu Một nhóm chuyên gia nghiên cứu thành công lượng lớn vấn đề phức tạp địi hỏi tính tốn lớn vào GPU Việc góp phần ứng dụng GPU vào giải tốn hiệu cao tính tốn đại Tính tốn lập trình GPU thay tiềm cho CPU hệ thống máy tính đại Trong tương lai khơng xa, GPU đảm nhận thay cho CPU công việc xử lý hình ảnh, đồ họa, tính tốn phức tạp thay dừng lại ứng dụng trị chơi 3D 1.2.2 Nguồn gốc q trình phát triển GPU GPU xử lý card đồ họa, dùng để tính tốn phép tốn dấu phảy động Lúc đầu GPU xử lý gắn card đồ họa phục vụ cho việc tính tốn phép toán dấu phảy động Với vi mạch siêu nhỏ, phép toán đăc biệt , GPU sử dụng chủ yếu hoạt động cần đến xử lý đồ họa cao game đồ họa cao xử lý đồ họa 3D Việc xử lý số phép toán đồ họa nguyên thủy khiến GPU chạy nhanh nhiều so với việc vẽ trực tiếp hình với CPU ... 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ử

Ngày đăng: 01/03/2023, 19:28

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w