zoukankan      html  css  js  c++  java
  • 机器安装不同版本的cuda

    之前的直观感觉是,一台机器一旦安装完一个版本的cuda之后,比如cuda8或者cuda10,基本上就固定了,如果我想run别人的代码的话,需要在不同的机器上进行切换,是一件很麻烦的事情
    实际上一台机器可以安装不同版本的cuda,软件在用cuda 的时候回从系统变量中寻找cuda的路径,所以只需要更改~/.bashrc中的变量值
    但是针对一个用户而言,run不同的代码频繁地更改.bashrc中的变量显然是不可取的

    对于anaconda用户而言,我不同的虚拟环境不仅python版本不一致,a naive and intuitive question is that, can we gather python version and cuda version together?
    实际上是可以的
    用什么版本的cuda,只要是看.bashrc中的value of following variable

    export CUDA_HOME=/usr/local/cuda-10.0
    export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:"$LD_LIBRARY_PATH:/usr/loacl/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
    export PATH=/usr/local/cuda-10.0/bin:$PATH
    

    所以,如果在激活虚拟环境的时候,重新输入上面的变量,并且只在虚拟环境中有效的话,这样就能够在虚拟环境中使用特定的cuda
    如下图

    test_cuda是我创建的虚拟环境,在如上的虚拟环境中的两个文件夹的两个文件,其中activate.sh输入的内容为

    ORIGINAL_CUDA_HOME=$CUDA_HOME
    ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
    ORIGINAL_PATH=$PATH
    export CUDA_HOME=/usr/local/cuda-9.0
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:"$LD_LIBRARY_PATH:/usr/loacl/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
    export PATH=/usr/local/cuda-9.0/bin:$PATH
    

    deactivate.sh输入的内容为

    export CUDA_HOME=$ORIGINAL_CUDA_HOME
    export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH
    export PATH=/usr/local/cuda-10.0/bin:$PATH
    
    unset ORIGINAL_CUDA_HOME
    unset ORIGINAL_LD_LIBRARY_PATH 
    

    意思就是把原来的变量备份一下,当激活虚拟环境的时候,export我需要的cuda版本,然后deactivate的时候,再把原来的$CUDA_HOME等变量变为原来的值
    测试了一下,确实好使

  • 相关阅读:
    使用pthread_create时参数的传递
    借用 Google 构建自己的搜索系统
    编辑Servlet程序
    线程简单介绍
    Apache Tomcat服务器配置基础
    win2000server IIS和tomcat5多站点配置
    COmega 概述
    用Flash制作Google搜索程序
    浅析.Net下的多线程编程
    Mozilla宣布XForms开发项目 XForms是什么?它带来了什么?
  • 原文地址:https://www.cnblogs.com/yongjieShi/p/12342495.html
Copyright © 2011-2022 走看看