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

Công nghệ tính toán hiệu năng cao sử dụng card đồ họa trong diễn họa


Tóm tắt Xem thử

- Nguyễn Quốc Huy CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ TÍNH TOÁN HIỆU NĂNG CAO SỬ DỤNG CARD ĐỒ HỌA TRONG DIỄN HỌA LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN KHÓA 2010 Hà Nội – 2012 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI.
- Nguyễn Quốc Huy CÔNG NGHỆ TÍNH TOÁN HIỆU NĂNG CAO SỬ DỤNG CARD ĐỒ HỌA TRONG DIỄN HỌA Chuyên ngành : CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC : TS.
- 11 CHƯƠNG 1: TỔNG QUAN VỀ TÍNH TOÁN HIỆU NĂNG CAO.
- Tổng quan về tính toán hiệu năng cao.
- 12 1.1.1 Nhu cầu tính toán hiệu năng cao.
- 12 1.2 Các hướng tiếp cận tính toán hiệu năng cao tiêu biểu.
- 13 1.2.2 Tính toán song song phân cụm (Cluster Computing.
- 15 1.2.3 Công nghệ tính toán lưới – Grid Computing.
- 21 1.2.5 Tính toán song song trên hệ thống card đồ họa đa dụng.
- 22 CHƯƠNG 2: CÔNG NGHỆ TÍNH TOÁN HIỆU NĂNG SỬ DỤNG CARD ĐỒ HỌA GPGPU.
- 31 3.1.1 CUDA : Kiến trúc tính toán song song đa dụng.
- 40 3.2.5 Khả năng tính toán của Device - Compute Capability.
- 54 4.2 Cơ sở tính toán lý thuyết.
- 57 4.3.1 Tính toán lực tương tác giữa một cặp thực thể Body-Body.
- 58 4.3.2 Tính toán trong một Tile.
- 67 7 TÓMTẮTLUẬNVĂNĐề tài : Công nghệ tính toán hiệu năng cao sử dụng card đồ họa trong diễn họa.
- Phạm Đăng Hải Nội dung tóm tắt: A, Lý do chọn đề tài Với những tiến bộ nhanh trong công nghệ chế tạo phần cứng máy tính, các GPU (Gaphics Processing Units – Bộ xử lý đồ họa) phát triển với kiến trúc song song hóa mức cao, xử lý đa luồng với kiến trúc manycore processor đã đem lại khả năng tính toán cùng với băng thông bộ nhớ rất lớn.
- Từ đó xuất hiện kỹ thuật dùng tính toán trên GPU làm những công việc trước kia là của CPU để tăng cường hiệu năng tính toán, và đó cũng là lý do tác giả chọn đề tài luận văn ‘Công nghệ tính toán hiệu năng cao sử dụng card đồ họa trong diễn họa’.
- Tìm hiểu công nghệ và kiến trúc hệ thống tính toán hiệu năng cao sử dụng card đồ họa NVIDIA.
- Sử dụng hệ thống tính toán hiệu năng cao trên card đồ họa NVIDIA trong ứng dụng diễn họa.
- C, Tóm tắt các nội dung chính của luận văn Luận văn bao gồm 5 chương : Chương 1: Tổng quan về tính toán hiệu năng cao : Trình bày sự cần thiết và những điểm nổi bật của các công nghệ tính toán hiệu năng cao trên thế giới.
- 8 Chương 2: Công nghệ tính toán hiệu năng cao sử dụng card đồ họa GPGPU : Nghiên cứu những công nghệ tính toán hiệu năng cao sử dụng sức mạnh tính toán song song của các bộ xử lý đồ họa đa dụng.
- Chương 4: Xây dựng ứng dụng diễn họa trên hệ thống NVIDIA GPU : Chương này áp dụng những kiến thức đã nghiên cứu vào việc xây dựng một ứng dụng tính toán song song trên hệ thống NVIDIA GPU, cụ thể là giải quyết bài toán “N-Body Simulation”.
- 16 Hình 3: Hệ thống tính toán song song phân cụm theo mô hình Beowulf Cluster .
- 18 Hình 5: Mô hình tính toán lưới.
- 54 Hình 19: Bài toán N-Body : Cơ chế tính toán trong một Tile.
- 60 10 Hình 21:Grid của các Thread Blocks tính toán tất cả các lực tương tác.
- 62 Hình 22: NVIDIA Video card GeForce 210: Phần cứng sử dụng để tính toán.
- 64 11 DANHMỤCCÁCTỪVIẾTTẮTVÀCÁCTHUẬTNGỮ CPU Central Processing Unit - Bộ vi xử lý trung tâm GPU Graphics processing unit - Bộ xử lý đồ họa GPGPU General-purpose computing on graphics processing units Tính toán đa dụng trên bộ vi xử lý đồ họa CUDA Compute Unified Device Architecture – Môi trường lập trình trên các bộ xử lý đồ họa đa dụng GPGPU Thread Luồng chương trình, tiểu trình.
- Cluster Computing Tính toán phân cụm Grid Computing Tính toán lưới FLOPS Floating-point operations per second : Số phép tính dấu phảy động trên 1 giây.
- Host Chỉ CPU trong lập trình CUDA Device Chỉ GPU trong lập trình CUDA Register Thanh ghi GUI Graphic User Interface – Giao diện người dùng đồ họa API Application Programming Interface : Giao diện lập trình ứng dụng 12 CHƯƠNG1:TỔNGQUANVỀTÍNHTOÁNHIỆUNĂNGCAO1.1.Tổngquanvềtínhtoánhiệunăngcao1.1.1NhucầutínhtoánhiệunăngcaoSự đòi hỏi về sức mạnh tính toán của máy tính không ngừng tăng lên nhằm để giải quyết các bài toán trong lĩnh vực khoa học và công nghệ.
- Ngày nay, trong các lĩnh vực như hóa học, vật lý, vũ trụ học, sinh học, y học… các bài toán phức tạp đòi hỏi sức mạnh tính toán lớn luôn luôn được đặt ra.
- Tính toán hiệu năng cao (High Performance Computing) là phương pháp giải quyết các bài toán phức tạp dùng các máy tính hiệu năng cao.
- 1.1.2.GiảiphápNhằm đáp ứng yêu cầu tính toán lớn trong khoa học và công nghệ, ba giải pháp được đưa ra làị.
- (1) Tăng tốc độ tính toán của bộ xử lý - (2) Cải tiến giải thuật để giải quyết bài toán - (3) Sử dụng kỹ thuật tính toán song song.
- Để giải quyết các bài toán có khối lượng tính toán lớn đòi hỏi một giải pháp mới.
- Chính động lực này đã thúc đẩy việc ra đời các hệ thống máy tính có khả năng tính toán song song mạnh.
- Tuy nhiên, thời gian dài giải quyết trong thực tế sẽ lớn hơn thời gian tính toán trong lý thuyết do nhiều nguyên do.
- Trong phần tiếp theo chúng ta sẽ nghiên cứu những hệ thống tính toán song song phổ biến.
- Thuật ngữ Siêu Tính Toán được dùng lần đầu trong báo New York World vào năm 1920 để nói đến những bảng tính (tabulators) lớn của IBM làm cho trường Đại học Columbia.
- Ngoài ra, chi phí duy trì các siêu máy tính này cũng là một vấn đề không nhỏ bao gồm chi phí phần mềm, kỹ thuật, chi phí điện năng… 1.2.2Tínhtoánsongsongphâncụm(ClusterComputing)Hệ thống tính toán song song phân cụm (Cluster) là các hệ thống máy tính song song được xây dựng từ các nút tính toán và thiết bị mạng thông dụng, mỗi nút tính toán hay các nút đóng vai trò điều khiển vào/ra là một hệ thống hoàn chỉnh, có khả năng làm việc độc lập.
- 16 Hệ thống tính toán song song phân cụm là một máy tính song song, trong đó.
- Các tài nguyên tính toán là bộ vi xử lý và bộ nhớ trong tại mỗi máy tính.
- Các tài nguyên tính toán này có khả năng truyền thông và kết hợp với nhau thông qua cáp mạng.
- Thường thì quy mô của hệ thống chỉ giới hạn trong một mạng cục bộ (LAN), trong đó có một máy tính đóng vai trò máy chủ (server), các máy tính còn lại đóng vai trò nút tính toán (computing node) Hình 2: Mô hình một Cluster Việc thiết lập hệ thống tính toán song song phân cụm từ những máy tính có cấu trúc đơn giản, sử dụng các công nghệ mạng phổ biến đã được bắt đầu từ năm 1994 với mô hình Beowulf Cluster của Thomas Sterling cùng Donal Becker.
- Hình 3: Hệ thống tính toán song song phân cụm theo mô hình Beowulf Cluster Một hệ thống tính toán song song phân cụm rẻ hơn nhiều so với một siêu máy tính cùng sức mạnh, điều này làm cho các hệ thống tính toán song song phân cụm ngày càng phổ biến và đặc biệt phù hợp cho các nước đang phát triển cũng như các trường đại học.
- Tuy nhiên, các hệ thống tính toán song song phân cụm cũng có những hạn chế như: quá trình triển khai, cấu hình hệ thống tương đối phức tạp, hệ thống hoạt 18 động không ổn định bằng các siêu máy tính, và nhược điểm lớn nhất là vấn đề truyền thông giữa các nút tính toán.
- Các hệ thống tính toán song song hiện đại đều ứng các kiến trúc mạng tiên tiến như: Myrinet, Gigabit Ethernet, nhằm nâng cao tốc độ truyền thông giữa các nút tính toán.
- Trên thực tế, cơ sở hạ tầng phần cứng mới chỉ là một phần trong toàn thể mô hình chung của tính toán phân cụm.
- Đối với các hệ thống tính toán phân cụm, phần mềm càng có vai trò quan trọng hơn.
- Một hệ thống tính toán song song phân cụm (dựa trên mạng LAN) hoạt động như một hệ thống đơn dưới cái nhìn của nguời dùng và của ứng dụng.
- Hình 4: Kiến trúc tổng quan về phần cứng và phần mềm của một cluster 19 1.2.3Côngnghệtínhtoánlưới–GridComputingCũng như các công nghệ tính toán khác, tính toán lưới (grid computing) ra đời xuất phát từ nhu cầu tính toán của con người.
- Ngày càng có nhiều bài toán phức tạp hơn được đặt ra và do đó các tổ chức cũng cần phải có những năng lực tính toán mạnh mẽ hơn.
- Việc tận dụng hiệu quả các nguồn tài nguyên này có thể mang lại một sức mạnh tính toán khổng lồ.
- Cách giải quyết này chính là mục tiêu của tính toán lưới.
- Tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu).
- Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn dụ là làm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng.
- Ngày nay có rất nhiều định nghĩa về tính toán lưới.
- Hình 5: Mô hình tính toán lưới Các nghiên cứu về tính toán lưới đã và đang được tiến hành nhằm tạo ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới.
- Các thách thức mà công nghệ tính toán lưới đang phải giải quyết bao gồm.
- Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyên tính toán nhưng hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tài nguyên khác như đã kể trên.
- 1.2.5TínhtoánsongsongtrênhệthốngcardđồhọađadụngKỹ thuật tính toán song song dùng đơn vị xử lý đồ họa đa dụng - General-Purpose computing of Gaphics Processing Units (GPGPU, hay còn gọi tắt là GPGP hoặc GP²U) là kỹ thuật sử dụng đơn vị xử lý đồ họa GPU (vốn được thiết kế để tính toán đồ họa máy tính) để thực hiện những tác vụ trước đây được xử lý bởi CPU.
- Công nghệ tính toán hiệu năng cao sử dụng card đồ họa GPGPU sẽ được trình bày chi tiết ở các phần sau.
- Phần lớn các công việc tính toán này đòi hỏi các thao tác với ma trận và vector nên các kỹ sư và các nhà khoa học đã tiến hành những nghiên cứu để sử dụng GPU vào những công việc tính toán ngoài lĩnh vực đồ họa.
- 2.2BộvixửlýđồhọađadụngGPGPUKỹ thuật tính toán dùng đơn vị xử lý đồ họa đa dụng - General-Purpose computing of Gaphics Processing Units (GPGPU, hay còn gọi tắt là GPGP hoặc 25 GP²U) là kỹ thuật sử dụng đơn vị xử lý đồ họa GPU (vốn được thiết kế để tính toán đồ họa máy tính) để thực hiện những tác vụ trước đây được xử lý bởi CPU.
- Từ đòi hỏi của thị trường cho đồ họa 3D thời gian thực và đồ họa với độ phân giải cao, các GPU đã phát triển với kiến trúc song song hóa mức cao, xử lý đa luồng với kiến trúc manycore processor đã đem lại khả năng tính toán cùng với băng thông bộ nhớ rất cao, thậm chí còn vượt qua những CPU thông thường như được minh họa trong hình sau.
- Hình 7: So sánh hiệu năng tinh toán của CPU và GPU [2] 26 Hình 8: So sánh băng thông bộ nhớ giữa CPU và GPU [2] Lý do dẫn đến việc GPU có khả năng tính toán các phép tính dấu phẩy động cao hơn CPU là vì GPU được thiết kế cho các tác vụ đòi hỏi sự song song hóa ở mức cao, đó cũng chính là đòi hỏi của việc rendering đồ họa.
- Hình 9: So sánh kiến trúc CPU và GPU 27 Có thể nói một cách chính xác hơn, GPU được thiết kế để phù hợp giải quyết các vấn đề thông qua tính toán song song trên các dữ liệu - cùng một chương trình được thực hiện trên rất nhiều phần tử dữ liệu một cách song song.
- Trong các tác vụ này, tính toán số học được đòi hỏi cao hơn rất nhiều so với các thao tác truy cập bộ nhớ.
- Rất nhiều ứng dụng xử lý một khối lượng lớn dữ liệu có thể sử dụng mô hình lập trình song song mức dữ liệu để tăng tốc tính toán.
- Các giải thuật này có thể áp dụng cho các bài toán liên quan đến xử lý tín hiệu, mô phỏng vật lý, tính toán tài chính hoặc tính toán trong sinh học.Từ đó xuất hiện kỹ thuật dùng tính toán trên GPU làm những công việc trước kia là của CPU để tăng cường hiệu suất làm việc 2.3KiếntrúcTeslacủaNVIDIANVIDIA tung ra dòng sản phẩm có tên gọi Tesla (AMD/ATI cũng có dòng sản phẩm với khái niệm tương tự có tên gọi Stream), Tesla ban đầu dựa trên sức mạnh của GPU GeForce 8800 nhưng không tạo ra tín hiệu Video: chúng được dùng như là CPU để xử lí chương trình.
- Bất kì những chương trình nặng về tính toán mà thực hiện nhiều phép tính song song với nhau có thể được giúp ích từ việc sử dụng GPGPU, tất nhiên chúng phải được biên dịch để dùng với GPU.
- C870 có bộ nhớ 1.5GB và có sức mạnh tính toán 500 GigaFLOPS .
- Nó là một Case ngoài nhỏ gồm có hai Card C870 do đó sức mạnh tính toán theo lí thuyết đạt được 1 TFLOPS .
- 31 CHƯƠNG3:MÔITRƯỜNGLẬPTRÌNHSONGSONGCUDATRÊNHỆTHỐNGGPGPU3.1GiớithiệuchungvềCUDA3.1.1CUDA:KiếntrúctínhtoánsongsongđadụngVào tháng 11 năm 2006 NVIDIA giới thiệu CUDA – Kiến trúc tính toán song song đa dụng – với một mô hình lập trình song song mới cho phép tận dụng khả năng tính toán song song trên các GPU của NVIDIA để giải quyết các vấn đề tính toán phức tạp một cách hiệu quả hơn trên CPU.
- Điều này cung cấp sự thuận tiện cho việc tính toán trên các dữ liệu dạng vector hay ma trận.
- Tất cả các device trước đó có khả năng tính toán Compute capability là 1.x.
- Các GPU NVIDIA GeForce® seri và 500  Các hệ thống tính toán NVIDIA Tesla.
- Linear memory tồn tại trên device trong không gian địa chỉ 32-bit đối với devices có khả năng tính toán (compute capability) 1.x, và trong không gian địa chỉ 40-bit đối với devices có compute capability 2.x.
- 55 Bài toán ‘N-body simulation’ cũng xuất hiện trong nhiều vấn đề tính toán khoa học khác.
- Ví dụ trong sinh học, ‘N-body simulation’được sử dụng để tính toán lực tĩnh điện và lực van der Waals trong nghiên cứu protein.
- Mô phỏng dòng chảy hỗn loạn và tính toán sự chiếu sáng trong đồ họa máy tính cũng là những ví dụ về các vấn đề sử dụng ‘N-body simulation’.
- Tiếp cận all-pairs (tất cả cặp đôi) cho vấn đề ‘N-body simulation’ là kỹ thuật tính toán tất các các tương tác giữa N thực thể.
- Cách tiếp cận này đơn giản nhưng thường không được sử dụng trong mô phỏng các hệ thống có số lượng thực thể lớn do nó có độ phức tạp tính toán O(N 2).
- Trong các thuật toán trên, bộ phận tính toán all-pairs chiếm tỷ trọng thời gian lớn trong thực thi và đây là bộ phận cần tăng tốc.
- Cải thiện hiệu năng tính toán của bộ phận all-pairs sẽ là nhân tố chính để cải thiện tốc độ tính toán của bài toán mô phỏng này.
- Trong chương này chúng ta sẽ tập trung vào kernel tính toán all-pairs và cách thức cài đặt nó sự dụng mô hình lập trình NVIDIA CUDA.
- 4.2Cơsởtínhtoánlýthuyết Trong những tính toán sau, chúng ta quy ước sử dụng font chữ đậm để chỉ các vector (thường là 3 chiều).
- Tiếp theo chúng ta cần tính toán gia tốc a i = F i /mi để cập nhật vị trí và vận tốc của thực thể i theo thời gian, ta có công thức : 4.3CàiđặtbàitoánN‐BodysimulationsửdụngCUDAThuật toán all-pairs tính toán mỗi lực f ij trong một NxN grid (lưới) của tất cả các lực giữa 2 cặp thực thể trong hệ thống.
- Mỗi mục trong NxN grid có thể được tính toán hoàn toàn độc lập nên có thể triển khai O(N 2) phép tính song song.
- Thay vào đó chúng ta sẽ tuần tự hóa một số phép tính toán để có thể tận dụng dữ liệu và giảm băng thông bộ nhớ cần thiết.
- Chỉ phần dữ liệu mô tả 2p thực thể này cần để tính toán tất cả p 2 tương tác trong tile.
- Để tối ưu hóa việc tận dụng lại dữ liệu, chúng ta sẽ sắp đặt việc tính toán của một tile để cho các tương tác trong mỗi hàng được tính tuần tự, sau đó cập nhật vector gia tốc, trong khi các hàng khác nhau sẽ được tính toán song song với nhau.
- Trong hình sau, hình phía trái mô tả chiến lược tính toán song song và tuần tự, hình bên phải mô tả input và output trong tính toán của một tile.
- 58 Hình 19: Bài toán N-Body : Cơ chế tính toán trong một Tile 4.3.1TínhtoánlựctươngtácgiữamộtcặpthựcthểBody‐BodySự tương tác giữa một cặp thực thể bất kỳ trong hệ thống được cài đặt hoàn toàn tuần tự.
- 4.3.2TínhtoántrongmộtTileMỗi tile được tính toán bởi p thread thực hiện cùng một thao tác trên các dữ liệu khác nhau.
- Mỗi thread trong 1 block tính toán tuần tự p tương tác.
- Kết quả của việc tính toán trên 1 tile là p gia tốc được cập nhật.
- Mã nguồn cho việc tính toán trên 1 tile được thể hiện ở phần sau.
- Tính toán các tương tác trong một Tile 1

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