« Home « Kết quả tìm kiếm

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


Tóm tắt Xem thử

- 12 CHƯƠNG 1: TỔNG QUAN VỀ TÍNH TOÁN SONG SONG.
- Khái niệm "Tính toán song song.
- Lý do phải tính toán song song.
- Lịch sử của tính toán song song.
- Tính toán song song trên card đồ họa (GPU.
- Cấu trúc lưu trữ, truy xuất dữ liệu bộ nhớ trong lập trình CUDA.
- Bộ nhớ toàn cục.
- Bộ nhớ Global.
- Bộ nhớ const.
- Bộ nhớ CUDA array.
- Bộ nhớ cục bộ và bộ nhớ dùng chung.
- 57 CHƯƠNG 3: ỨNG DỤNG TÍNH TOÁN SONG SONG TRÊN GPU TRONG MÀU HÓA ẢNH.
- Lã Thế Vinh Tên đề tài: Ứng dụng tính toán song song trong màu hóa ảnh.
- Tóm tắt: Nghiên cứu tổng quan về tính toán song song.
- các đặc trưng về phần cứng và phần mềm của công nghệ tính toán song song CUDA trên GPU.
- ngôn ngữ lập trình sử dụng trong tính toán song song CUDA.
- Xây dựng ứng dụng màu hóa ảnh dựa trên công nghệ tính toán song song.
- Chương 2: Tổng quan về 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 bộ nhớ CUDA Tìm hiểu ngôn ngữ lập trình dung trong CUDA Chương 3: Ứng dụng tính toán song song trong 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 toán song song để màu hóa ảnh số, đánh giá các kết quả đã đạt được .
- Tính toán song song.
- Các thao tác thu hồi và cấp phát bộ nhớ.
- Mô hình bộ nhớ CUDA.
- Bộ nhớ shared memory.
- Một trong những công nghệ tính toán song song mới hiện nay đó là sử dụng bộ xử lý đồ họa (GPU) để tính toán song song.
- Từ cơ sở đó, GPU có thể trở thành công cụ hữu ích phục vụ cho tính toán song song.
- Và vào năm 2007, công nghệ CUDA (Compute Unified Device Architecture – kiến trúc thiết bị hợp nhất cho tính toán) của Nvidia ra đời đánh dấu bước ngoặt trong tính toán song song trên GPU.
- CUDA giúp cho việc ứng dụng GPU vào tính toán song song trở nên thuận lợi hơn.
- Với những ý nghĩa đó, tôi đã lựa chọn đề tài luận văn : “ỨNG DỤNG TÍNH TOÁN SONG SONG TRONG MÀU HÓA ẢNH”.
- Ý nghĩa, mục đích của đề tài Mục đích chính của đề tài là: nghiên cứu về công nghệ tính toán song song trên GPU, nghiên cứu về phương pháp màu hóa ảnh.
- Trên cở sở đó xây dựng ứng dụng tính toán song song để màu hóa ảnh đảm bảo việc xử lý và thời gian tính toán được hiệu quả.
- Trang 9 - Giới thiệu tổng quan về tính toán song song - Giới thiệu công nghệ tính toán song song CUDA trên GPU.
- Công nghệ tính toán song song CUDA trên GPU.
- Nghiên cứu tài liệu về tính toán song song.
- Trang 10 - Nghiên cứu tài liệu công nghệ tính toán song song CUDA trên GPU: kiến trúc phần cứng, kiến trúc phần mềm.
- Ngôn ngữ lập trình sử dụng trong tính toán song song CUDA.
- Ý nghĩa khoa học và thực tiễn của đề tài Trong luận văn đã sử dụng công nghệ tính toán song song trên GPU để song song hóa quá trình màu hóa ảnh tĩnh để tăng thời gian tính toán và xử lý trên khối lượng dữ liệu lớn giúp tiết kiệm thời gian, công sức, tiền bạc.
- Nghiên cứu chi tiết về công nghệ tính toán song song CUDA trên GPU.
- Nghiên cứu các kỹ thuật màu hóa ảnh số - Đề xuất kỹ thuật song song hóa quá trình màu hóa ảnh số trên GPU - Xây dựng được module thực hiện màu hóa ảnh dựa trên công nghệ tính toán song song trên GPU.
- Kết quả đạt được - Xây dựng ứng dụng tính toán song song trên GPU thực hiện màu hóa ảnh số.
- Chương này trình bày những kiến thức cơ bản về tính toán song song và bước đầu giới thiệu tính toán song song trên GPU.
- Chương 3: Ứng dụng tính toán song song trên GPU trong màu hóa ảnh.
- Trang 12 NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ TÍNH TOÁN SONG SONG 1.1.
- Tính toán song song Trên hình 1.1 là mô tả cách thức tính toán song song, từ 1 bài toán chia thành 4 phần.
- Tận dụng được các nguồn tài nguyên tính toán trên mạng diện rộng.
- Tính toán song song (được coi là bước phát triển cao nhất của tính toán) hoàn toàn có thể giải quyết được những vấn đề này.
- Nhiều nguồn tài nguyên tính toán có thể làm nhiều việc cùng một lúc.
- Như vậy tần số tăng sẽ giảm đi thời gian chạy của những chương trình giới hạn tính toán.
- Lịch sử của tính toán song song Vào tháng Tư năm 1958, S.
- Nói về những mô hình tính toán song song đầu tiên, ta có thể kể đến Daniel Slotnick - Đại học Illinois – người đã thiết kế hai mẫu máy tính song song từ rất sớm.
- Thiết kế của ông được tài trợ bởi Không quân Hoa Kỳ, đây là nỗ lực tính toán song song SIMD đầu tiên, ILLIAC IV.
- Tính toán song song trên card đồ họa (GPU) Hình 1.7.
- Để tính toán song song đạt hiệu năng cao cần có một hệ thống gồm nhiều chip, nhiều nhân tính toán.
- Dựa trên cấu trúc phần cứng, tính toán đa năng trên các đơn vị xử lý đồ họa (GPGPU) đã ra đời.
- Tienhe-2 có khả năng tính toán cao nhất theo lý thuyết là 54,902 .
- K20X được trang bị 2496 nhân, khả năng tính toán là 1.31 TFlop/s cùng với bộ nhớ 6 GB.
- Từ đó giảm phụ thuộc băng thông truyền bộ nhớ DRAM.
- Trang 24 Hiện nay, NVIDIA đã phát triển được 4 thế hệ kiến trúc phần cứng tính toán cho CUDA.
- Điều này giúp tăng 87.5% khả năng tính toán so với G80.
- Bộ nhớ chia sẻ (shared memory) cho phép một vài thread trong cùng block cùng truy cập đến nó.
- Bộ nhớ này cung cấp truy cập với độ trễ thấp (10-20 chu kì) và băng thông rất cao (1600 GB/s.
- Số lượng thanh ghi và bộ nhớ chia sẻ trên mỗi SMX cũng được mở rộng hơn.
- Quyền truy cập đến mỗi loại bộ nhớ cũng tuỳ vào cấp độ phần cứng sử dụng.
- Trước hết cần nắm được nguyên tắc chung khi thao tác với bộ nhớ trong lập trình CUDA.
- Dữ liệu muốn được tính toán trên GPU thì cần phải được copy từ Host .
- Global memory  Const memory  CUDA array (chỉ được truy cập thông qua việc gán vào bộ nhớ texture.
- Bộ nhớ cục bộ (Local.
- Bộ nhớ dùng chung (Share- mọi thread trên cùng 1 block mới được truy cập) Hình 2.13.
- Mô hình bộ nhớ CUDA 2.5.1.
- Bộ nhớ toàn cục 2.5.1.1.
- Sau khi khai báo xong rồi cần copy dữ liệu từ bộ nhớ host sang để tiến hành xử lí tính toán Dùng hàm cudaMemcpy cudaMemcpy(d_Array, h_Array, sizeof(int.
- Câu lệnh trên copy dữ liệu từ bộ nhớ host sang bộ nhớ device  Kiểu của dữ liệu được chuyển đổi có kích thước sizeof(int)*200  Tính toán trên thiết bị xong thì trả lại dữ liệu cho Host cudaMemcpy(h_Array, d_Array, sizeof(int.
- Câu lệnh trên copy dữ liệu từ bộ nhớ device sang bộ nhớ host  Kiểu của dữ liệu được chuyển đổi có kích thước sizeof(int.
- 200  Tầm vực và thời gian tồn tại của các biến khai báo trong bộ nhớ toàn cục.
- Cách thức truy xuất bộ nhớ .
- Copy mảng này qua bộ nhớ global memory.
- //chuẩn bị bộ nhớ trên global memory để copy data sau khi đã tính toán int *d_Data = NULL.
- //cần 256 thread để tính toán cho 256 phần tử 32(threads) x 8(blocks.
- //chuẩn bị bộ nhớ trên host để copy data từ device tới host int *h_Result = (int*)malloc(sizeof(int.
- //giải phóng bộ nhớ free(h_Data).
- Hàm KernelAdd //khai báo bộ nhớ global memory __global__ void KernelAdd(int *d_Data.
- //không thể giải phóng bộ nhớ const memory được trừ khi kết thúc chuơng trình  Sau khi khai báo xong rồi cần copy dữ liệu từ bộ nhớ host sang để tiến hành xử lí tính toán Dùng hàm cudaMemcpyToSymbol cudaMemcpyToSymbol(constArray, h_Array, sizeof(int.
- Câu lệnh trên copy dữ liệu từ bộ nhớ host sang bộ nhớ device  Kiểu của dữ liệu được chuyển đổi có kích thước int*200  Tính toán trên thiết bị xong thì trả lại dữ liệu cho Host cudaMemcpyFromSymbol(h_Array, constArray, sizeof(int.
- Tầm vực và thời gian tồn tại của các biến khai báo trong bộ nhớ toàn cục.
- //chuẩn bị bộ nhớ trên host để copy data từ device to host int *h_Result = (int*)malloc(256 * sizeof(int.
- //không thể giải phóng bộ nhớ const memory được trừ khi kết thúc chuơng trình .
- Trang 40  Sau khi khai báo xong rồi cần copy dữ liệu từ bộ nhớ host sang để tiến hành xử lí tính toán Dùng hàm cudaMemcpyToArray cudaMemcpyToArray(cudaArray, sizeof(int.
- Tính toán trên thiết bị xong thì trả lại dữ liệu cho Host cudaMemcpyFromArray(h_Array, cudaArray, sizeof(int.
- //chuẩn bị bộ nhớ global để copy back data int *d_Data = NULL.
- //cần 256 thread để tính toán cho 256 phần tử 64(threads) x 4(blocks.
- Bộ nhớ cục bộ và bộ nhớ dùng chung Các thread dùng bộ nhớ cục bộ để thực hiện lưu giữ dữ liệu của riêng mình.
- Các tính chất của bộ nhớ này.
- Bộ nhớ này có kích thước là 16kb cho mỗi block (Tesla M2070 là 32.
- Bộ nhớ shared memory Cách sử dụng bộ nhớ này Bài toán.
- Khi khai báo một biến trong bộ nhớ chia sẻ như một mảng mở rộng như : extern __shared__ float shared.
- Trong bộ nhớ chia sẻ có thể khai báo và khởi tạo các mảng theo cách sau: extern __shared__ char array.
- Việc cấp phát bộ nhớ động sử dụng bởi bất kỳ biến khai báo như là một mảng mở rộng.
- Bước 4.2: Gọi hàm để tính toán tần số của máy ::QueryPerformanceFrequency(&frequency.
- được sử dụng để giải phóng bộ nhớ cho con trỏ đã được cấp phát  malloc.
- hàm cấp phát bộ nhớ trong C (cấp phát bộ nhớ trên host.
- Cấp phát bộ nhớ trên device  cudaMemcpy (mảng trên device, mảng trên host, cudaMemcpy HostToDevice.
- hàm copy dữ liệu từ host tới Device để thực hiện tính toán song song  cudaMemcpy (mảng trên host, mảng trên device, cudaMemcpy DeviceToHost): hàm copy dữ liệu từ device sang Host để trả ra kết quả sau khi đã tính toán xong

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt