Ứng dụng tính toán song song màu hóa ảnh

88 12 0
Ứng dụng tính toán song song màu hóa ảnh

Đ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

Ứng dụng tính toán song song màu hóa ảnh Ứng dụng tính toán song song màu hóa ảnh Ứng dụng tính toán song song màu hóa ảnh luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

MỤC LỤC MỤC LỤC Tóm tắt luận văn Lời cảm ơn Lời cam đoan Danh mục ký hiệu, chữ viết tắt Danh mục bảng biểu Danh mục hình vẽ, đồ thị PHẦN MỞ ĐẦU Lý chọn đề tài Ý nghĩa, mục đích đề tài Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu Phương pháp nghiên cứu Phương tiện nghiên cứu 10 Ý nghĩa khoa học thực tiễn đề tài 10 Những vấn đề giải 10 Kết đạt 10 Bố cục luận văn 11 NỘI DUNG 12 CHƯƠNG 1: TỔNG QUAN VỀ TÍNH TỐN SONG SONG 12 1.1 Khái niệm "Tính tốn song song" 12 1.2 Lý phải tính tốn song song? 12 1.3 Lịch sử tính tốn song song 15 1.4 Định luật Amdahl 17 1.5 Tính tốn song song card đồ họa (GPU) 19 CHƯƠNG 2: TỔNG QUAN VỀ KIẾN TRÚC XỬ LÝ SONG SONG CUDA 22 2.1 Giới thiệu kiến trúc CUDA 22 2.2 Kiến trúc phần cứng 23 2.2.1 Thế hệ thứ nhất: Kiến trúc G80 24 2.2.2 Thế hệ thứ hai: Kiến trúc GT200 25 2.2.3 Thế hệ thứ ba: Kiến trúc Fermi 25 2.2.4 Thế hệ thứ tư: Kiến trúc Kepler 28 2.2.5 So sánh kiến trúc 30 2.3 Cấu trúc logic lập trình CUDA 30 2.4 Cơ chế phân công công việc 32 2.5 Cấu trúc lưu trữ, truy xuất liệu nhớ lập trình CUDA 34 2.5.1 2.5.1.1 Bộ nhớ Global 35 2.5.1.2 Bộ nhớ const 38 2.5.1.3 Bộ nhớ CUDA array 39 2.5.2 2.6 Bộ nhớ toàn cục 35 Bộ nhớ cục nhớ dùng chung 41 Lập trình ứng dụng CUDA mở rộng với C/C++ 44 2.6.1 Mở rộng với ngơn ngữ lập trình C 44 2.6.2 Biên dịch với NVCC (Nvidia’s CUDA Compiler) 45 2.6.3 Từ khóa phạm vi kiểu hàm kiểu biến 46 2.6.4 Các ràng buộc 48 2.6.5 Thực cấu hình 49 2.6.6 Các biến built-in vector built-in 49 2.6.7 Hàm đồng 50 2.6.8 Các hàm chuyển đổi kiểu 51 2.6.9 Các hàm ép kiểu 51 2.6.10 Hàm thời gian 52 2.6.11 Các hàm kết cấu 52 2.7 Các chương trình mẫu 54 2.7.1 Cách xây dựng chương trình CUDA đơn giản Visual Studio 54 2.7.2 Cộng ma trận 55 2.7.3 Sàng số nguyên tố 57 CHƯƠNG 3: ỨNG DỤNG TÍNH TỐN SONG SONG TRÊN GPU TRONG MÀU HÓA ẢNH 59 3.1 Thuật tốn màu hóa ảnh 59 3.1.1 Bài toán AX=B 64 3.1.2 Một số phương pháp giải toán AX=B 66 3.2 3.1.2.1 Phương pháp khử Gauss (Gaussian Elimination) 66 3.1.2.2 Phương pháp khử Gauss-Jordan (Gauss-Jordan Elimination) 68 Cài đặt thuật toán 69 3.2.1 Cài đặt thuật toán khử Gauss 69 3.2.1.1 Cài đặt thuật toán CPU 69 3.2.1.2 Cài đặt thuật toán GPU 70 3.2.2 Giới thiệu thư viện ViennaCL 71 3.2.3 Sử dụng thư viện ViennaCL để giải toán Ax=b áp dụng vào thuật tốn màu hóa ảnh 72 3.3 3.2.3.1 Sử dụng thư viện ViennaCL chạy GPU 72 3.2.3.2 Sử dụng thư viện CSparse chạy CPU 75 Thử nghiệm 75 3.3.1 Môi trường thử nghiệm 75 3.3.2 Kết thử nghiệm 76 3.3.2.1 So sánh thời gian thực thuật toán khử Gauss (Gaussian Elimination) CPU GPU 76 3.3.2.2 So sánh thời gian thực CPU với thư viện CSparse GPU với thư viện ViennaCL 76 3.3.3 Kết luận 79 PHỤ LỤC 80 Phụ lục 1: Code chương trình cộng ma trận 80 Phụ lục 2: Code chương trình sàng số nguyên tố 81 Phụ lục 3: Kiểm tra GPU 81 DANH MỤC TÀI LIỆU THAM KHẢO 84 Tóm tắt luận văn Họ tên học viên: Đỗ Bảo Sơn Chuyên ngành: Công Nghệ Thông Tin Cán hướng dẫn: TS Lã Thế Vinh Tên đề tài: Ứng dụng tính tốn song song màu hóa ảnh Tóm tắt: Nghiên cứu tổng quan tính tốn song song; đặc trưng phần cứng phần mềm cơng nghệ tính tốn song song CUDA GPU; ngơn ngữ lập trình sử dụng tính tốn song song CUDA; Phương pháp xây dựng toán song song GPU từ toán tuần tự; Phương pháp màu hóa ảnh số thực ảnh tĩnh Xây dựng ứng dụng màu hóa ảnh dựa cơng nghệ tính tốn song song Nội dung luận văn Chương 1: Tổng quan tính tốn song song Tìm hiểu khái niệm, đặc điểm tính tốn song song nói chung tính tốn song song card đồ họa nói riêng Chương 2: Tổng quan kiến trúc xử lý song song CUDA Tìm hiểu kiến trúc phần cứng CUDA Tìm hiểu mơ hình nhớ CUDA Tìm hiểu ngơn ngữ lập trình dung CUDA Chương 3: Ứng dụng tính tốn song song màu hóa ảnh Phân tích kỹ thuật màu hóa ảnh số Xây dựng ứng dụng tính tốn song song để màu hóa ảnh số, đánh giá kết đạt Trang Lời cảm ơn Trong thời gian nghiên cứu thực luận văn này, nhận giúp đỡ nhiệt tình quan, tổ chức cá nhân Tôi xin bày tỏ lời cảm ơn sâu sắc tới tất tập thể, cá nhân tạo điều kiện giúp đỡ tơi suốt q trình thực nghiên cứu luận văn Lời đầu tiên, xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Lã Thế Vinh, người thầy trực tiếp quan tâm tận tình hướng dẫn giúp tơi hồn thành luận văn Tôi xin bày tỏ lời cảm ơn chân thành tới thầy, cô giáo, cán trường Đại học Bách khoa Hà Nội tạo điều kiện thuận lợi nhiệt tình giúp đỡ cho tơi thời gian học tập trường Xin chân thành cảm ơn tất bạn bè, đồng nghiệp động viên, giúp đỡ nhiệt tình đóng góp nhiều ý kiến q báu để tơi hồn thành luận văn Tơi xin tỏ lịng biết ơn sâu sắc tới gia đình nuôi nấng, chỗ dựa vững cho tơi, kịp thời động viên, khích lệ, giúp đỡ tơi vượt qua khó khăn sống Do thời gian nghiên cứu có hạn, luận văn tơi hẳn khơng thể tránh khỏi sơ suất, thiếu sót, tơi mong nhận đuợc đóng góp thầy giáo tồn thể bạn đọc Xin chân thành cảm ơn! Hà Nội, tháng năm 2016 Tác giả luận văn Đỗ Bảo Sơn Trang Lời cam đoan Tơi xin cam đoan cơng trình nghiên cứu thân, xuất phát từ yêu cầu phát sinh cơng việc để hình thành hướng nghiên cứu Các số liệu có nguồn gốc rõ ràng tuân thủ nguyên tắc kết trình bày luận văn thu thập trình nghiên cứu trung thực chưa công bố trước Tôi xin cam đoan giúp đỡ cho việc thực luận văn cám ơn, thơng tin trích dẫn luận văn rõ nguồn gốc Hà Nội, tháng năm 2016 Tác giả luận văn Đỗ Bảo Sơn Trang Danh mục ký hiệu, chữ viết tắt Từ viết tắt Tiếng Việt Tiếng Anh ALU Bộ tính toán số học logic Arithmetic Logic Unit API Giao diện chương trình ứng Application Program Interface dụng CPU Bộ xử lý trung tâm Central Processing Unit CTM Kiến trúc tính toán song song Close to Metal AMD CUDA DP Kiến trúc thiết bị thống cho Compute Unified Device tính tốn Nvidia Architecture Bộ tính tốn dấu chấm động độ Double precision processor xác kép DRAM Bộ nhớ truy cập ngẫu nhiên Dynamic random access memory động Flops FPU Đơn vị đo số thao tác dấu chấm Floating point operations per động giây second Bộ tính tốn số thực dấu chấm Floating point unit động GPGPU Tính tốn đa GPU General purpose graphics processing unit GPU Bộ xử lý đồ họa Graphics processing unit NVCC Trình biên dịch CUDA Nvidia’s CUDA compiler SDK Bộ phát triển phần mềm Software development kit SFU Bộ tính tốn hàm chức đặc Special function unit biệt SIMD Đơn lệnh đa liệu Single instruction multiple data SM Bộ xử lý đa luồng Streaming multiprocessor SMX Bộ xử lý đa luồng hệ Next Generation Streaming Multiprocessor SP Bộ xử lý luồng Streaming processor TPC Cụm xử lý luồng CUDA Thread Processing Clusters Trang Danh mục bảng biểu Bảng 2.1 So sánh thể hệ kiến trúc phần cứng 30 Bảng 2.2 So sánh thời gian sàng số nguyên tố .58 Bảng 3.1 Bảng kết thử nghiệm thuật toán khử Gauss CPU Intel(R) Core(TM) i5 1.7GHz GPU Nvidia GeForce GT 820M .76 Bảng 3.2 Bảng kết thử nghiệm CPU với thư viện CSparse GPU với thư viện ViennaCL .79 Trang Danh mục hình vẽ, đồ thị Hình 1.1 Tính toán song song .12 Hình 1.2 Biểu đồ định luật Moore (1971-2004) 14 Hình 1.3 Ba nhà khoa học tiên phong tính toán song song, từ trái sang phải Gene Amdahl, Daniel Slotnick, John Cocke 15 Hình 1.4 Máy tính ILLIAC IV .17 Hình 1.5.Tối ưu hóa thành phần khác 18 Hình 1.6 Biểu diễn định luật Amdahl 19 Hình 1.7 So sánh số lượng core CPU GPU .19 Hình 1.8 Siêu máy tính Tianhe-2 20 Hình 1.9 GPU Tesla Kepler K20X .21 Hình 2.1 Sơ đồ kiến trúc phần mềm CUDA 22 Hình 2.2 Các thao tác thu hồi cấp phát nhớ 23 Hình 2.3 Vùng nhớ dùng chung GPU 23 Hình 2.4 Kiến trúc phần cứng G80 24 Hình 2.5 Kiến trúc phần cứng GT200 25 Hình 2.6 Kiến trúc phần cứng Fermi 26 Hình 2.7 Cấu tạo phần cứng SM thuộc hệ Fermi .27 Hình 2.8 Kiến trúc phần cứng Kepler 28 Hình 2.9 Cấu tạo phần cứng SMX thuộc hệ Kepler .29 Hình 2.10 Sơ đồ hoạt động truyền liệu Host Device 31 Hình 2.11 Kiến trúc phần mềm tương ứng với kiến trúc phần cứng 33 Hình 2.12 Mơ hình grid, block, thread 34 Hình 2.13 Mơ hình nhớ CUDA .35 Hình 2.14 Bộ nhớ shared memory 43 Hình 3.1 Mặt phẳng U-V Y = 0.5, nằm phổ màu RGB 59 Hình 3.2 (a) ảnh đầu vào, (b) ảnh phân vùng tơ màu, (c) ảnh đầu .60 Hình 3.3 Tương quan điểm ảnh miền không gian thời gian 61 Hình 3.4 Trên miền khơng gian thời gian 62 Hình 3.5 Ma trận trọng số tương quan 62 Hình 3.6 Chuyển ma trận tơ màu thành ma trận cột 63 Hình 3.7 Ma trận phương trình AX=B 63 Trang 3.2.1.2 Cài đặt thuật toán GPU Thuật toán khử Gauss tiến: int forward_elimination_GPU_cuBLAS(double* A, double* B) { double Aii, Bi, alpha, beta; cublasHandle_t handle; double *d_A; size_t sA = sizeof(double) * N * N; gpuErrchk(cudaMalloc((void**)&d_A,sA)); double *d_B; size_t sB = sizeof(double) * N; gpuErrchk(cudaMalloc((void**)&d_B,sB)); double *d_R; size_t sR = sizeof(double) * N; gpuErrchk(cudaMalloc((void**)&d_R,sR)); cublasSafeCall(cublasCreate(&handle)); cublasSafeCall(cublasSetMatrix(N, N, sizeof(double), A, N, d_A, N)); cublasSafeCall(cublasSetVector(N, sizeof(double), B, 1, d_B, 1)); for (int i=0; i

Ngày đăng: 13/02/2021, 18:30

Mục lục

  • MỤC LỤC

  • PHẦN MỞ ĐẦU

  • NỘI DUNGCHƯƠNG 1: TỔNG QUAN VỀ TÍNH TOÁN SONG SONG

  • CHƯƠNG 2: TỔNG QUAN VỀ KIẾN TRÚC XỬ LÝ SONG SONG CUDA

  • CHƯƠNG 3: ỨNG DỤNG TÍNH TOÁN SONG SONG TRÊN GPUTRONG MÀU HÓA ẢNH

  • PHỤ LỤC

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

Tài liệu liên quan