ubuntu安装多个版本的CUDA并随时切换
<p>CUDA是什么就不介绍了,直接讲怎么实现CUDA多版本的共存和实时切换。</p>
<p>
<span><strong>1、安装多个版本的CUDA</strong></span></p>
<p>
这里,我们以cuda9-1版本和cuda9-0版本为例(先安装哪个无所谓)<br>
首先,在cuda版本库中选择自己需要的cuda版本。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="ubuntu安装多个版本的CUDA并随时切换" alt="ubuntu安装多个版本的CUDA并随时切换" src="https://zhuji.jb51.net/uploads/img/202305/0ee4dc835162a232f4c2006c394ab87e.jpg"></p>
<p>
然后,选择对应的安装包,这里选择runfile类型的安装文件,以便后面设置每个cuda的安装路径。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="ubuntu安装多个版本的CUDA并随时切换" alt="ubuntu安装多个版本的CUDA并随时切换" src="https://zhuji.jb51.net/uploads/img/202305/e79b366f9e094c638730cae117506eaf.jpg"></p>
<p>
下载完成以后,我们利用cd命令,进入到cuda_8.0.61_375.26_linux.run文件所在的目录中,然后运行下面的指令,进行安装(注意这个文件名,前面的cuda_8.0.61代表cuda的版本,后面的375.26代表的对应的NVIDIA驱动的版本,这里我用cuda8.0的安装过程为例,9.0和9.1同理)</p>
<p>
安装过程中在建立软链接时需要注意一下,如果你是第一次安装cuda,那么毫无疑问输入y(yes),但是如果你是安装额外版本的cuda,是否选择y(yes)就要看你的具体需求而定,简言之,就是如果你希望启用当前安装的cuda版本,就选y,如果你只是想安装这个版本,而暂时还不想启用该版本时,就选n。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_459783">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
<div class="line number37 index36 alt2">
37</div>
<div class="line number38 index37 alt1">
38</div>
<div class="line number39 index38 alt2">
39</div>
<div class="line number40 index39 alt1">
40</div>
<div class="line number41 index40 alt2">
41</div>
<div class="line number42 index41 alt1">
42</div>
<div class="line number43 index42 alt2">
43</div>
<div class="line number44 index43 alt1">
44</div>
<div class="line number45 index44 alt2">
45</div>
<div class="line number46 index45 alt1">
46</div>
<div class="line number47 index46 alt2">
47</div>
<div class="line number48 index47 alt1">
48</div>
<div class="line number49 index48 alt2">
49</div>
<div class="line number50 index49 alt1">
50</div>
<div class="line number51 index50 alt2">
51</div>
<div class="line number52 index51 alt1">
52</div>
<div class="line number53 index52 alt2">
53</div>
<div class="line number54 index53 alt1">
54</div>
<div class="line number55 index54 alt2">
55</div>
<div class="line number56 index55 alt1">
56</div>
<div class="line number57 index56 alt2">
57</div>
<div class="line number58 index57 alt1">
58</div>
<div class="line number59 index58 alt2">
59</div>
<div class="line number60 index59 alt1">
60</div>
<div class="line number61 index60 alt2">
61</div>
<div class="line number62 index61 alt1">
62</div>
<div class="line number63 index62 alt2">
63</div>
<div class="line number64 index63 alt1">
64</div>
<div class="line number65 index64 alt2">
65</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">#先执行下面的命令安装相关依赖,</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">#否则会出现`Missing recommended library`错误</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev </code>
</div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">sudo sh cuda_8.0.61_375.26_linux.run #开始安装</code>
</div>
<div class="line number7 index6 alt2">
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">#..一堆协议说明...</code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">#直接按q退出协议说明.</code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">zerozone@zerozone: accept/decline/quit: accept #接受协议</code>
</div>
<div class="line number11 index10 alt2">
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26? </code>
</div>
<div class="line number13 index12 alt2">
<code class="plain plain">y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n</code>
</div>
<div class="line number14 index13 alt1">
</div>
<div class="line number15 index14 alt2">
<code class="plain plain">Install the CUDA 8.0 Toolkit?</code>
</div>
<div class="line number16 index15 alt1">
<code class="plain plain">(y)es/(n)o/(q)uit: y #是否安装工具包,选择y</code>
</div>
<div class="line number17 index16 alt2">
</div>
<div class="line number18 index17 alt1">
<code class="plain plain">Enter Toolkit Location</code>
</div>
<div class="line number19 index18 alt2">
<code class="plain plain">[ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可</code>
</div>
<div class="line number20 index19 alt1">
</div>
<div class="line number21 index20 alt2">
<code class="plain plain">Do you want to install a symbolic link at /usr/local/cuda?</code>
</div>
<div class="line number22 index21 alt1">
<code class="plain plain">(y)es/(n)o/(q)uit: y #添加链接**注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**</code>
</div>
<div class="line number23 index22 alt2">
</div>
<div class="line number24 index23 alt1">
<code class="plain plain">Install the CUDA 8.0 Samples?</code>
</div>
<div class="line number25 index24 alt2">
<code class="plain plain">(y)es/(n)o/(q)uit: y #安装样例</code>
</div>
<div class="line number26 index25 alt1">
</div>
<div class="line number27 index26 alt2">
<code class="plain plain">Enter CUDA Samples Location</code>
</div>
<div class="line number28 index27 alt1">
<code class="plain spaces"> </code><code class="plain plain">[ default is /root ]: #样例安装地址默认即可</code>
</div>
<div class="line number29 index28 alt2">
</div>
<div class="line number30 index29 alt1">
<code class="plain plain"># ***安装信息***</code>
</div>
<div class="line number31 index30 alt2">
<code class="plain plain">Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...</code>
</div>
<div class="line number32 index31 alt1">
</div>
<div class="line number33 index32 alt2">
<code class="plain plain">Missing recommended library: libXi.so</code>
</div>
<div class="line number34 index33 alt1">
<code class="plain plain">Missing recommended library: libXmu.so</code>
</div>
<div class="line number35 index34 alt2">
<code class="plain plain">#注意,这里出现了Missing recommended library错误,</code>
</div>
<div class="line number36 index35 alt1">
<code class="plain plain">#是因为博主在第一次安装时,没有添加最开始的那条安装相关依赖的指令,</code>
</div>
<div class="line number37 index36 alt2">
<code class="plain plain">#之后我添加了依赖后,再次安装,就没有Missing错误了</code>
</div>
<div class="line number38 index37 alt1">
</div>
<div class="line number39 index38 alt2">
<code class="plain plain">Installing the CUDA Samples in /root ...</code>
</div>
<div class="line number40 index39 alt1">
<code class="plain plain">Copying samples to /root/NVIDIA_CUDA-8.0_Samples now...</code>
</div>
<div class="line number41 index40 alt2">
<code class="plain plain">Finished copying samples.</code>
</div>
<div class="line number42 index41 alt1">
</div>
<div class="line number43 index42 alt2">
<code class="plain plain">===========</code>
</div>
<div class="line number44 index43 alt1">
<code class="plain plain">= Summary =</code>
</div>
<div class="line number45 index44 alt2">
<code class="plain plain">===========</code>
</div>
<div class="line number46 index45 alt1">
<code class="plain plain">Driver: Not Selected</code>
</div>
<div class="line number47 index46 alt2">
<code class="plain plain">Toolkit: Installed in /usr/local/cuda-8.0</code>
</div>
<div class="line number48 index47 alt1">
<code class="plain plain">Samples: Installed in /root, but missing recommended libraries</code>
</div>
<div class="line number49 index48 alt2">
</div>
<div class="line number50 index49 alt1">
<code class="plain plain">Please make sure that</code>
</div>
<div class="line number51 index50 alt2">
<code class="plain spaces"> </code><code class="plain plain">- PATH includes /usr/local/cuda-8.0/bin</code>
</div>
<div class="line number52 index51 alt1">
<code class="plain spaces"> </code><code class="plain plain">- LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root</code>
</div>
<div class="line number53 index52 alt2">
</div>
<div class="line number54 index53 alt1">
<code class="plain plain">To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin</code>
</div>
<div class="line number55 index54 alt2">
</div>
<div class="line number56 index55 alt1">
<code class="plain plain">Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.</code>
</div>
<div class="line number57 index56 alt2">
</div>
<div class="line number58 index57 alt1">
<code class="plain plain">***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.</code>
</div>
<div class="line number59 index58 alt2">
</div>
<div class="line number60 index59 alt1">
<code class="plain plain">To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:</code>
</div>
<div class="line number61 index60 alt2">
</div>
<div class="line number62 index61 alt1">
<code class="plain spaces"> </code><code class="plain plain">sudo <CudaInstaller>.run -silent -driver</code>
</div>
<div class="line number63 index62 alt2">
</div>
<div class="line number64 index63 alt1">
<code class="plain plain">Logfile is /tmp/cuda_install_6388.log </code>
</div>
<div class="line number65 index64 alt2">
<code class="plain plain"># ***安装完成***</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>配置CUDA相关环境变量 </strong></p>
<p>
修改~/.bashrc文件(或~/.zhsrc) 在文件末尾添加环境变量</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_747552">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">Tensorflow官方安装历程要求注意的是:配置PATH和LD_LIBRARY_PATH和CUDA_HOME环境变量.</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">vim ~/.bashrc #修改配置文件(如果你用的是zsh,则需要修改 ~/.zshrc文件)</code>
</div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">#在文件结尾处添加</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64</code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">export PATH=$PATH:/usr/local/cuda/bin</code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">export CUDA_HOME=$CUDA_HOME:/usr/local/cuda</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
利用同样的方法下载你想安装的另一个版本的cuda工具包(注意是runfile类型),在安装过程中,注意cuda symbol link的选择(首次安装,选y,安装额外的版本,选n)</p>
<p>
<span><strong>2、cuda多个版本的切换</strong></span></p>
<p>
在安装了多个cuda版本后,可以在<code>/usr/local/</code>目录下查看自己安装的cuda版本,如下图所示:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="ubuntu安装多个版本的CUDA并随时切换" alt="ubuntu安装多个版本的CUDA并随时切换" src="https://zhuji.jb51.net/uploads/img/202305/5fdec116a4d9c889bb73bf16d9329496.jpg"></p>
<p>
这里,cuda-9.0和cuda-9.1就是我们安装的两个cuda版本了,而cuda是一个软链接,它指向我们指定的cuda版本(注意上面在设置环境变量时,使用的是cuda,而不是cuda-9.0和cuda-9.1,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值)</p>
<p>
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本,如下所示:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="ubuntu安装多个版本的CUDA并随时切换" alt="ubuntu安装多个版本的CUDA并随时切换" src="https://zhuji.jb51.net/uploads/img/202305/90531278d89e535afa184ad5edcf0e19.jpg"></p>
<p>
可以看到,文件类型是symbolic link,而指向的目录正是<code>/usr/local/cuda-9.0</code>,当我们想使用cuda-9.1版本时,只需要删除该软链接,然后重新建立指向cuda-9.1版本的软链接即可(注意名称还是cuda,因为要与<code>bashrc</code>文件里设置的保持一致)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_856210">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">rm</code> <code class="bash plain">-rf cuda</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/cuda-9</code><code class="bash plain">.1 </code><code class="bash plain">/usr/local/cuda</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
想切换其他版本的cuda,只需要改动建立软链接时cdua的正确路径即可</p>
<p>
到此这篇关于ubuntu安装多个版本的CUDA并随时切换的文章就介绍到这了,更多相关ubuntu安装多个版本CUDA内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!</p>
<p>
原文链接:https://blog.csdn.net/ksws0292756/article/details/80120561</p>
頁:
[1]