LoginSignup
30
23

More than 3 years have passed since last update.

異なるバージョンのCUDAを使い分ける単純な方法

Last updated at Posted at 2019-12-20

前記事(https://qiita.com/takeajioka/items/429451db33051da83e54 ) では、UbuntuでのDeep Learning環境の構築方法について書きましたが、CUDAは使いたいソフトに応じてバージョンが違います。
使い分けたい場面として、例えばtensorflowのバージョンが違うと対応するCUDAが違うことがあります。
そうなると、複数のソフトを使用する場合には複数のCUDAが必要になります。
もちろんDockerを使用する方法がありますが、いちいち仮想環境を設定・管理するのは面倒です。
もっと単純な方法は無いのでしょうか。

解決方法

やり方は単純で複数のバージョンのCUDAそれぞれをインストールして、それぞれにパスを通しただけです。
インストールするときは、シンボリックリンクは作成しません
パスを通すのは.bashrcの最初の部分に以下のように追加します。

export PATH="/usr/local/cuda-8.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-10.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"

こうすることで使い分けて、使用することができました。
複数のバージョンのtensorflow-gpuを使っても特にエラーになりませんでした。
tensorflowが勝手に対応したCUDAを使用するようです。

cuDNNの複数バージョンの使用方法

cuDNNの場合は、CUDAのバージョンが違う場合は違うフォルダに入るため複数のインストールができるようです。
またcuDNN7と6など、メジャーバージョン違う場合も複数の使い分けができるようです。
使い分けられない例として、同じCUDAバージョンでcuDNNのメジャーバージョンも同じ場合です。
例えばCUDA9.0のcuDNN7.3.1と7.1.4です。
この場合は、逐次使いたい方のcuDNNをインストールして上書きすれば使えるようになります。
そのため、そこまで手間ではありません。

30
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
23