Bài toán thử nghiệm N-body trên GPU được tham khảo từ [9]. 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
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 ############################################################################ ####
# Rules and targets
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ế độ 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ả
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:
nbody -benchmark -n=8388608 , trong đó: -benchmark: là chếđộ chạy
-n: số phần tử trong mô phỏng
Tác giảđã sửa mã nguồn để số bước lặp mặc định từ 100 thành 1.