前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在docker里跑gpgpusim

在docker里跑gpgpusim

作者头像
用户1148523
发布2019-05-28 21:57:06
1K0
发布2019-05-28 21:57:06
举报
文章被收录于专栏:FishFish

1. Introduction

gpgpusim在虚拟机里跑起来非常慢,而自己配机器的环境又可能会出现这样那样的问题。本文给出了一种使用gpgpusim提供的vbox虚拟机进行编译,在host的docker环境下运行的方法。

2. 使用gpgpusim官方vbox虚拟机

gpgpusim官方提供了vbox虚拟机文件的下载,大概7G多,

http://ece.ubc.ca/~taylerh/files/gpgpu-sim/gpgpu-sim.vm.tar.gz

直接从vbox里打开就行。里面的系统是ubuntu 14.04。

3. 编译

编译成功gpgpusim以后,实际上主要是生成了一个libcudart.so。

4. 拷贝必须的文件

后面用docker的时候,我们会将文件夹挂载到docker里,在外部修改,在docker里运行。

建一个文件夹sim,可以建在你想放的地方,比如/home/find/e/gpgpusim/。 在该目录下建立libsim,将vbox虚拟机里编译好的/home/gpgpu-sim/gpgpu-sim_distribution/lib/gcc-4.6.4/cuda-4020/release/libcudart.so及其软链接拷贝过来,直接拷贝so文件到/home/find/e/gpgpusim/libsim/文件夹下即可。 新建目录/home/find/e/gpgpusim/cuda/,将vbox虚拟机里/home/gpgpu-sim/cuda/toolkit/4.2/cuda/bin文件夹拷贝到这里,即/home/find/e/gpgpusim/cuda/里只有一个bin文件夹。(或者将vbox虚拟机里整个cuda文件夹拷贝过来也行)

5. 使用docker

由于gpgpusim必须使用gcc4.7及以前的版本,而修改自己的电脑系统可能带来不方便,因此使用docker来运行程序,docker在运行程序时,性能损失大概在10%以内,但也比vbox快多了。

直接docker pull ubuntu:14.04从docker hub pull ubuntu 提供的官方的14.04版本系统,参考 Docker学习笔记目录以前的文章,运行以下命令可以将外部的文件夹挂载到docker里去:

代码语言:javascript
复制
docker run --name gpgpusim -it -v /home/find/e/gpgpusim:/root/sim/  ubuntu:14.04 /bin/bash

进入docker里的ubuntu14.04以后,设置为中科大的源,update系统,安装如下包:

代码语言:javascript
复制
apt install -y gcc gcc-4.6 g++ g++-4.6 build-essential  vim

6. 设置环境变量

修改docker里~/.bashrc文件,添加如下内容:

代码语言:javascript
复制
export CUDA_INSTALL_PATH=/root/sim/cuda/
export LD_LIBRARY_PATH=/root/sim/libsim/
export PATH=$PATH:/root/sim/cuda/bin/

到/usr/bin/里将默认gcc和g++的软链接挂到4.6版本上:

代码语言:javascript
复制
cd /usr/bin
rm gcc g++
ln -s ./gcc-4.6 ./gcc
ln -s ./g++-4.6 ./g++

7. 运行

以vectoradd为例,在host的gpgpusim文件夹下建立test文件夹,并拷贝vectoradd.cu文件以及gpgpusim提供的配置文件(在/home/gpgpu-sim/gpgpu-sim_distribution/configs/GTX480/文件夹下有三个文件)到test文件夹:

代码语言:javascript
复制
nvcc -o vectoradd ./vectoradd.cu 
./vectoradd

即可发现可以正常运行,并有大量输出。

转载自:FindHao的Blog:https://www.findhao.net/easycoding/2404

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Introduction
  • 2. 使用gpgpusim官方vbox虚拟机
  • 3. 编译
  • 4. 拷贝必须的文件
  • 5. 使用docker
  • 6. 设置环境变量
  • 7. 运行
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档