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

Nghiên cứu kiến trúc hệ thống tính toán hiệu năng cao đa dụng dựa trên card đồ họa.


Tóm tắt Xem thử

- 9 Chương 1 - GIỚI THIỆU TỔNG QUAN VỀ TÍNH TOÁN HIỆU NĂNG CAO.
- Tính toán hiệu năng cao và vai trò ứng dụng trong thực tiễn.
- Một số tiếp cận trong tính toán hiệu năng cao.
- 14 Chương 2 - GPU VÀ CÔNG NGHỆ TÍNH TOÁN ĐA DỤNG GPGPU.
- Thầy đã đưa ra ý tưởng và hỗ trợ tôi rất nhiều trong việc định hướng tìm hiểu, so sánh, triển khai thực nghiệm các giải thuật của bài toán N-Body trên CPU và GPU cũng như công nghệ tính toán hiệu năng cao trên GPU.
- Tôi xin gửi lời cảm ơn đến Trung tâm Tính toán Hiệu năng cao Trường Đại học Bách Khoa Hà Nội, các anh Lê Đức Tùng, Dương Nhật Tân và Lê Đức Hùng đã hỗ trợ tôi rất nhiều về mặt chuyên môn cũng như cơ sở vật chất để thực hiện luận văn này.
- 73 9 MỞ ĐẦU Lý do chọn đề tài Tính toán hiệu năng cao ngày càng được quan tâm và ứng dụng nhiều trong thực tế như trong khoa học đời sống, trong xử lý ảnh y tế, trong mô hình hóa thời tiết, khí hậu, biển, không khí.
- Từ những thông tin này, tôi đã mạnh dạn đi tìm hiểu công nghệ tính toán hiệu năng cao của NVIDIA và thử nghiệm bài toán n-body để so sánh năng lực tính toán giữa hệ thống sử dụng CPU và hệ thống sử dụng GPU thông qua đề tài "Nghiên cứu kiến trúc hệ thống tính toán hiệu năng cao đa dụng dựa trên card đồ họa".
- 10 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu - Tìm hiểu về công nghệ tính toán hiệu năng cao dựa trên card đồ họa của NVIDIA.
- Tóm tắt Luận văn được chia ra làm 4 chương Chương 1: Giới thiệu chung về tính toán hiệu năng cao và các vấn đề liên quan đến luận văn.
- Chương 2: GPU và công nghệ tính toán đa dụng GPGPU.
- Trong chương này sẽ đi thử nghiệm và đánh giá kết quả, thời gian tính toán của bài toán n-Body trên CPU, trên GPU đơn và trên nhiều GPU (4 GPU).
- Chương 4: Kết luận và hướng phát triển của luận văn 11 Chương 1 - GIỚI THIỆU TỔNG QUAN VỀ TÍNH TOÁN HIỆU NĂNG CAO 1.1.
- Tính toán hiệu năng cao và vai trò ứng dụng trong thực tiễn Nhu cầu tính toán trong lĩnh vực khoa học công nghệ ngày càng cao và đang dần trở thành một thách thức lớn vì phương pháp xử lý tuần tự với một bộ xử lý không thể đáp ứng được.
- Vì vậy, những nghiên cứu trong lĩnh vực tính toán hiệu năng cao (High Performance Computing) hình thành trở nên rất cần thiết.
- Hiện nay, công nghệ tính toán lưới cho phép tận dụng các tài nguyên sẵn có để xây dựng một mạng lưới tính toán rất mạnh.
- Trong các ngành khoa học như hóa học, vật lý hạt nhân, vũ trụ học, cơ lưu chất, sinh học, y học… các bài toán phức tạp đòi hỏi sự tính toán lớn luôn luôn được đặt ra.
- Chính yêu cầu về tính toán phức tạp này đã thúc đẩy các máy tính song song có khả năng tính toán mạnh ra đời.
- Tính toán hiệu năng cao (High Performance Computing) là phương cách giải quyết các bài toán lớn dùng các máy tính hiệu năng cao.
- Thách thức tính toán hiệu năng cao trong khoa học và công nghệ 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ệ.
- Tùy theo độ lớn của bài toán cần giải quyết hay độ chính xác của kết quả bài toán mà khối lượng tính toán sẽ lớn đến mức nào.
- Yêu cầu về thời gian tính toán cũng là một yếu tố cần đến sức mạnh tính toán của máy tính.
- Vì vậy, việc tính toán chậm lại tại một bộ phận sẽ làm ảnh hưởng tới các bộ phận khác.
- Bài toán dự báo thời tiết trong khoa học cũng đòi hỏi về thời gian tính toán.
- Nhiều bài toán cần giải quyết bằng môi trường tính toán lưới càng cho thấy sự cần thiết của sức mạnh tính toán trong các lĩnh vực khoa học và công nghệ.
- Giải pháp Nhằm đáp ứng yêu cầu tính toán trong khoa học và công nghệ, ba giải pháp đã được đề nghị.
- Tăng tốc độ tính toán của bộ xử lý - Tìm một giải thuật tốt hơn để giải quyết - Sử dụng kỹ thuật xử lý 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.
- Một số tiếp cận trong tính toán hiệu năng cao 1.2.1.
- Siêu máy tính (SuperComputer) Một siêu máy tính là một máy tính vượt trội trong khả năng tính toán và tốc độ xử lý.
- IBM trong năm 2012 đã xây dựng thành công cỗ máy Sequoia, là một tập hợp của rất nhiều hệ thống BlueGene/Q cho tổng số nhân xử lý là đạt năng lực tính toán tới 16,32 Pflops.
- Hiện Sequoia (SC) đang đứng vị trí thứ nhất trong bảng xếp 18 hạng Top500 (công bố tháng 6/2012), SC được sử dụng để ứng dụng các mô phỏng trong khoa học và các tính toán hạt nhân.
- Các hệ thống phân cụm song song (Cluster) 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.
- 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.
- 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.
- Cùng với sự phát triển nhanh chóng của máy tính cá nhân (PC), hiện nay một hệ thống dựa trên công nghệ mạng LAN và PC có thể cho hiệu năng tính toán cao trong khi giá thành lại rẻ hơn rất nhiều so với các siêu máy tính.
- 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 độ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 dù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à ứng dụng.
- Các phân tích thống kê này đòi hỏi phải kiểm tra trên một quy mô lớn, cần tính toán chuyên sâu để rút ngắn thời gian và Tính toán hiệu năng cao (HPC) hiện đóng vai trò then chốt trong việc tìm ra một loại vắc xin phòng chống căn bệnh thế kỷ này.
- Biểu đồ số phép tính dâu chấm động trên giây và băng thông bộ nhớ giữa CPU và GPU GPGPU (General-Purpose computation on GPUs) Một câu hỏi được đặt ra, vậy tại sao không thiết kế CPU giống như GPU để đạt được cải thiện hiệu năng cao như vậy? Câu trả lời là CPU được thiết kế để đạt được hiệu năng tối đa từ việc xử lý một dòng nhiều lệnh mà những lệnh đó vận hành trên những lọai dữ liệu khác nhau (chẳng hạn như những phép tính số nguyên và phép tính 29 dấu chấm động) và thực hiện truy cập bộ nhớ, tính toán rẻ nhánh… Để thực hiện tất cả công việc đó, CPU phải làm việc bằng cách trích xuất ra nhiều lệnh song song.
- Hỗ trợ tính toán dấu chấm động đơn.
- Hỗ trợ tính toán lên đến cả ngàn lệnh.
- Mô hình lập trình song song CUDA - Kiến trúc phần cứng Tesla 32 Chương 2 - GPU VÀ CÔNG NGHỆ TÍNH TOÁN ĐA DỤNG GPGPU Công nghệ GPU là một hướng tiếp cận mới đối với các bài toán cần khối lượng tính toán lớn.
- Chương này sẽ trình bày về công nghệ tính toán dựa trên các bộ xử lý đồ họa, cụ thể là các bộ xử lý đồ họa của NVIDIA đồng thời trình bày về môi trường phát triển ứng dụng của Nvidia là CUDA.
- Kiến trúc các bộ xử lý đồ họa đa lõi của Nvidia Trong vài năm gần đây, năng lực tính toán của các bộ xử lý đồ hoạ (GPU) đã tăng lên với tốc độ đáng kể so với CPU.
- Hình 2.1 thể hiện sự tăng tốc về năng lực tính toán của các bộ xử lý đồ hoạ NVIDIA so với bộ xử lý Intel.
- Chính vì vậy, trong khi số lượng lõi tính toán trong CPU chưa đạt đến con số 8 lõi thì số lượng lõi xử lý GPU đã đạt đến 240 và còn tiếp tục tăng tới trên 500 lõi.
- Lý do phía sau sự khác biệt về khả năng tính toán dấu phẩy động giữa CPU và GPU chính là GPU được thiết kế cho mục đích tính toán mạnh, khả năng tính toán song song cao - và do đó được thiết kế sao cho có nhiều transistor được dùng để xử lý dữ liệu hơn là dùng cho đệm dữ liệu và điều khiển luồng, như hình minh họa trong hình 2.1.
- Số phép tính dấu phẩy động trên giây và băng thông bộ nhớ của CPU và GPU Cụ thể hơn, GPU đặc biệt phù hợp để giải quyết các bài toán có thể tính toán song song về dữ liệu - tức là cùng chương trình được đem chạy trên nhiều bộ dữ liệu một cách song song - với cường độ số học cao - tỷ lệ số thao tác số học trên số thao tác với bộ nhớ.
- Tuy nhiên, hầu hết các bài toán yêu cầu năng lực tính toán lớn đều có thể quy về dạng song song.
- Nhiều ứng dụng xử lý các tập dữ liệu lớn có thể dùng một mô hình lập trình song song cho việc tăng tốc tính toán.
- Thực tế, nhiều giải thuật nằm ngoài lĩnh vực kết xuất và xử lý ảnh cũng được tăng tốc với xử lý dữ liệu song song, từ xử lý tín hiệu nói chung hoặc mô phỏng vật lý tới tính toán kinh tế hoặc tính toán về sinh học.
- Bên cạnh việc phát triển các bộ xử lý đồ hoạ có năng lực tính toán lớn, các hãng sản xuất cũng quan tâm tới môi trường phát triển ứng dụng cho các bộ xử lý đồ hoạ này.
- Môi trường phát triển ứng dụng GPU – CUDA Vào tháng 11/2006, hãng NVIDIA phát hành CUDATM, một 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 và kiến trúc tập lệnh mới - có thể thúc đẩy tính toán song song trong các GPU của NVIDIA để giải quyết nhiều bài toán tính toán phức tạp theo một hướng hiệu năng hơn nhiều so với CPU.
- Mô hình lập trình có thể mở rộng này cho phép kiến trúc CUDA mở rộng một phạm vi thương mại rộng lớn bằng cách là đơn giản mở rộng số lượng lõi xử lý và các phân vùng bộ nhớ: từ các GPU dành cho tính toán hiệu năng cao GeForce và các sản phẩm cao cấp Quadro và tính toán Tesla tới một số đa dạng các loại rẻ hơn, dòng chính là các GPU GeForce.
- Cơ chế này cung cấp một cách tự nhiên để thực hiện tính toán trên các phần tử trong một trường như một vector, ma trận, hoặc khối.
- Khả năng tính toán Khả năng tính toán của một thiết bị được xác định bằng một số revision chính và một số revision phụ.
- Các thiết bị đầu tiên đều có khả năng tính toán 1.x.
- Hệ thống GPU-Cluster GPU đã nhanh chóng phát triển nâng cao hiệu suất cho việc tính toán dữ liệu song song.
- GPU hiện đại chứa hàng trăm đơn vị xử lí, có khả năng đạt được lên tới 1 TFLOPS cho tính toán số học đơn (SP) và hơn 80 GFLOPS cho những tính toán chính xác kép (DP).
- Gần đây những GPU sử dụng tối ưu tính toán hiệu năng cao có thể chứa 4GB trong bộ nhớ, và có khả năng duy trì bộ nhớ vượt quá 100GB/sec.
- Cấu trúc ổ cứng song song lớn và hiệu suất cao của xử lý dấu chấm động số học và hoạt động của bộ nhớ trên GPU làm cho những cụm này đặc biệt phù hợp với nhiều khối lượng công việc khoa học và kỹ thuật sử dụng cụm tính toán hiệu năng cao.
- Ngoài sức mạnh là chi phí hiệu quả của tính toán hiệu năng cao, GPU cũng có tiềm năng là làm giảm đáng kể không gian, điện năng tiêu thụ, hệ thống làm mát,… so với những hệ thống chỉ sử dụng CPU truyền thống với những khả năng tính toán và tổng hợp tương tự.
- Trong hỗ trợ của xu hướng này, NVIDIA đã bắt đầu sản xuất đại trà với loại card mang tên Tesla phù hợp cho sử dụng trong các cụm tính toán hiệu năng cao.
- Mặc dù việc sử dụng thành công GPU để tăng tốc tính toán trong cụm tính toán hiệu năng cao có thể tạo những lợi thế nêu trên, chúng vẫn thể hiện một số thách thức mới trong quá trình phát triển, việc quản lí công việc và quản lý tài nguyên, và vấn đề bảo mật.
- Chỉ mới gần đây mới được thực hiện để triển khai các cụm tính toán GPU.
- Phần lớn những cài đặt này mang tính thử nghiệm chứ chưa được triển khai nhiều cho việc sản xuất trong môi trường tính toán hiệu năng cao.
- Máy chủ có 2 khe cắm PCIe Gen 2 8x: một khe cắm được sử dụng để kết nối 2 GPU với hệ thống tính toán Tesla S1070, khe cắm khác được sử dụng cho một thiết bị InfiniBand SDR.
- Phần cứng Công nghệ CUDA cho phép giảm tải CPU và gửi các tính toán cho GPU bằng cách xây dựng kiến trúc song song, việc xử lý lượng lớn dữ liệu mảng bằng cách sử dụng một tập dòng lệnh giống hệt nhau (được gọi là nhân) cho từng phần tử trong mảng dữ liệu.
- Mong muốn có sức mạnh tính toán nhiều hơn dẫn đến ý tưởng đưa công nghệ CUDA vào môi trường giao diện truyền thông điệp (MPI), do đó phát sinh khái niệm về cluser của GPU.
- Phần mềm Giao diện truyền thông điệp được sử dụng để chuyển dữ liệu và thông tin giữa các nút và tại mỗi nút được sử dụng để giao tiếp giữa CPU và GPU và để ra lệnh bộ xử lý đồ họa thực hiện tính toán.
- Giới thiệu bài toán n-body N-body là bài toán tiêu biểu cho tính toán hiệu năng cao, được ứng dụng rộng rãi trong các mô phỏng vật lý, hóa học, thiên văn học với khối lượng tính toán rất lớn.
- Trong nhiều trường hợp, kích thước của phô phỏng thiên văn học N-body bị giới hạn bởi các tài nguyên tính toán hiện có.
- Vì lực hấp dẫn là sự tương tác ở khoảng cách dài, độ phức tạp tính toán cho sự tương tác giữa tất cả các phần tử là O(N2) cho từng bước tính toán của mô hình đơn giản nhất, với N là số lượng phần tử trong hệ thống.
- Chúng ta có thể giảm độ phức tạp tính toán từ O(N2) còn O(NlogN) bằng cách sử dụng một vài thuật toán xấp xỉ, như thuật toán cây Barnes-Hut [11], nhưng hệ số tỉ lệ (scaling coefficient) thực sự lớn.
- Do vậy, tính toán sự tương tác giữa các phần tử thường là phần phức tạp nhất trong toàn bộ việc tính toán và do đó giới hạn số lượng các phần tử chúng ta có thể xử lý.
- Trong các tính toán SPH, phương trình tính toán thủy động học được biểu diễn bởi sự tương tác giữa các phần tử ở khoảng cách ngắn.
- Một cách tiếp cận tiêu biểu làm tăng tốc mô phỏng N-body là xây dựng 1 máy tính chuyên biệt (special-purpose) cho việc tính toán tương tác.
- Hai đặc trưng của tính toán tương tác làm chúng rất phù hợp với cách tiếp cận này.
- Đó là: Thứ nhất, tính toán tương tác trên từng cặp đôi là tương đối đơn giản.
- Do vậy không khó hiểu khi thiết kế 1 bộ xử lý có đường ống dẫn đầy đủ, gắn cứng và được kiểm soát bằng vi mạch điện tử phục vụ việc tính toán tương tác hấp dẫn.
- Với những ứng dụng khác như SPH, hay chuyển động phân tử học thì tính toán tương tác phức tạp hơn, tuy nhiên cách tiếp cận về phần cứng vẫn khả thi.
- Nói cụ thể, có thể thiết kế một phần cứng để tính toán lực tác động tự 1 phần tử lên nhiều phần tử một cách song song.
- Giải thuật tương tác hạt -hạt Trong giải thuật này sẽ tính toán các lực tương tác trên tất cả các cặp body-body từ hệ thống N-body.
- Sự tương tác giữa tất cả các cặp được tính toán tuần tự, sẽ cần một khối lượng tính toán lớn nếu số lượng các body tăng.
- Giải thuật này có hiệu năng tính toán không hiệu quả O(N2) với N là số lượng các body mô phỏng trong bài toán.
- Phần thứ hai, cây được duyệt qua một lần mỗi hạt để tính toán lực tổng hợp hoạt động trên nó.
- Quá trình duyệt cây bắt đầu từ gốc, tại mỗi bước, nếu cell được phân tách tốt các hạt, sẽ sử dụng sự xấp xỉ khối tâm để tính toán lực trên hạt thay vì toàn bộ cây con ở dưới cell đó (nghĩa là mỗi cell con của nó đã được thăm).
- Giải thuật này có độ phức tạp tính toán là O(nlogn), nó dựa trên sự biểu diễn cây phân cấp trong không gian ba chiều, tính toán sự tương tác giữa các hạt xa bằng phương pháp xấp xỉ theo thứ tự trước.
- Nó phân tách các hạt vào trong các lá cell và tính toán sự mở rộng đa cực của chúng theo hướng từ dưới lên trong đó kiến trúc mở rộng đa cực của các cell cha bằng cách dịch chuyển và thêm vào các mở rộng của các con của chúng.
- Sự khác nhau giữa giải thuật FMM và Barnes-Hut dựa vào thực tế giải thuật Barnes-Hut tính toán các sự tương tác hạt-cell, trong khí FMM tính toán các sự tương tác cell-cell.
- 63 Độ phức tạp tính toán của giải thuật này là O(n), tuy nhiên, nó sử dụng nhiều phép tính toán học phức tạp hơn và lập trình khó khăn hơn trong không gian ba chiều.
- Đây cũng là một giải thuật rất phức tạp vì sử dụng nhiều phép tính toán phức tạp, khó lập trình trong không gian ba chiều

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