install multiple versions of CUDA
- Do I need to install CUDA 10?
- Can I install CUDA 10 on a system that already has CUDA 9.2 installed?
- Steps to install CUDA 10.0 on Ubuntu 18.04
- Step 1) [Optional] Install CUDA 9.2 if you want to have both that and CUDA 10.0 on your system.
- Step 2) Install CUDA "dependencies"
- Step 3) Get the CUDA 10 "deb" file to set up the package repository
- Step 4) Do the install!
- Step 5) Setup your CUDA environment
- How to setup environments for both CUDA 9.2 and 10.0
- Step 6) Test CUDA by building the "samples" from source for both CUDA 9.2 and CUDA 10.0
NVIDIA recently released version 10.0 of CUDA. This is an upgrade from the 9.x series and has support for the new Turing GPU architecture. This CUDA version has full support for Ubuntu 18.4 as well as 16.04 and 14.04. The CUDA 10.0 release is bundled with the new 410.x display driver for Linux which will be needed for the 20xx Turing GPU's. If you are doing development work with CUDA or running packages that require you to have the CUDA toolkit installed then you will probably want to upgrade to this. I'll go though how to do the install of CUDA 10.0 either by itself or along with an existing CUDA 9.2 install.
Do I need to install CUDA 10?
This is an important question to ask yourself. I believe that many people do CUDA installs when they really don't need to do so. The most important thing to keep in mind is that,
CUDA GPU acceleration run-time libraries are included with the NVIDIA display driver. You do not need CUDA installed for most GPU accelerated applications.
You need to install CUDA 10 if;
- You are doing fresh development work writing low level CUDA kernels and need access to
nvcc
, AND you want to build on the latest platform with support for NVIDIA's new Turing GPU's. - You are recompiling existing packages and want to link in the most recent libraries. For example, if you are doing a TensorFlow build from source and want to try the latest GPU support.
- You want to use a software package that explicitly states that you need to have the CUDA "toolkit" installed. Most GPU accelerated software does not require a CUDA install.
- You just can't stand the thought of not having it installed on your system because you might want to try messing with it. Hey, that's OK, I understand that!
You do NOT need to install CUDA 10 if;
- You are a developer working with CUDA 9.x or earlier in your code base and there are no compelling new features that you want to risk breaking your application to try. See the release notes.
- You are working with Python machine learning frameworks AND using Anaconda Python. Most of the frameworks have up-to-date builds available from Anaconda Cloud that include the needed CUDA libraries i.e. you don't have to install anything outside of the package you want.
- You are using GPU accelerated software packages that only depend on CUDA run-time support from the display driver. That includes most "ready to use" or commercial software.
- You don't know what CUDA is. In that case then, well, thanks for reading my post. I hope you enjoy it and learn something from it.
Can I install CUDA 10 on a system that already has CUDA 9.2 installed?
Yes! CUDA 10.0 is the first CUDA release with official support for Ubuntu 18.04. Many people have followed my guide, How to install CUDA 9.2 on Ubuntu 18.04. That is a good general guide for doing a CUDA install. If you are doing a fresh CUDA install you may want to have both 9.2 and 10.0 installed at the same time. You can do that. Use the guide linked above to get CUDA 9.2 working.
We could almost do the same thing that I did in the 9.2 guide for CUDA 10, but, there is one problem (at least at the time I am writing this). The problem is that the NVIDIA driver needed for CUDA 10.0 is version 410 or greater. That driver is in beta right now and the ppa's have not packaged it yet. That means you would have to do a "raw" install of the driver from NVIDIA's base package. That's something you can do but I generally don't recommend it unless you really understand what you are doing. That's because you can run into configuration and dependency problems that can make a mess on your system that is hard to fix and maintain. I highly recommend sticking with ppa's, or, what I'm going to do below.
Steps to install CUDA 10.0 on Ubuntu 18.04
Step 1) [Optional] Install CUDA 9.2 if you want to have both that and CUDA 10.0 on your system.
[If you don't have Ubuntu 18.04 installed yet then see my note at the end of this step.]
If you want to have CUDA 9.2 along with CUDA 10.0 then it might be best to install 9.2 first. You can follow my guide, How to install CUDA 9.2 on Ubuntu 18.04. You don't strictly have to install 9.2 first but it might be less confusing if you do. That guide for the 9.2 install is pretty general, and is a safe way to install older versions of CUDA (but don't down-grade your display driver if you have a newer version!). The only real change from that guide will be where you get the "run" file. It will now be in the "Legacy Releases" section of the CUDA download site.
Once you have the CUDA 9.2 "run" file from the 17.10 Ubuntu release the rest of my guide linked above should get you a working CUDA 9.2.
Note: If you are doing a "clean" OS install of Ubuntu 18.04 then you might want to look at The Best Way To Install Ubuntu 18.04 with NVIDIA Drivers and any Desktop Flavor.
Step 2) Install CUDA "dependencies"
There are a few dependencies that are good to install first since they don't always get pulled along with a CUDA install from the "deb" file.
You will certainly need the build-tools and dkms,
sudo apt-get install build-essential dkms
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev
Those packages will get the needed GL, GLU, Xi, Xmu libs and several other libraries that will be installed as dependencies from those.
Step 3) Get the CUDA 10 "deb" file to set up the package repository
Go to the CUDA Zone and click the Download Now button. Then click the link buttons until you get the following,
Notice those 18.04 16.04 14.04 buttons! Nice! I am using the [deb (network)] file for the install. When you run that it will setup the apt repository configuration on your system. Then when you do the CUDA install it will pull the packages from NVIDIA over the network. You can use the [deb(local)] file if you want to download the entire repository to your system. That can be useful if you want to install on multiple machines or want stricter version control against updates.
Step 4) Do the install!
The instructions listed in that image above are what you should do.
sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
This will pull down and install all of the CUDA 10 packages along with dependencies AND the 410 NVIDIA display driver.
Now reboot. When your system restarts you will be running the NVIDIA 410 display driver and have CUDA 10 installed in /usr/local
.
Step 5) Setup your CUDA environment
First look at /usr/local to see what you got from the install.
kinghorn@u18:~$ ls -l /usr/local/
...
lrwxrwxrwx 1 root root 9 Sep 26 09:28 cuda -> cuda-10.0
drwxr-xr-x 16 root root 4096 Sep 26 09:27 cuda-10.0
drwxr-xr-x 19 root root 4096 Sep 25 19:59 cuda-9.2
...
Notice that the CUDA 10 install created a symbolic link from /user/local/cuda to the cuda-10.0 directory.
Checking nvidia-smi you will see the new driver is running.
kinghorn@u18:~$ nvidia-smi
Wed Sep 26 13:32:50 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48 Driver Version: 410.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1070 Off | 00000000:01:00.0 On | N/A |
| 0% 49C P8 11W / 151W | 42MiB / 8116MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 934 G /usr/lib/xorg/Xorg 39MiB |
+-----------------------------------------------------------------------------+
That is my old Puget Systems Peak Mini with a GTX 1070 in it, not my wonderful new Peak Single that has a 1080Ti and Titan V in it ... and will soon have an RTX 2080Ti Turing GPU in it! (I will be doing the CUDA install in this post on my new system too. I tested the install on the older machine.)
How to setup environments for both CUDA 9.2 and 10.0
In this section I'll go through a convenient way to setup your environment for "personal" use. This will be easy for switching back and forth between the CUDA versions if you want to do that. For a "system wide" multi-user environment that is configured automatically on login. Have a look at the post for installing CUDA 9.2 on Ubuntu 18.04.
To make it easy to switch back and forth between CUDA 10 and 9.2 you can make the following files,
cuda9.2-env
export PATH=$PATH:/usr/local/cuda-9.2/bin
export CUDADIR=/usr/local/cuda-9.2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.2/lib64
cuda10.0-env
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDADIR=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
You can put these files anywhere you want. I out them in ~/misc/ i.e. misc in my home directory.
You would use (and check) these like this,
kinghorn@u18:~/projects$ source ~/misc/cuda10.0-env
kinghorn@u18:~/projects$ env | grep -i cuda
LD_LIBRARY_PATH=:/usr/local/cuda-10.0/lib64
CUDADIR=/usr/local/cuda-10.0
PATH=/home/kinghorn/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda-10.0/bin
kinghorn@u18:~/projects$ source ~/misc/cuda9.2-env
kinghorn@u18:~/projects$ env | grep -i cuda
LD_LIBRARY_PATH=:/usr/local/cuda-10.0/lib64:/usr/local/cuda-9.2/lib64
CUDADIR=/usr/local/cuda-9.2
PATH=/home/kinghorn/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda-10.0/bin:/usr/local/cuda-9.2/bin
We'll use these scripts in the testing section below.
Step 6) Test CUDA by building the "samples" from source for both CUDA 9.2 and CUDA 10.0
I'll create a cuda-testing directory in my projects directory and then copy the sample directories from both version of CUDA.
kinghorn@u18:~/projects$ mkdir cuda-testing
kinghorn@u18:~/projects$ cd cuda-testing/
kinghorn@u18:~/projects/cuda-testing$ cp -a /usr/local/cuda-10.0/samples samples-10.0
kinghorn@u18:~/projects/cuda-testing$ cp -a /usr/local/cuda-9.2/samples samples-9.2
kinghorn@u18:~/projects/cuda-testing$ ls
samples-10.0 samples-9.2
Now set the environment and build the samples,
kinghorn@u18:~/projects/cuda-testing$ cd samples-9.2/
kinghorn@u18:~/projects/cuda-testing/samples-9.2$ source ~/misc/cuda9.2-env
kinghorn@u18:~/projects/cuda-testing/samples-9.2$ make -j 4
You will see compile lines that start with,
/usr/local/cuda-9.2"/bin/nvcc -ccbin g++ ...
Now lets do that with CUDA 10.0,
kinghorn@u18:~/projects/cuda-testing/samples-9.2$ cd ../samples-10.0/
kinghorn@u18:~/projects/cuda-testing/samples-10.0$ source ~/misc/cuda10.0-env
kinghorn@u18:~/projects/cuda-testing/samples-10.0$ make -j 4
This time the compile lines start like,
/usr/local/cuda-10.0/bin/nvcc -ccbin g++ ...
To finish up here's a screenshot of two copies of "nbody" running on this system. One built with CUDDA 10.0 and the other built with CUDA 9.2.
It looks like CUDA 10.0 is a great release. Check out the release notes to see some of the new features and changes in CUDA 10.0
Happy computing! --dbk
install multiple versions of CUDA的更多相关文章
- PHPFarm - How to run multiple versions of PHP on the same computer
How to Run Multiple Versions of PHP on One Server 转载:http://www.sitepoint.com/run-multiple-versions- ...
- Hive的Metastore contains multiple versions
hive 客户端报错:Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeExcepti ...
- Spark Sql数仓报-Metastore contains multiple versions
Spark版本为2.1.0,Hadoop版本为2.7.1,元数据存储在mysql中,异常信息如下: Exception in thread "main" java.lang.Run ...
- hive Metastore contains multiple versions
凌晨接到hive作业异常,hive版本为1.2.1,hadoop版本apache 2.7.1,元数据存储在mysql中,异常信息如下: Logging initialized using config ...
- Supporting Multiple Versions of WebSocket Protocol 支持多版本WebSocket协议
https://tools.ietf.org/html/rfc6455#section-4.4 4.4. Supporting Multiple Versions of WebSocket Proto ...
- Ubuntu install TensorFlow 1.10 + CUDA 9.2 + cuDNN 7.2
为了装TensorFlow 1.10 下面升级一下系统的软件环境 NVIDIA DRIVER 去官网下载最新的linux驱动 http://www.nvidia.com/Download/in ...
- How to: Modify a Project System So That Projects Load in Multiple Versions of Visual Studio
http://msdn.microsoft.com/en-us/library/hh266706(v=VS.110).aspx
- 【Mac】-NO.100.Mac.1.java.1.001-【Mac Install multiple JDK】-
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- Easy Install详细参数
Easy Install Easy Install is a python module (easy_install) bundled with setuptools that lets you au ...
随机推荐
- 【MySQL 线上 BUG 分析】之 多表同字段异常:Column ‘xxx’ in field list is ambiguous
一.生产出错! 今天早上11点左右,我在工作休息之余,撸了一下猫.突然,工作群响了,老大在里面说:APP出错了! 妈啊,这太吓人了,因为只是说了出错,但是没说错误的信息.所以我赶紧到APP上看看. 这 ...
- 阿里云服务器ECS Ubuntu18.04 初次使用配置教程(图形界面安装)
最近由于工作需要,要使用服务器测试,就先自已买了个服务器,就在阿里云买了一个,先买了那个叫虚拟主机的,后来发现不是我需要的,所以退了,就先了这个ECS主机.3年.如果购买就上图了.下面直接进入正题. ...
- 在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据
百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示: http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路 ...
- 3803 register initialization
wim寄存器 window invalid mask,窗口无效屏蔽寄存器,如果某bit为1,则表示该窗口无效,不能使用. 初始化,设置%psr.CWP=0,即当前使用win0:设置wim=2,即只有w ...
- CoachAI 2019年12月~2020年3月实习总结
CoachAI 2019年12月~2020年3月实习总结 一句话总结: 方向对口,大有所得. CoachAI公司简介 CoachAI是一家做在线健身的公司,目前在手机端和IOS端都有自己的服务,并 ...
- CoreLocation在iOS8上用法的变化
1.在使用CoreLocation前需要调用如下函数[iOS8专用]: iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法: (1)始终允许访 ...
- javascript中onclick(this)用法介绍
this指触发事件的对象 代码如下: <input id="myinput" type="text" value="javascript中onc ...
- C# 制作关键字醒目显示控件
实现方式:WinForm自定义控件,继承系统Label控件实现. 第1步:创建“组件”,取名为:MarkLabel 第2步:修改添加如下代码: /* 添加命名空间引用: * using Sys ...
- 斯坦福大学cs231n作业参考(中文版)
cs231n2016冬季课程作业完成,在原先的基础上进行了翻译和中文注释,同时增加了16之后版本的部分新作业文件,已经全部跑通,需要的欢迎自取. 斯坦福大学的 CS231n(全称:面向视觉识别的卷积神 ...
- [红日安全]Web安全Day1 - SQL注入实战攻防
本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...