编译 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 协议》,转载必须注明作者和本文链接