返回> 网站首页
Ubuntu 18.04 下安装运行 GPGPU-Sim
yoours2024-04-13 19:20:30
简介一边听听音乐,一边写写文章。
一、简介
gpgpu-sim是一个GPU模拟器,可以让cuda程序运行在一个软件模拟器上,而不需要硬件GPU。
本文主要参考 https://zhuanlan.zhihu.com/p/369673760 来一步步实现,并根据新出现的安装问题做调整修改。
二、安装Ubuntu18.04x64
尝试在Ubuntu22.04版本上安装,gcc5太繁琐未成功,改用18.04版本。
1. 安装依赖文件
sudo apt-get install build-essential xutils-dev bison zlib1g-dev flex libglu1-mesa-dev
sudo apt-get install doxygen graphviz
sudo apt-get install freeglut3-dev
sudo apt-get install libpng-dev
2. 安装gcc-5、g++-5
sudo apt-get install gcc-5 g++-5
创建链接
sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc
sudo ln -s /usr/bin/g++-5 /usr/bin/g++
三、安装cuda环境
cuda下载哪个版本需要根据gpgpu-sim中的readme来决定,目前不支持版本12,最大仅支持11。
官方地址:https://developer.nvidia.com/cuda-11-8-0-download-archive
a) 下载安装
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run #该命令执行时间较长需要等待一会。
如图,输入accept。
如下图,使用空格选择,且只需选择CUDA Toolkit,其他的不选择。
安装完成如下图:
b) 借助迅雷等下载工具下载,再通过ssh传入ubuntu系统中
安装 ssh,使用WinSCP传入文件。
sudo apt install openssh-server -y
sudo systemctl enable --now ssh
如果是ssh传入,需要执行权限
chmod 777 cuda_11.8.0_520.61.05_linux.run
4. 添加并启用环境变量
sudo gedit ~/.bashrc
文件末尾增加如下:
export CUDA_INSTALL_PATH=/usr/local/cuda
export PATH=$CUDA_INSTALL_PATH/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_INSTALL_PATH/lib64
立即启用修改的环境配置
source ~/.bashrc
在终端输入:
nvcc -V 查看cuda版本信息,确认是否安装配置成功。
四、安装gpgpu-sim
1. 安装git
sudo apt install git
2. 下载源代码
git clone https://github.com/gpgpu-sim/gpgpu-sim_distribution
3. 配置环境
source setup_environment
4. 编译
如果文件夹为管理员权限需要改为允许任何人读写,否则编译不通过
sudo chmod -R 777 gpgpu-sim_distribution
make
五、运行demo测试
文件名: hello.cu
#include <stdio.h>
#include <cuda_runtime.h>
// CUDA核函数声明
__global__ void add(int a, int b, int *c)
{
*c = a + b;
}
int main()
{
int c;
int *dev_c;
// 分配设备内存
cudaMalloc((void **)&dev_c, sizeof(int));
// 调用CUDA核函数
add<<<1, 1>>>(2, 7, dev_c);
// 将结果从设备复制回主机
cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
// 输出结果
printf("2 + 7 = %d\n", c);
// 释放设备内存
cudaFree(dev_c);
return 0;
}
编译:
编译之前必须在GPGPU环境下进行编译
source setup_environment
nvcc --cudart shared -o hello hello.cu
查看链接的so库是否正确
运行之前还需要拷贝三个文件,到当前文件夹:
将 gpgpu-sim_distribution/configs/tested-cfgs/SM2_GTX480文件夹下的三个文件拷贝到编译后的程序文件夹内,然后运行,运行速度回比较慢:
六、NVIDIA Visual Profiler分析工具
查看当前java的版本,需要 jdk-8u401-linux-x64.tar.gz
1. 卸载当前的java
sudo apt-get remove openjdk*