配置gem5-gpu docker版
1 安装docker:wget -qO- https://get.docker.com/ | sh,启动服务:sudo service docker start
2 把非root用户添加到docker组:
sudo
gpasswd -a UserName docker
3 拉取镜像:docker pull powerjg/gem5-cuda-build,DockerFile为:
FROM ubuntu:14.04 MAINTAINER Jason Lowe-Power <jason@lowepower.com> # Install all of gem5's dependencies
RUN apt-get update -y && apt-get install -y \
build-essential \
python-dev \
scons \
swig \
zlib1g-dev \
m4 \
libprotobuf-dev \
python-protobuf \
protobuf-compiler \
libgoogle-perftools-dev
RUN apt-get install --no-install-recommends -y mercurial # Install dependencies for gem5-gpu (CUDA benchmarks)
RUN apt-get install -y \
gcc-4.6 \
g++-4.6 \
python \
wget RUN wget http://developer.download.nvidia.com/compute/cuda/3_2_prod/toolkit/cudatoolkit_3.2.16_linux_64_ubuntu10.04.run
RUN wget http://developer.download.nvidia.com/compute/cuda/3_2_prod/sdk/gpucomputingsdk_3.2.16_linux.run # Note: May need to make sure return is pressed
RUN bash cudatoolkit_3.2.16_linux_64_ubuntu10.04.run
# Note: must input /usr/local/cuda, then return
RUN bash gpucomputingsdk_3.2.16_linux.run
RUN mv /root/NVIDIA_GPU_Computing_SDK/C /usr/local/cuda RUN echo " \
export CUDAHOME=/usr/local/cuda; \
export PATH=$PATH:/usr/local/cuda/bin; \
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/lib; \
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/C/lib; \
" >> /root/.bashrc
#RUN source /root/.bashrc WORKDIR /usr/local/cuda/C/common
RUN make 2> /dev/null # Also needed, but not at this stage in the build
# WORKDIR /gem5-gpu/benchmarks/common
# RUN make
镜像中只有一个root用户,主目录为/root,无密码
4 查看镜像:docker images
5 运行“镜像”:docker run -it powerjg/gem5-cuda-build:latest /bin/bash,-t启动终端,-i交互式,/bin/bash是启动后运行的程序。
6 从docker文件可以看到镜像中缺少
sudo apt-get install libxext-dev libxi-dev x11proto-xext-dev libice-dev libsm-dev libxt-dev libxmu-headers libxmu-dev freeglut3-dev libcr-dev libX11-dev libglu1-mesa,
sudo apt-get install -y \ gcc-4.6 \ g++-4.6 \ python \ wget \ gcc-4.4 \ g++-4.4 \ gcc-4.8 \ g++-4.8,先apt-get update再安装。
配置好gcc、g++,hg。下载gem5-gpu、编译。cuda编译出现问题,把host上编译好的复制到container中解决的。
7 先介绍一点docker命令,查看运行(包括停止的)的容器:docker ps -a
8 把所做的更改保存到镜像:docker commit -m="Comments gem5 env is ok" -a="Author" 8d688027df7b gem5:test,
docker images可以看到新增了镜像,与下面的save区别开来。
9 容器与主机间文件传输
主机到容器:docker cp /home/huan/ 8d688027df7b:/home/
容器到主机:docker cp 8d688027df7b:/home/ /home/huan/
10 容器中输入exit退出,停止容器:docker stop ContainerID(杀进程,同kill?),docker pause ContainerID(暂停器中运行的进程),
docker rm ContainerID(删除容器,对镜像的更改丢失)
连接到正在运行的容器:docker attach --sig-proxy=false ID,查看容器中运行的进程:docker top ID
11 删除镜像:docker rmi IMAGE_NAME or ID;
保存镜像:docker save {-o FileName.tar gem5:test, gem5:test > FileName.tar
};tar文件中包含了各层(layer)和元数据(metadata),所以即使删除容器中的文件,tar依然很大。
加载镜像:docker load FileName.tar;(有Name和Tag)。
导出容器:docker export {gem5:test > latest.tar
, --output="latest.tar" gem5:test
},只是保存镜像的文件系统,仅一层,不包含元数据。
导入容器:docker import FileName;(无tag)可以是URL或本地文件
12 -p端口映射(默认TCP),--name命名,-d后台运行
docker run -it -p hostPort:containerPort --name gem5 -d gem5:test /bn/bash,(小写的p,v)
13 用attach连接容器,多个attach终端完全相同。docker exec -it <container> bash|sh
是执行 exec 最常用的方式,启动多个伪TTY。
attach与exec的用法区别:a)attach 直接进入容器 启动命令 的终端,不会启动新的进程。b)exec 则是在容器中打开新的终端,并且可以启动新的进程。
docker run -ti -p 49001:5900 -p 49002:22 --name gem5 -e HOME=/root gem5:test /bin/bash
docker exec -it gem5 bash , docker start gem5
暂时可以忽略空间管理,备份,迁移等更高级的用法。
13 容器安装VNC(方法来自StackOverflow,尝试了很久,没成功
)
apt-get install -y x11vnc xvfb firefox openssh-server,
mkdir ~/.vnc
,x11vnc -storepasswd chh912 ~/.vnc/passwd
,
a)
echo 'firefox' >> /.bashrc
docker run -p 49004:5900 -p 49003:22 -e HOME=/root gem5:testa x11vnc -forever -usepw -create,将容器22端口绑定到主机49003端口,用于ssh连接。
b) echo 'DISPLAY=:0' >> ~/.bashrc,
add this command to startup wizard or entrypoint script:
source ~/perl5/perlbrew/etc/bashrc rm -f /tmp/.X10-lock Xvfb :0 -screen 0 1600x1200x24 & firefox -height 1200 -width 1600 & x11vnc -usepw -forever -shared &
run:
docker run -p 49001:5900 -p 49002:22 -e HOME=/root gem5:testb Xvfb :0 -screen 0 1600x1200x24 & x11vnc -usepw -forever -shared &
14 <不行,没意义,异想天开.jpg>安装GNOME,sudo apt-get remove gnome-shell,sudo apt-get remove ubuntu-gnome-desktop
15 用ssh,这个方法也麻烦,需要搞定root密码等问题,新建用户失败,give up! 老老实实用docker cp和Vim。
配置gem5-gpu docker版的更多相关文章
- Keras学习环境配置-GPU加速版(Ubuntu 16.04 + CUDA8.0 + cuDNN6.0 + Tensorflow)
本文是个人对Keras深度学习框架配置的总结,不周之处请指出,谢谢! 1. 首先,我们需要安装Ubuntu操作系统(Windows下也行),这里使用Ubuntu16.04版本: 2. 安装好Ubunt ...
- windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤
很久之前在windows7 32位上配置过GPU版的opencv,可参考http://blog.csdn.net/fengbingchun/article/details/9831837 Window ...
- docker版mysql的使用和配置(1)——docker的基本操作
最近实在是忙成狗,其他的内容等稍微闲一点了一起更新. 这篇主要是讲docker版的mysql的使用和配置信息.因为实习公司需要搞一个docker做测试环境用,还需要包括基本的依赖.最重要的是,因为这个 ...
- 美图DPOS以太坊教程(Docker版)
一.前言 最近,需要接触区块链项目的主链开发,在EOS.BTC.ethereum.超级账本这几种区块链技术当中,相互对比后,最终还是以go-ethereum为解决方案. 以ethereum为基准去找解 ...
- .Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用
安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Contai ...
- Docker 版rocketmq部署
rocketmq 部署启动指南-Docker 版 最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...
- rabbitMQ安装docker版 /权限管理命令
1.进入docker hub镜像仓库地址:https://hub.docker.com/ 2.搜素rabbitMQ 查询镜像,可以看到多种类型,选择带有web页面的(managment) 3.拉取镜像 ...
- Docker版EKL安装记录文档
Docker版EKL安装记录文档 拉取已下三个镜像 docker.io/logstash 7.5.2 b6518c95ed2f 6 months ago 805 MB docker.io/kibana ...
- 配置tomcat解压版
配置Tomcat[解压版] 选择解压版的Tomcat的理由是可以让我们使用多个Tomcat,但是配置上就会出现一些问题,需要我们手动进行更改配置.我的Tomcat版本是:apache-tomcat-6 ...
随机推荐
- 进程fork
fork用于父进程创建一个子进程 返回两次 返回-1表示错误 父进程中返回创建子进程的ID,大于0 返回0是表示进入子进程 创建的子进程会继承父进程的属性,比如打开的文件描述符.工作目录.根目录等等. ...
- 夯实Java基础(二十二)——Java8新特性之Lambda表达式
1.前言 Java 8于14年发布到现在已经有5年时间了,经过时间的磨练,毫无疑问,Java 8是继Java 5(发布于2004年)之后的又一个非常最重要的版本.因为Java 8里面出现了非常多新的特 ...
- uniGUI之新窗口uniForm(19)
然后 保存,在这里 重命名窗口 //主窗口 调用 // NewForm2.UniForm1.Show() ; //非阻塞 NewForm2.UniForm1.ShowModal();//阻塞 //子窗 ...
- python基本输入输出函数与变量类型
7.python具有三个重要的输出输入函数:print(输出)/eval(转换)/input(输入): 8.对于输出函数print函数的具体使用规则如下:(1)输出字符串:print("字符 ...
- LeetCode 804 唯一摩尔斯密码词
package com.lt.datastructure.Set; import java.util.TreeSet; /* * 一个摩斯码,对应一个字母.返回我们可以获得所有词不同单词翻译的数量. ...
- 守神漏洞扫描器V1.2
主界面 指纹利用 漏洞库 怎么说呢,个人感觉这个扫描器跟小哲的Test404Fuzzer差不多~ 就是功能多了旁站查询.C段查询.而且这款工具的exp比Test404Fuzzer的多了几个~ 总体来说 ...
- P1095 解码PAT准考证
1095 解码PAT准考证 (25分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级:A 代表甲级:B 代表乙级: 第 2~4 位是考场编号,范围从 101 到 999: ...
- 利用SSH在本机和远程服务器之间传输文件或文件夹
1.从远程服务器上下载文件到本机 scp <服务器用户名>@<服务器地址>:<服务器中要下载的文件路径> <下载到本机的绝对路径> 2.从本机上传本地文 ...
- 题解 LG P2264
这是题解P2264 先讲一下Trie,其实Trie也名前缀树,就是说:如果Trie中某串是某串的前缀,那么我们可以共用这个串也就是这样: 插入h.hk.jc,jcfa 那么,h节点会给h和hk共用,j ...
- 微信小程序request请求实例,网络请求。
最近微信小程序开始开放测试了,小程序提供了很多api,极大的方便了开发者,其中网络请求api是wx.request(object),这是小程序与开发者的服务器实现数据交互的一个很重要的api. 官方参 ...