TensorFlow 1系(GPU版)のためにCUDA 10.0をインストール

TensorFlow 1系(GPU版)のためにCUDA 10.0をインストール サーバー

「TensorFlow 1系(GPU版)をインストールできない!」

比較的新しいPCであれば、あるあるの事象でしょう。
これには、CUDAのバージョンが大きく影響しています。

本記事の内容

  • 旧バージョンのCUDA 10.0をインストールする理由
  • CUDA 10.0のシステム要件
  • CUDA 10.0のダウンロード
  • CUDA 10.0のインストール
  • CUDA 10.0の動作確認

それでは、上記に沿って解説していきます。

旧バージョンのCUDA 10.0をインストールする理由

大前提として、TensorFlowやPytorchではGPUを使います。
GPUを利用せずCPUだけで機械学習を行うと、時間を無駄にします。

そして、GPUを利用するためにCUDAが必須です。
CUDAも定期的にバージョンアップしています。

このCUDAのバージョンアップが、問題となるのです。
まず、以下の表を見てください。

上の表は、公式より取得した情報です。
https://www.tensorflow.org/install/source_windows#tested_build_configurations

「テスト済みのビルド構成」と公式では記載されています。
でも、基本的にはこの構成にしないと動かないと考えてもいいでしょう。

現状では、まだまだCUDA 10.0に依存している機械学習のコードが多いです。
例えば、TensorFlow 1.14.0はCUDA 10.1では動きません。
このTensorFlow 1.14.0を利用しているライブラリ・コードが、多いのですよね。

TensorFlow 1.14.0でGPUを利用することを考えると、どうしてもCUDA 10.0は無視できません。
おそらく、これはTensorFlowだけではなく、Pytorchでもあり得ることでしょう。

以上より、2018年にリリースされたCUDA 10.0をインストールする必要があるのです。
そうすれば、TensorFlow 1.14.0をGPUで動かすことが可能です。

なお、2021年1月時点では、11.2.0がCUDAの最新バージョンとなります。

CUDA 10.0のシステム要件

今回は、Windowsが対象となります。
CUDA 10.0が対応しているWindowsのバージョンは、以下。

  • Windows 10
  • Windows 8.1
  • Windows 7
  • Windows Server 2016
  • Windows Server 2012 R2

OSに関しては、特に問題ないでしょう。
問題は、Visual Studioのバージョンです。

正確には、コンパイラになるのでしょうけどね。
CUDA 10.0が対応しているのは、下記のバージョンのVisual Studioとなります。

コンパイラIDE(Visual Studio)
Visual C++ 15.0 and 15.7Visual Studio 2017
Visual C++ 14.0Visual Studio 2015
Visual C++ 14.0Visual Studio Community 2015
Visual C++ 12.0Visual Studio 2013
Visual C++ 11.0Visual Studio 2012

ただし、最新バージョンのVisual Studioは、2019です。
では、CUDA 10.0のために古いVisual Studioをインストールしなければならないのでしょうか?

いいえ、その必要はありません。
Visual Studio 2019は、Visual Studio 2017とVisual Studio 2015と互換性があります。

Visual Studio 2019、2017、2015における互換性に関しては以下のページが参考となります。
https://docs.microsoft.com/ja-jp/cpp/porting/binary-compat-2015-2017?view=msvc-160

なお、私の環境ではすでにVisual Studio 2019がインストール済みです。
Visual Studio 2019のインストールに関しては、以下の記事で解説しています。

CUDA 10.0のダウンロード

CUDAアーカイブ公式
https://developer.nvidia.com/cuda-toolkit-archive

上記ページにアクセスします。
アクセスした先のページには、以下のようなリンク一覧があります。

この中から、CUDA 10.0のバージョンへのリンクをクリック。
遷移したページには、以下のような項目が表示されています。

ここでは、CUDAをインストールするマシンの情報を入力していきます。

「Operating System」は、「Windows」を選択。
「Version」は、Windows 10であるため「10」を選択。
「Installer Type」は、「exe[network]」を選択。

上記を選択していくと、以下の表示が現れます。

「Download[17.2MB]」ボタンをクリックすると、ダウンロードが始まります。
保存場所は、適当な場所で構いません。

以上にて、CUDA 10.0のダウンロードが完了です。
次に、このダウンロードしたファイルをもとにCUDAのインストールを行います。

CUDA 10.0のインストール

ダウンロードした「cuda_10.0.130_win10_network.exe」を実行します。
インストール処理の作業を行うフォルダの指定です。

一時的な作業場所であるため、どこを選択しても問題ありません。
ただし、すでに存在しているフォルダを選ぶとエラーとなります。

「OK」ボタンをクリックすると、以下の画面まで一気に進んでいきます。

しばらく待たされます。
5分ぐらいは待たされました。

そのあと、「NVIDIAソフトウェア使用許諾契約書」画面に切り替わります。

もちろん、許諾するので「同意して継続する」ボタンを選択。
「インストールオプション」の選択画面に切り替わります。

ここは注意すべきポイントです。

「高速(推奨)」を選ぶと、すべて上書きされてしまいます。
CUDA 10.0より下のバージョンなら、上書きされてもそれほど問題はないでしょう。

しかし、CUDA 10.1以上のCUDAをインストール済みなら、上書きはされたくありません。
その場合は、「カスタム(詳細)」を選択します。

なお、CUDAのインストール状況はシステム環境変数を見ればわかります。
システム環境変数の確認方法に関しては、次の記事内で解説しています。

ちなみに、私の環境では以下です。

PCを購入した時期的に、CUDA 10.0はインストールする必要がなかったということです。
今回は、「カスタム(詳細)」を選択して、「次へ」ボタンをクリックします。

ここでも注意が必要です。
上記のように「CUDA」だけにチェックを入れます。

デフォルトでは、以下の二つにもチェックが入っています。

  • Driver components
  • Other components

今回の場合は、上記二つのチェックを外します。
この状態にして、「次へ」ボタンをクリック。

ここでは何も変更せずに、「次へ」ボタンをクリック。

サポート対象の「Visual Studio」が、インストールされていないこに対する警告みたいなモノです。
Visual Studioのバージョンに関しては、CUDA 10.0のシステム要件のところで解説しています。
それを理解してインストールを進めるので、チェックして「NEXT」ボタンをクリック。

処理が終わると、以下の画面に切り替わります。
ここでも、Visual Studioのバージョンがサポート対象外ということについて記載されています。

「次へ」ボタンをクリック。
コンポーネントのインストール状況が表示されます。

「閉じる」を押して終わります。
以上、CUDA 10.0のインストールの完了です。

CUDA 10.0の動作確認

最初にシステム環境変数を確認します。

「CUDA_PATH_V10_0」が、新たに追加されています。
これはこれでOKです。

ただ、「CUDA_PATH」の値が変更しています。
これは変更前の「v10.1」に戻しておきます。

cuDNNは、TensorFlow 1系(1.12.0だけ例外)とTensorFlow 2系とで同じモノを利用します。
そのため、CUDA_PATHにインストール済みのcuDNNをそのまま利用する形を取ります。

あと、もう一つの確認方法があります。
まず、コマンドプロンプトを起動。

起動したら、「where nvcc」と入力して実行します。

新たにインストールしたCUDA 10.0のパスが、存在しています。
このCUDA 10.0のexeを実行してみます。

大丈夫そうですね。
以上、CUDA 10.0の動作確認でした。

タイトルとURLをコピーしました