编译 GPGPU-Sim benchmark ispass2009-benchmarks

配置 CUDA 环境

下载 GPGPU-Sim 模拟器:

// Old version 不支持 CUDA 5.0、GCC-4.8 及以上版本
git clone https://github.com/gpgpu-sim/gpgpu-sim_distribution.git 
// New version 支持 CUDA 5.0、GCC-4.8 及以上版本 (不推荐低版本CUDA使用,亲测 CUDA4.0、GCC4.4 编译出错)
git clone -b dev https://github.com/gpgpu-sim/gpgpu-sim_distribution.git 

CUDA 环境配置见 Ubuntu16.04 配置 cuda4.0 并编译 cuda4.0_SDK
然后安装配置GPGPU-Sim(具体可参考 GPGPU-Sim 配置说明文件):

sudo chmod -R 777 gpgpu-sim_distribution
cd gpgpu-sim_distribution
make

下载及配置 ispass2009-benchmarks

进入 gpgpu-sim_distribution 根目录,下载 ispass2009-benchmarks,并给文件夹内的文件赋予可执行权限。

git clone https://github.com/gpgpu-sim/ispass2009-benchmarks.git
sudo chmod -R 777 ispass2009-benchmarks/
// 进入ispass2009-benchmarks 根目录
cd ispass2009-benchmarks

编译 ispass2009-benchmarks

编译前确保CUDA环境配置正确。然后打开 Makefile.ispass-2009 文件在文件开头添加:

CUDA_INSTALL_PATH=/usr/local/cuda
NVIDIA_COMPUTE_SDK_LOCATION=/[PATH]/NVIDIA_GPU_Computing_SDK

[PATH] 替换为安装 CUDA 过程中个人自定义的 CUDA SDK 路径。
比如我的路径为:

NVIDIA_COMPUTE_SDK_LOCATION=/home/samples/NVIDIA_GPU_Computing_SDK

然后用编辑器打开 Makefile.ispass-2009 文件,修改 OPENMPI_BINDIR 路径:

change
export OPENMPI_BINDIR=/usr/lib64/mpi/gcc/openmpi/bin/;
to
export OPENMPI_BINDIR=/usr/bin/;

保存并退出。

AES 错误修正

进入 AES 目录下,用编辑器打开 Makefile 文件修改 LINKFLAGS。

change
LINKFLAGS       := -L$(BOOST_LIB) -lboost_filesystem$(BOOST_VER)
to
LINKFLAGS       := -L$(BOOST_LIB) -lboost_filesystem$(BOOST_VER) -lboost_system

DG 错误修正

进入 DG 目录下,用编辑器打开 Makefile 文件,找到第54和56行 INCLUDES:

// line 54
change
INCLUDES = -Dp_N=$(N) -DNDG3d -DCUDA -I/opt/local/include -I/usr/include/malloc -I$(HDRDIR) -I/opt/mpich/include
to
INCLUDES = -Dp_N=$(N) -DNDG3d -DCUDA -I/opt/local/include -I/usr/include/malloc -I$(HDRDIR) -I/opt/mpich/include -I/usr/lib/openmpi/include

// line 56
change
INCLUDES = -Dp_N=$(N) -DNDG3d -DCUDA -I/opt/local/include -I/usr/include/malloc -I$(HDRDIR)
to
INCLUDES = -Dp_N=$(N) -DNDG3d -DCUDA -I/opt/local/include -I/usr/include/malloc -I$(HDRDIR) -I/usr/lib/openmpi/include

WP 错误修正

进入 WP 根目录,用编辑器打开 makefile 文件,分别定位到第75行,第111行,以及第119行(注意:如果你环境配置的 CUDA4.0,只需要修改第75行;如果你环境配置的 CUDA4.2,需要对75行,111行,以及119行全部进行修改)。具体可参见 github 说明。

// line 75
change
NVOPT = $(DEVICEEMU_NVCC) $(PROMOTE) $(DEBUGDEBUG) $(DEBUGOUTPUT) \
                -DXXX=$(XXX) -DYYY=$(YYY) -DMKX=$(MKX) --host-compilation 'C++' --use_fast_math
to
NVOPT = $(DEVICEEMU_NVCC) $(PROMOTE) $(DEBUGDEBUG) $(DEBUGOUTPUT) \
                -DXXX=$(XXX) -DYYY=$(YYY) -DMKX=$(MKX) --use_fast_math

// line 111
change
wsm5.cu.o : wsm5.f.cu
                $(NVCC) $(PHASE) $(NVOPT) wsm5.f.cu
                $(CC) $(CFLAGS) -o wsm5.cu.o -c wsm5.f.cu.cpp
to
wsm5.cu.o : wsm5.f.cu
                $(NVCC) $(PHASE) $(NVOPT) wsm5.f.cu
                $(CC) $(CFLAGS) -o wsm5.cu.o -c wsm5.f.cu.cpp.ii

// line 119
change 
wsm5_gpu.cu.o : wsm5_gpu.f.cu
                $(NVCC) $(PHASE) $(NVOPT) wsm5_gpu.f.cu
                $(CC) $(CFLAGS) -o wsm5_gpu.cu.o -c wsm5_gpu.f.cu.cpp
to
wsm5_gpu.cu.o : wsm5_gpu.f.cu
                $(NVCC) $(PHASE) $(NVOPT) wsm5_gpu.f.cu
                $(CC) $(CFLAGS) -o wsm5_gpu.cu.o -c wsm5_gpu.f.cu.cpp.ii

然后找到 GPGPULINK :

change
#GPGPULINK = -L$(CUDAHOME)/lib64/ -lcudart -L$(NVIDIA_COMPUTE_SDK_LOCATION)/C/lib/ -lcutil_x86_64 -lm -lz -ldl -lGL -lstdc++ $(NEWLIBDIR) $(LIB) # /usr/lib64/libstdc++.so.6
to
GPGPULINK = -L$(CUDAHOME)/lib64/ -lcudart -L$(NVIDIA_COMPUTE_SDK_LOCATION)/C/lib/ -L$(NVIDIA_COMPUTE_SDK_LOCATION)/C/lib -lm -lz -ldl -lGL -lstdc++ $(NEWLIBDIR) $(LIB) # /usr/lib64/libstdc++.so.6

执行编译命令:

make -f Makefile.ispass-2009
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!