Xây dựng bài toán N-body trên GPU

Một phần của tài liệu tính toán hiệu năng với bộ xử lý đồ họa GPU và ứng dụng (Trang 71)

Bài toán thử nghiệm N-body trên GPU được tham khảo từ [~8]. Tác giả luận văn

đã tìm hiểu, nghiên cứu mà nguồn ví dụ, điều chỉnh các tham số chương trình và cài

đặt trên môi trường thử nghiệm. Các bước thực hiện:

1. Cài đặt bộ tool kit của NIVIDIA phiên bản 1.0 trở lên. Có thể

download tại http://developer.nvidia.com/cuda

2. Cấu hình GPU cần thiết: NVIDIA 8-Series hoặc mới hơn. 3. Biên dịch chương trình trên Linux:

Make file biên dịch chương trình:

########################################################################## ######

#

# Build script for project #

########################################################################## ######

# Add source files here EXECUTABLE := nbody

# Cuda source files (compiled with cudacc) CUFILES := bodysystemcuda.cu

# C/C++ source files (compiled with gcc / c++) CCFILES := \

nbody_gold.cpp bodysystemcpu.cpp bodysystemcuda.cpp nbody.cpp \ render_particles.cpp \ USEGLLIB := 1 USEPARAMGL := 1 USEGLUT := 1 ########################################################################## ######

include ../../common/common.mk

Ở thư mục gốc, gõ lệnh: Make; Make dbg=1

"Make -f Makefile_paramgl; Make -f Makefile_paramgl dbg=1 Vào thư mục: projects/nbody, gõ lệnh:

Make; Make dbg=1; Make emu=1; Make emu=1 dbg=1 Chương trình được chạy trong thư mục: bin/linux/release/nbody

Chương trình có 3 chếđộ chạy: interactive (đồ họa) , benchmark và test.

Chế độ interactive: chạy đồ họa, cho phép người dùng có thể nhìn thấy mô phỏng n-body, các hạt chuyện động.

Chế độ test: mô phỏng được chạy trên cả CPU và GPU. Nếu mô phỏng trên GPU nằm trong sự cho phép của mô phỏng trên CPU thì kết quả hiển thị "Test PASSED", ngược lại hiển thị "Test FAILED"

Chế độ benchmark: chỉ chạy tính toán các tương tác, không có chuyển đổi sang

đồ họa 3D và không có thời gian chờ. Báo cáo mô phỏng gồm: tổng thời gian, thời gian trung bình, trung bình tương tác giữa các phần tử trong 1 giây, tỷ số GFLOP/s. Tác giả luận văn lựa chọn chế độ này để chạy thử nghiệm hiệu năng GPU so sánh với CPU. Lệnh chạy như sau:

nohup echo "8388608 start" >> linh_result.txt && date >> linh_result.txt && nbody - benchmark -n=8388608 >> linh_result.txt && date >> linh_result.txt && echo "8388608 end" >> linh_result.txt &

Trong đó:

linh_result.txt là file chứa kết quả chạy chương trình

nohup: lệnh chạy mô phỏng trên server, không cần tương tác với client

date: lệnh ghi thời gian hệ thống khi bắt đầu và kết thúc chương trình

nbody -benchmark -n=8388608: chạy mô phỏng ở chếđộ benchmark, với số phần tử

n= 8388608 (8192K)

Một phần của tài liệu tính toán hiệu năng với bộ xử lý đồ họa GPU và ứng dụng (Trang 71)

Tải bản đầy đủ (PDF)

(79 trang)