一、由于实验室大家使用的CUDA、CUdnn不同,所以需要在同一台服务器安装多个版本,而且要不引起冲突,方法如下:

1、一般来说CUDA安装在 /usr/local 目录下(当然你可以通过“echo $PATH”命令查询你的CUDA安装目录,一般来说CUDA的文件路径都会被写入到系统环境),如下图

其中cuda-8.0是我安装的版本(cuda是cuda-8.0的软链接,建立软链接的命令是:“ln -s cuda-8.0 cuda”),cuda-8.0-5.1是别人安装的版本。其中CUdnn在安装的时候一般都会被拷贝到相应的CUDA下面,如图所示,别的版本是CUDA8.0 CUdnn5.1,我的是CUDA8.0 CUdnn6.0(我忘了将CUdnn版本标在后面)

2、接下来,由于每个人的Linux账户不一样,你首先将你的CUDA、CUdnn安装到如上系统目录下(注意:CUdnn安装的时候一般会被拷贝到CUDA目录下),然后在你账户下:

# 先用vim打开.bashrc文件
vim ~/.bashrc
# 再将下面三句话粘贴进去(注意:假如你的安装目录不是cuda-8.0-5.1,则换成你的CUDA目录名称)
export PATH="$PATH:/usr/local/cuda-8.0-5.1/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0-5.1/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-8.0-5.1/lib64"

  

如此一来,不同Linux账户可以使用不同的CUDA、CUdnn版本。其中cuda-8.0是各个账户默认使用的版本,如果你想要使用你自己的版本,则需要按照上述办法,先下载安装,再修改你的账户下的.bashrc文件中的PATH。


二、注意,有多个朋友咨询关于安装一个CUDA,多个cuDNN,如何不冲突的问题?

  1. 首先CUDA按照网上的安装步骤一般都会被安装到/usr/local目录下
  2. 其次解压你的cuDNN,会生成一个目录叫cuda(注意cuDNN解压后的目录是cuda,而不是cuDNN),然后原理就是你需要把cuda文件下的头文件cudnn.h和动态库文件libcudnn*分别复制到/usr/local目录下的CUDA文件夹中include目录和lib64目录(注意CUDA是CUDA下载后生成在/usr/local的文件夹,cuda是cuDNN解压后的文件夹名称),具体步骤如下面代码:
注意:本服务器中的/usr/local下的CUDA文件夹我建立软连接仍叫cuda
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

  

所以按照以上原理,你只需要在/usr/local目录下,复制本机已有的CUDA文件夹,换一个你设定的名称,然后复制头文件和动态库文件,然后按照本篇教程开头的部分(即第一部分)设置你的账户下的.bashrc文件就可以

服务器配置多版本CUDA、CUdnn(不同Linux账户使用不同CUDA、CUdnn版本)的更多相关文章

  1. Linux 和 Windows 查看 CUDA 和 cuDNN 版本

    目录 Linux 查看 CUDA 版本 查看 cuDNN 版本 Windows 查看 CUDA 版本 查看 cuDNN 版本 References Linux 查看 CUDA 版本 方法一: nvcc ...

  2. 解析 Linux 内核可装载模块的版本检查机制

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/ 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可 ...

  3. 查看apache、linux、kernel、nginx等版本

    查看apache版本 /usr/sbin/apachectl -v httpd -v 安装目录,使用apachectl -v   查看mysql版本 mysql –help | grep Distri ...

  4. Linux(Fedora)下NodeJs升级最新版本(制定版本)

    Linux(Fedora)下NodeJs升级最新版本(制定版本) 首先安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 升级node.js到制定版本 n ...

  5. Linux系统入门教程:如何在 Linux 中修改默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  6. Linux下查看网卡驱动和版本信息

    Linux下查看网卡驱动和版本信息 查看网卡生产厂商和信号 查看基本信息:lspci 查看详细信息:lspci -vvv # 3个小写的v 查看网卡信息:lspci | grep Ethernet 查 ...

  7. Linux下切换使用两个版本的JDK

    Linux下切换使用两个版本的JDK 我这里原来已经配置好过一个1.7版本的jdk. 输出命令: java -version [root@hu-hadoop1 sbin]# java -version ...

  8. linux centos系统下升级python版本

    本文参考资料:https://www.cnblogs.com/leon-zyl/p/8422699.html,https://blog.csdn.net/tpc1990519/article/deta ...

  9. Linux虚拟机安装配置手册(版本:7.3)

    一.准备 ①.安装VMWare 安装步骤省略.我这里使用的版本如下: ②.Linux系统镜像文件: 建议使用最新版本的Linux系统.有些组件对系统内核版本要求比较高,有可能会产生错误. 我这里使用的 ...

随机推荐

  1. vue1.0

    vue1.0学习总结   前言 使用vue已经有三.四个月了,但是只是学着使用了一些基本方法.因为现在的前端框架越来越多(Angular,React...),但是我相信万变不离其宗,很多用法框架之间还 ...

  2. 【LOJ】#2107. 「JLOI2015」城池攻占

    题解 用一个平衡树维护能攻占到u点的骑士,合并到父亲的时候去掉攻击力小于父亲生命值的那部分,只要把那棵树拆掉并且将树中的所有骑士更新一下答案,用无旋式treap很好写 合并的时候只要启发式合并就可以了 ...

  3. kafka 基础知识梳理

    一.kafka 简介 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因 ...

  4. 实现C语言字符串操作的库函数 包括基本的字符串复制 字符串长度 字符串比较等多种函数(C代码)

    头文件 "mystring.h" #ifndef _MYSTR_H #define _MYSTR_H #include <stdio.h> #include <s ...

  5. 002.SMB安装与端口

    一 安装所需包 samba:主服务包 samba-client:客户端 samba-common:通用工具和宏文件,存在于客户端和服务端 samba-libs:库 samba-winbind:wind ...

  6. 一个轻巧高效的多线程c++stream风格异步日志(二)

    目录 一个轻巧高效的多线程c++stream风格异步日志(二) 前言 LogFile类 AsyncLogging类 AsyncLogging实现 增加备用缓存 结语 一个轻巧高效的多线程c++stre ...

  7. java 反射获取类的静态属性值

    public class AppTest { private NodeClass nodeClass; public static String hehe = "hehe"; pu ...

  8. Android-Toolbar相关

    Android-Toolbar相关 学习自 <Android第一行代码> https://www.jianshu.com/p/79604c3ddcae https://www.jiansh ...

  9. php模板引擎之featherview

    在纯php文件中不加php结束符是一个好习惯,php结束符仅用于在php与html混写时标示php代码结束. <? ?>是短标签,<?php ?>是长标签,在php的配置文件( ...

  10. 【转】让你彻底搞懂websocket

    一.websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP有 1 ...