Dé tai nay nhém tìm hiểu mồi trường tính toán hiệu năng cao trên bộ xử lý đồ họa sử dụng công nghệ CUDA của hãng nVidia, và bước đầu thử nghiệm thanh công bải toán mô phỏng N-Body trên d
Trang 1
lì
Zz
8 NGÀNH : CONG NGHE THONG TIN
ấ
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO
'TRỜNG ĐẠI HỌC BÁCH KHOA HÃ NỘI
LUẬN VĂN THẠC SĨ KHOA HỌC
NGHIÊN CỨU CÔNG NGHỆ TÍNH TOÁN TỔNG QUÁT
TREN CAC BO XULY BO HOA VA UNG DUNG
TRONG BAI TOAN MO PHONG N-BODY
NGÀNH : CÔNG NGHỆ ‘THONG ‘IN
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan rằng đồ án tốt nghiệp này không copy, sao chép, chỉnh
sửa đưới mọi hình thức ur bat ky các dé an nao đã có trước đó Các tài liệu tham
khảo, thông tin tham khảo được lẫy, trích dẫn từ các nguồn có thật, chính xác,
không bịa đặt
Trang 4kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 5Tóm tắt
Tải toán N-Rody là một bài toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật ly, y sinh, thiên văn học, Trong bài toán mô phỏng này, khi số lượng Body mô phỏng trong bài toán là một số rất lớn, việc tính toán
tương tác trên tắt că các cặp N-Body mất rất nhiều thời gian (đồ phức tạp trong
trường hợp tôi nhất O(N?)) Vì vậy chúng ta cần nghiên cửu một phương pháp
mới nhằm tăng tốc độ tính Loán cia bai toán mô phỏng N-Body, đó là lận dụng
sức mạnh tính toán của các bộ xử lý đỗ họa
Dé tai nay nhém tìm hiểu mồi trường tính toán hiệu năng cao trên bộ xử lý
đồ họa sử dụng công nghệ CUDA của hãng nVidia, và bước đầu thử nghiệm thanh công bải toán mô phỏng N-Body trên dơn GPU, cũng như dưa ra một số
để xuất giải thuật trén GPU cluster
Trang 6kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 73.3.2 Giải thuật Barnes-ITut (The Barnes-Iut Algorithm) —
3.3.3 Phuong phap da cye nhanh (The Fast Multipole Method “FMM
3.3.4 Giải thuật cây đa cực song song enilel Mullipole Tree Algorithm —
PMTA)
3.4 Tổng kết các giải thuật
CHƯƠNG IV MÔ PHONG N-BODY Vì vớt DON GPU
4.1 Mục dích mô phỏng N-Body trên GPU
4.2 Tỉnh toán lực tương táo các oặp N-Body
4.3 Sự thực thi CUDA của giải thuật tất câ các cặp N-Body
4.3.1 Tỉnh toán lực body - body
4.3.2 Tính toán tile
433 Xếp nhóm các tilc vào trong các Thrcad Bloek
4.3.4 Định nghĩa một Grid của các Thread Dloek
4.4 Môi trường thứ nghiêm bãi toán
4.5 Cách thử nghiệm bài toán N-Dody trên hệ thống
4.6 Các kết quả thực hiện
4L7 Sự tốt ưu hóa
4.7.1 Gia tăng hiệu năng với lặp không cuộn (loop waroling)
4.7.2 Hiệu năng từng khi kích thước Block thay đối
4.73 Cải thiện hiệu năng khi N nhỏ :
CHƯƠNG V XÂY DỰNG GIẢI THUẬT MÔ PHÔNG N-BODY
VỚI ĐA GPU
5.1 Tỉnh chất cúa các hệ thống tính toán da GPU
5.2 Kiến trúc hệ thống GPU cluster
Trang 85.3 Thiết kê giải thuật mô phỏng N-! Body trén hé thing da GPU
5.3.1 Su thue thi song song dau tiên
5.3.3 Tối ưu hóa giải thuật song song
Trang 93.3.2 Giải thuật Barnes-ITut (The Barnes-Iut Algorithm) —
3.3.3 Phuong phap da cye nhanh (The Fast Multipole Method “FMM
3.3.4 Giải thuật cây đa cực song song enilel Mullipole Tree Algorithm —
PMTA)
3.4 Tổng kết các giải thuật
CHƯƠNG IV MÔ PHONG N-BODY Vì vớt DON GPU
4.1 Mục dích mô phỏng N-Body trên GPU
4.2 Tỉnh toán lực tương táo các oặp N-Body
4.3 Sự thực thi CUDA của giải thuật tất câ các cặp N-Body
4.3.1 Tỉnh toán lực body - body
4.3.2 Tính toán tile
433 Xếp nhóm các tilc vào trong các Thrcad Bloek
4.3.4 Định nghĩa một Grid của các Thread Dloek
4.4 Môi trường thứ nghiêm bãi toán
4.5 Cách thử nghiệm bài toán N-Dody trên hệ thống
4.6 Các kết quả thực hiện
4L7 Sự tốt ưu hóa
4.7.1 Gia tăng hiệu năng với lặp không cuộn (loop waroling)
4.7.2 Hiệu năng từng khi kích thước Block thay đối
4.73 Cải thiện hiệu năng khi N nhỏ :
CHƯƠNG V XÂY DỰNG GIẢI THUẬT MÔ PHÔNG N-BODY
VỚI ĐA GPU
5.1 Tỉnh chất cúa các hệ thống tính toán da GPU
5.2 Kiến trúc hệ thống GPU cluster
Trang 10Tóm tắt
Tải toán N-Rody là một bài toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật ly, y sinh, thiên văn học, Trong bài toán mô phỏng này, khi số lượng Body mô phỏng trong bài toán là một số rất lớn, việc tính toán
tương tác trên tắt că các cặp N-Body mất rất nhiều thời gian (đồ phức tạp trong
trường hợp tôi nhất O(N?)) Vì vậy chúng ta cần nghiên cửu một phương pháp
mới nhằm tăng tốc độ tính Loán cia bai toán mô phỏng N-Body, đó là lận dụng
sức mạnh tính toán của các bộ xử lý đỗ họa
Dé tai nay nhém tìm hiểu mồi trường tính toán hiệu năng cao trên bộ xử lý
đồ họa sử dụng công nghệ CUDA của hãng nVidia, và bước đầu thử nghiệm thanh công bải toán mô phỏng N-Body trên dơn GPU, cũng như dưa ra một số
để xuất giải thuật trén GPU cluster
Trang 113.3.2 Giải thuật Barnes-ITut (The Barnes-Iut Algorithm) —
3.3.3 Phuong phap da cye nhanh (The Fast Multipole Method “FMM
3.3.4 Giải thuật cây đa cực song song enilel Mullipole Tree Algorithm —
PMTA)
3.4 Tổng kết các giải thuật
CHƯƠNG IV MÔ PHONG N-BODY Vì vớt DON GPU
4.1 Mục dích mô phỏng N-Body trên GPU
4.2 Tỉnh toán lực tương táo các oặp N-Body
4.3 Sự thực thi CUDA của giải thuật tất câ các cặp N-Body
4.3.1 Tỉnh toán lực body - body
4.3.2 Tính toán tile
433 Xếp nhóm các tilc vào trong các Thrcad Bloek
4.3.4 Định nghĩa một Grid của các Thread Dloek
4.4 Môi trường thứ nghiêm bãi toán
4.5 Cách thử nghiệm bài toán N-Dody trên hệ thống
4.6 Các kết quả thực hiện
4L7 Sự tốt ưu hóa
4.7.1 Gia tăng hiệu năng với lặp không cuộn (loop waroling)
4.7.2 Hiệu năng từng khi kích thước Block thay đối
4.73 Cải thiện hiệu năng khi N nhỏ :
CHƯƠNG V XÂY DỰNG GIẢI THUẬT MÔ PHÔNG N-BODY
VỚI ĐA GPU
5.1 Tỉnh chất cúa các hệ thống tính toán da GPU
5.2 Kiến trúc hệ thống GPU cluster
Trang 12kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 13CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 14Tóm tắt
Tải toán N-Rody là một bài toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật ly, y sinh, thiên văn học, Trong bài toán mô phỏng này, khi số lượng Body mô phỏng trong bài toán là một số rất lớn, việc tính toán
tương tác trên tắt că các cặp N-Body mất rất nhiều thời gian (đồ phức tạp trong
trường hợp tôi nhất O(N?)) Vì vậy chúng ta cần nghiên cửu một phương pháp
mới nhằm tăng tốc độ tính Loán cia bai toán mô phỏng N-Body, đó là lận dụng
sức mạnh tính toán của các bộ xử lý đỗ họa
Dé tai nay nhém tìm hiểu mồi trường tính toán hiệu năng cao trên bộ xử lý
đồ họa sử dụng công nghệ CUDA của hãng nVidia, và bước đầu thử nghiệm thanh công bải toán mô phỏng N-Body trên dơn GPU, cũng như dưa ra một số
để xuất giải thuật trén GPU cluster
Trang 15Bo” để làm đồ án tốt nghiệp cao học của mình Bài toán N-Body là một bài
toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật lý, y sinh,
thiên văn học, Trong bải toán mô phỏng này, khi số lượng Body mô phỏng
trong bài toán là một số rất lớn, việc tính toán tương tác trên tất cả các cặn N-
Body mất rất nhiều thời gian (O(N?) Vi vây chúng ta cần nghiên củu một
phương nháp mới nhằm tăng tốc độ tính Loán oủa bài toán mô phỏng N-Body, đó
là tân đụng sức mạnh tỉnh toán của các bộ xử lý đỗ họa
Qua đề tài này, tôi đã tìm hiểu được môi trường tính toán hiệu năng cao trên
bộ xử lý đồ họa sử dụng công nghệ CUDA của hing nVidia, và bước đầu thử
nghiệm thánh công bài loán mỗ phỏng N-Đody
Nội dung luận văn bau gầm cú 6 chương chính:
Chương 1: Tính toán hiệu năng cao với các bộ xử lý dỗ họa
Chương 2: Kiến trúc Tesla va Méi traéng lap trinh song song CUDA
Chương 3: Bải toán mô phống N-Body
Chương 4: Mô phống N-Body với đơn GPU
Chương 5: Xây dựng giải thuật mô phỏng N-Pody với da GPU
Chương 6: Kết luận và hướng phát triển
Để hoàn thành đổ án tốt nghiệp “Vghiên cứu công nghệ Tính toán thông dụng trên các bộ xử lý đề họa và ứng dụng trong bài toứn mô phông N-Body",
tôi xin chân thành cảm ơn tới Tiến sỹ Nguyễn Hữu Đức — Thầy đã là người trực
tiếp hướng dẫn và giúp đỡ tôi Tôi cũng xin gửi lời cảm ơn tới các thầy cô, các
anh chị quản lý tại Trung tâm Tính toán hiệu năng cao, trưởng Đại học Bách
Trang 163.3.2 Giải thuật Barnes-ITut (The Barnes-Iut Algorithm) —
3.3.3 Phuong phap da cye nhanh (The Fast Multipole Method “FMM
3.3.4 Giải thuật cây đa cực song song enilel Mullipole Tree Algorithm —
PMTA)
3.4 Tổng kết các giải thuật
CHƯƠNG IV MÔ PHONG N-BODY Vì vớt DON GPU
4.1 Mục dích mô phỏng N-Body trên GPU
4.2 Tỉnh toán lực tương táo các oặp N-Body
4.3 Sự thực thi CUDA của giải thuật tất câ các cặp N-Body
4.3.1 Tỉnh toán lực body - body
4.3.2 Tính toán tile
433 Xếp nhóm các tilc vào trong các Thrcad Bloek
4.3.4 Định nghĩa một Grid của các Thread Dloek
4.4 Môi trường thứ nghiêm bãi toán
4.5 Cách thử nghiệm bài toán N-Dody trên hệ thống
4.6 Các kết quả thực hiện
4L7 Sự tốt ưu hóa
4.7.1 Gia tăng hiệu năng với lặp không cuộn (loop waroling)
4.7.2 Hiệu năng từng khi kích thước Block thay đối
4.73 Cải thiện hiệu năng khi N nhỏ :
CHƯƠNG V XÂY DỰNG GIẢI THUẬT MÔ PHÔNG N-BODY
VỚI ĐA GPU
5.1 Tỉnh chất cúa các hệ thống tính toán da GPU
5.2 Kiến trúc hệ thống GPU cluster
Trang 17Bo” để làm đồ án tốt nghiệp cao học của mình Bài toán N-Body là một bài
toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật lý, y sinh,
thiên văn học, Trong bải toán mô phỏng này, khi số lượng Body mô phỏng
trong bài toán là một số rất lớn, việc tính toán tương tác trên tất cả các cặn N-
Body mất rất nhiều thời gian (O(N?) Vi vây chúng ta cần nghiên củu một
phương nháp mới nhằm tăng tốc độ tính Loán oủa bài toán mô phỏng N-Body, đó
là tân đụng sức mạnh tỉnh toán của các bộ xử lý đỗ họa
Qua đề tài này, tôi đã tìm hiểu được môi trường tính toán hiệu năng cao trên
bộ xử lý đồ họa sử dụng công nghệ CUDA của hing nVidia, và bước đầu thử
nghiệm thánh công bài loán mỗ phỏng N-Đody
Nội dung luận văn bau gầm cú 6 chương chính:
Chương 1: Tính toán hiệu năng cao với các bộ xử lý dỗ họa
Chương 2: Kiến trúc Tesla va Méi traéng lap trinh song song CUDA
Chương 3: Bải toán mô phống N-Body
Chương 4: Mô phống N-Body với đơn GPU
Chương 5: Xây dựng giải thuật mô phỏng N-Pody với da GPU
Chương 6: Kết luận và hướng phát triển
Để hoàn thành đổ án tốt nghiệp “Vghiên cứu công nghệ Tính toán thông dụng trên các bộ xử lý đề họa và ứng dụng trong bài toứn mô phông N-Body",
tôi xin chân thành cảm ơn tới Tiến sỹ Nguyễn Hữu Đức — Thầy đã là người trực
tiếp hướng dẫn và giúp đỡ tôi Tôi cũng xin gửi lời cảm ơn tới các thầy cô, các
anh chị quản lý tại Trung tâm Tính toán hiệu năng cao, trưởng Đại học Bách
Trang 18CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 19LỜI MỞ ĐÀU
Trong vải năm gần đây, khái niệm tính toán thông dụng trên các bộ xử lý
đồ họa (GPGPU — (ieneral-Purpose Computing on Graphies Processing Units)
thu hút được nhiều sự quan tâm từ các nhà nghiên cửu phương pháp tính toán khoa học Những lý do căn bản cho mối quan tim nay 1a
s_ lIiệu năng tính toán của các bộ xử lý đồ hoa (GPU) ngay cảng vượt trội so
với oáo bộ xử lý trung tâm truyền thông
e Các hãng sản xuất hộ xử lý đỗ họa như nVidia, AMI liên tục đưa ra
những hệ thông phần mềm trung gian (midđleware) và môi trường phát
triển ứng dụng (trình dịch, trình gỡ rối, ) cho phép người phát triển dễ
đàng xây dựng các ứng dụng phi đồ họa trên các bộ xử lý đồ họa nảy
«_ Giá thành cũng như các chỉ phí năng lượng cho hoạt dông của các bộ xử lý
46 hoa thập hơn nhiều so với các hệ thống máy tính cùng chỉ số hiệu năng
lý thuyết
Cac GPU có khả năng Tỉnh toán thông dụng như vậy có mặt ử khắp nơi, từ
máy tính cơ quan cho tới trường học, đến máy tính nhà riêng của mọi người Sự
phat Iriển rộng rãi về mặt số lượng của các GPU nay dan đến một yêu cầu hết
sức cấp bách và đầy thách thức đối với công dỗng phát triển phần mềm (đặc biệt
là các phan mềm tính toán khoa hgc), dé 14 1am thế nào tận dụng được sức mạnh
song song của các GPU đối với những phần mềm ứng dụng dang và sẽ dược phát
triển trong một vài năm nữa
Trong bối cảnh đó, tôi đã lựa chọn dễ tài: *Nphiên cứu công nghệ Tính taán
thông dụng trên các bộ xử lý đồ họa và ứng dụng trong bài taản mô phông
Trang 20N-kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 21Tóm tắt
Tải toán N-Rody là một bài toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật ly, y sinh, thiên văn học, Trong bài toán mô phỏng này, khi số lượng Body mô phỏng trong bài toán là một số rất lớn, việc tính toán
tương tác trên tắt că các cặp N-Body mất rất nhiều thời gian (đồ phức tạp trong
trường hợp tôi nhất O(N?)) Vì vậy chúng ta cần nghiên cửu một phương pháp
mới nhằm tăng tốc độ tính Loán cia bai toán mô phỏng N-Body, đó là lận dụng
sức mạnh tính toán của các bộ xử lý đỗ họa
Dé tai nay nhém tìm hiểu mồi trường tính toán hiệu năng cao trên bộ xử lý
đồ họa sử dụng công nghệ CUDA của hãng nVidia, và bước đầu thử nghiệm thanh công bải toán mô phỏng N-Body trên dơn GPU, cũng như dưa ra một số
để xuất giải thuật trén GPU cluster
Trang 22Bo” để làm đồ án tốt nghiệp cao học của mình Bài toán N-Body là một bài
toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật lý, y sinh,
thiên văn học, Trong bải toán mô phỏng này, khi số lượng Body mô phỏng
trong bài toán là một số rất lớn, việc tính toán tương tác trên tất cả các cặn N-
Body mất rất nhiều thời gian (O(N?) Vi vây chúng ta cần nghiên củu một
phương nháp mới nhằm tăng tốc độ tính Loán oủa bài toán mô phỏng N-Body, đó
là tân đụng sức mạnh tỉnh toán của các bộ xử lý đỗ họa
Qua đề tài này, tôi đã tìm hiểu được môi trường tính toán hiệu năng cao trên
bộ xử lý đồ họa sử dụng công nghệ CUDA của hing nVidia, và bước đầu thử
nghiệm thánh công bài loán mỗ phỏng N-Đody
Nội dung luận văn bau gầm cú 6 chương chính:
Chương 1: Tính toán hiệu năng cao với các bộ xử lý dỗ họa
Chương 2: Kiến trúc Tesla va Méi traéng lap trinh song song CUDA
Chương 3: Bải toán mô phống N-Body
Chương 4: Mô phống N-Body với đơn GPU
Chương 5: Xây dựng giải thuật mô phỏng N-Pody với da GPU
Chương 6: Kết luận và hướng phát triển
Để hoàn thành đổ án tốt nghiệp “Vghiên cứu công nghệ Tính toán thông dụng trên các bộ xử lý đề họa và ứng dụng trong bài toứn mô phông N-Body",
tôi xin chân thành cảm ơn tới Tiến sỹ Nguyễn Hữu Đức — Thầy đã là người trực
tiếp hướng dẫn và giúp đỡ tôi Tôi cũng xin gửi lời cảm ơn tới các thầy cô, các
anh chị quản lý tại Trung tâm Tính toán hiệu năng cao, trưởng Đại học Bách
Trang 23CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 24CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 253.3.2 Giải thuật Barnes-ITut (The Barnes-Iut Algorithm) —
3.3.3 Phuong phap da cye nhanh (The Fast Multipole Method “FMM
3.3.4 Giải thuật cây đa cực song song enilel Mullipole Tree Algorithm —
PMTA)
3.4 Tổng kết các giải thuật
CHƯƠNG IV MÔ PHONG N-BODY Vì vớt DON GPU
4.1 Mục dích mô phỏng N-Body trên GPU
4.2 Tỉnh toán lực tương táo các oặp N-Body
4.3 Sự thực thi CUDA của giải thuật tất câ các cặp N-Body
4.3.1 Tỉnh toán lực body - body
4.3.2 Tính toán tile
433 Xếp nhóm các tilc vào trong các Thrcad Bloek
4.3.4 Định nghĩa một Grid của các Thread Dloek
4.4 Môi trường thứ nghiêm bãi toán
4.5 Cách thử nghiệm bài toán N-Dody trên hệ thống
4.6 Các kết quả thực hiện
4L7 Sự tốt ưu hóa
4.7.1 Gia tăng hiệu năng với lặp không cuộn (loop waroling)
4.7.2 Hiệu năng từng khi kích thước Block thay đối
4.73 Cải thiện hiệu năng khi N nhỏ :
CHƯƠNG V XÂY DỰNG GIẢI THUẬT MÔ PHÔNG N-BODY
VỚI ĐA GPU
5.1 Tỉnh chất cúa các hệ thống tính toán da GPU
5.2 Kiến trúc hệ thống GPU cluster
Trang 26Bo” để làm đồ án tốt nghiệp cao học của mình Bài toán N-Body là một bài
toán kinh điển, ứng dụng trong nhiều lĩnh vực của khoa học như vật lý, y sinh,
thiên văn học, Trong bải toán mô phỏng này, khi số lượng Body mô phỏng
trong bài toán là một số rất lớn, việc tính toán tương tác trên tất cả các cặn N-
Body mất rất nhiều thời gian (O(N?) Vi vây chúng ta cần nghiên củu một
phương nháp mới nhằm tăng tốc độ tính Loán oủa bài toán mô phỏng N-Body, đó
là tân đụng sức mạnh tỉnh toán của các bộ xử lý đỗ họa
Qua đề tài này, tôi đã tìm hiểu được môi trường tính toán hiệu năng cao trên
bộ xử lý đồ họa sử dụng công nghệ CUDA của hing nVidia, và bước đầu thử
nghiệm thánh công bài loán mỗ phỏng N-Đody
Nội dung luận văn bau gầm cú 6 chương chính:
Chương 1: Tính toán hiệu năng cao với các bộ xử lý dỗ họa
Chương 2: Kiến trúc Tesla va Méi traéng lap trinh song song CUDA
Chương 3: Bải toán mô phống N-Body
Chương 4: Mô phống N-Body với đơn GPU
Chương 5: Xây dựng giải thuật mô phỏng N-Pody với da GPU
Chương 6: Kết luận và hướng phát triển
Để hoàn thành đổ án tốt nghiệp “Vghiên cứu công nghệ Tính toán thông dụng trên các bộ xử lý đề họa và ứng dụng trong bài toứn mô phông N-Body",
tôi xin chân thành cảm ơn tới Tiến sỹ Nguyễn Hữu Đức — Thầy đã là người trực
tiếp hướng dẫn và giúp đỡ tôi Tôi cũng xin gửi lời cảm ơn tới các thầy cô, các
anh chị quản lý tại Trung tâm Tính toán hiệu năng cao, trưởng Đại học Bách
Trang 27kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 28CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 29CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 30kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 31CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 32kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 335.3 Thiết kê giải thuật mô phỏng N-! Body trén hé thing da GPU
5.3.1 Su thue thi song song dau tiên
5.3.3 Tối ưu hóa giải thuật song song
Trang 34LỜI MỞ ĐÀU
Trong vải năm gần đây, khái niệm tính toán thông dụng trên các bộ xử lý
đồ họa (GPGPU — (ieneral-Purpose Computing on Graphies Processing Units)
thu hút được nhiều sự quan tâm từ các nhà nghiên cửu phương pháp tính toán khoa học Những lý do căn bản cho mối quan tim nay 1a
s_ lIiệu năng tính toán của các bộ xử lý đồ hoa (GPU) ngay cảng vượt trội so
với oáo bộ xử lý trung tâm truyền thông
e Các hãng sản xuất hộ xử lý đỗ họa như nVidia, AMI liên tục đưa ra
những hệ thông phần mềm trung gian (midđleware) và môi trường phát
triển ứng dụng (trình dịch, trình gỡ rối, ) cho phép người phát triển dễ
đàng xây dựng các ứng dụng phi đồ họa trên các bộ xử lý đồ họa nảy
«_ Giá thành cũng như các chỉ phí năng lượng cho hoạt dông của các bộ xử lý
46 hoa thập hơn nhiều so với các hệ thống máy tính cùng chỉ số hiệu năng
lý thuyết
Cac GPU có khả năng Tỉnh toán thông dụng như vậy có mặt ử khắp nơi, từ
máy tính cơ quan cho tới trường học, đến máy tính nhà riêng của mọi người Sự
phat Iriển rộng rãi về mặt số lượng của các GPU nay dan đến một yêu cầu hết
sức cấp bách và đầy thách thức đối với công dỗng phát triển phần mềm (đặc biệt
là các phan mềm tính toán khoa hgc), dé 14 1am thế nào tận dụng được sức mạnh
song song của các GPU đối với những phần mềm ứng dụng dang và sẽ dược phát
triển trong một vài năm nữa
Trong bối cảnh đó, tôi đã lựa chọn dễ tài: *Nphiên cứu công nghệ Tính taán
thông dụng trên các bộ xử lý đồ họa và ứng dụng trong bài taản mô phông
Trang 35CHUGNG 1 TINII TOAN IIIEU NANG CAO VOI GPU —
1.1 Tỉnh toán hiệu năng cao và vai trò ứng đụng trong thực tiễn 9 1.1.1 Thách thức tỉnh toán hiệu năng cao trong khoa học vả công nghề 10
1.2 Một số tiếp cân trong tính toán hiệu năng cao - - 12
1.2.1 Cáo hệ thống máy tính đa vi xử lý với mô hình Vip tinh song song chia sé
1.2.2 Cum máy tỉnh với mô hình lập trình song song truyền thông, diệp 14 1.2.3 Cáo bộ xử lý đồ họa với mô hình lập trình song song đỡ liệu 15
CITƯƠNG II GIỚI TIIfU KIÊN TRÚC TESIL.A VÀ MÔ IIÌNH LẬP
2.1 Giới thiệu kiến trúc phần cứng Tesla cla Nvidia (Vesta Architecture) 20 2.2 Kiến trúc tính toán trên GPU Tosla và mô hình lập trình song song CƯDA 21
2.2.1 Kiến trúc tính toán trên GPU Tesla ¬ ,_,,Ô
2.2.2 Mô hình lập trình song song CUDA " - 26
2.3.3 Quy trình cải đặt
CIHUGNG III BAI TOAN MO PIIONG N-BODY
Trang 36kỳ
Abstract
N-body algorithms are applicable to a number of common problems in computational physics including gravitation, electrostatics, and fluid dynamics Fast algorithms (those with better than O(N?) performance) exist, but have not
‘been su
sÍully implomentod on GPU hardware for practical problems In the present work, we introduce not only best-in-class performance for a all-pairs
method, but a series of improvements thal supporl implementation of this solver
on highly-data-parallel graphics processing units (GPUs) ‘Ihe greatly reduced computation times suggest that this problem is ideally suited for the current and
next generations of single and cluster CPU-GPU architcctures We believe that
this is an ideal method for practical computation of large-scale turbulent flows
on future supercompuling hardware using parallel vortex particle methods
Trang 375.3 Thiết kê giải thuật mô phỏng N-! Body trén hé thing da GPU
5.3.1 Su thue thi song song dau tiên
5.3.3 Tối ưu hóa giải thuật song song