17
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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

前記事(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をインストールして上書きすれば使えるようになります。
そのため、そこまで手間ではありません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
17
Help us understand the problem. What are the problem?