GPGPU-sim环境搭建教程(详细)
环境配置:Ubuntu18.04, CUDA 11
GPGPU-sim能够在Linux系统下,提供对GPU的功能模拟和性能仿真,让你在没有装NVIDIA显卡的情况下可以编译并运行CUDA程序。当然它更重要的意义是,可以通过修改仿真参数,让开发者修改GPU内部架构,并进行性能仿真,以针对自己的项目需求进行更好的代码设计,获得更好的性能表现。
本文提供GPGPU-sim的环境搭建教程以供大家参考。
请严格按照顺序进行!
源代码部署
从官方git地址clone到本地GPGPU-sim
或者从Github上搜索GPGPU-sim得到的第一个结果就是
克隆好后,记住自己保存项目的文件夹地址。
环境搭建
官方给出的所需的支持环境:
在说明文档中作者有提到他们使用的gcc和bison版本,但实测发现直接用新一点版本的gcc和bison也没有问题,但是不支持gcc 8以上的版本,可以使用7点几的版本,所以如果你的电脑上缺啥,直接用sudo apt-get install命令安装即可。有些支持文件下载时可能显示找不到资源,这种情况一般是因为文件的名字在Ubuntu系统中改变了,只要百度一下找到它在Ubuntu系统中的名字,然后继续sudo apt-get install即可
对于CUDA Toolkit的下载可以在CUDA官网找到下载地址,这里给出链接:
https://developer.nvidia.com/zh-cn/cuda-downloads
按照自己的系统选择要下载的包即可,建议下载runfile文件,命令行操作也已经给出
安装CUDA工具包时如果电脑上没有GPU无需安装Driver,在有一个用叉号进行选择的环节通过回车键把Driver选项取消掉即可。
添加环境变量
支持文件全部下载完成后,需要对环境变量进行配置,下载好CUDA工具包后,应该已经可以用nvcc命令编译cu文件,nvcc的使用方式与gcc很像,如果需要了解的话可以去搜一下有很多教程。但此时,编译出来的可执行文件应该还无法用GPGPU-sim执行,我们还需要添加环境变量来让我们的可执行文件链接到GPGPU-sim自带的CUDA运行时库。
在命令行输入 sudo vim ~/.bashrc
在文件尾部插入如下两行:
export CUDA_INSTALL_PATH=/usr/local/cuda/bin
(假设CUDA工具包与gpggpu-sim都下载到了/usr/local/目录下)
以上步骤完成后,我们的前期准备工作都已经完成。
为了测试CUDA工具包是否成功安装,可以在命令行输入nvcc -V
查看当前的CUDA编译器版本,如果正确输出你安装的版本信息则说明安装成功。
部署GPGPU-sim
进入clone项目代码的文件夹,打开命令行,依次执行以下命令:
source setup_environment
make
make docs
至此,GPGPU-sim已经部署完毕
使用GPGPU-sim
在使用gpgpu-sim时,将你要编译的CUDA源代码(.cu文件)复制到
/configs/tested-cfgs/目录中的某个文件里,这个文件夹里是不同型号GPU的模拟config文件,例如你想模拟这个程序在GTX480显卡上的运行状况,就将代码复制到GTX480对应的文件夹下,然后在命令行用nvcc进行编译,编译时一定要加参数,如下:
nvcc --cudart shared test.cu
编译完成后,用ldd命令查看生成的可执行文件的运行时库链接路径是否正确
ldd a.out
如果环境变量配置未出错,显示的信息中,应该有一条当前CUDA版本对应lib文件的路径是gpgpu-sim项目中的对应CUDA so文件路径而不是你安装的CUDA工具包的路径(如下图)
我安装的是CUDA11,对应的so文件路径是gpgpu-sim中的so文件(红色圈出)
之后运行a.out文件,会有一大堆输出信息,只要在代码保证正确的前提下没报错并输出了预期结果,就说明可以正常使用gpgpu-sim了