GPU学習時に発生するエラーについて(Windows10)

5,174 views
Skip to first unread message

Yuu Ishii

unread,
Dec 2, 2015, 6:21:39 AM12/2/15
to Chainer User Group
初めまして,石井と申します.

大学の研究関連で深層学習に手を出すことになり,目下勉強中の人間です.
機械系の出身であり,エラーが発生した際の対処法が全く分からず困っています.

本日はGPUを使って学習をさせる場合に発生するエラーについて,どのように対処していいのかわからなくなったため書き込ませて頂きました.
拙い文章が長く続き,大変読みにくいとは思いますが是非ともお力添えを頂けると幸いです.

以下の環境で行っております.
[CPU] Intel corei7-5930K 3.50GHz
[メモリ] 32GB
[マザー] X99-S01
[GPU] NVIDIA GeForce GTX980Ti 6GB
[OS] Windows10 64bit


まず,現在,CPUのみでの学習についてですが,
以下はChainerのmnistのサンプルプログラムを回した結果です.

C:\Users\xxxx\chainer\testChainer>python .\chainer\examples\mnist\train_mnist.py
load MNIST dataset
epoch 1
graph generated
train mean loss=0.190139177746, accuracy=0.942383337021
test  mean loss=0.107375737154, accuracy=0.965900007486
~省略~
epoch 20
train mean loss=0.00666722960718, accuracy=0.99805000186
test  mean loss=0.0916833232285, accuracy=0.984200006723
save the model
save the optimizer

epoch20まで学習しており,CPUのみでの学習はうまく行っているものと思っております.

しかし,GPUを使った学習を行うと,

C:\Users\xxxx\chainer\testChainer>python .\chainer\examples\mnist\train_mnist.py --gpu 0
load MNIST dataset
Traceback (most recent call last):
  File ".\chainer\examples\mnist\train_mnist.py", line 55, in <module>
    cuda.get_device(args.gpu).use()
  File "C:\Python27\lib\site-packages\chainer\cuda.py", line 159, in get_device
    check_cuda_available()
  File "C:\Python27\lib\site-packages\chainer\cuda.py", line 82, in check_cuda_available
    raise RuntimeError(msg)
RuntimeError: CUDA environment is not correctly set up

上記のようなエラーが発生します.
「CUDAの環境設定がおかしい」と言われているのだと思うのですが,自分としては導入できていると思うのですが,パスの設定など何かあるのでしょうか?

自分は下記サイト様に従ってChainerをインストールしました.

1:Python 2.7(64bit)をインストール
→成功

2:easy_install, pip, gitをインストール
→成功

3:.whl形式,pipを使ってnumpy(64bit)をインストール
→"numpy-1.9.3+mkl-cp27-none-win_amd64.whl"をインストール→成功

4:Chainerをpipでインストール
→h5py.hが無いというエラーが出る

5:whl形式,pipを使ってh5py(64bit)をインストール
→"h5py-2.5.0-cp27-none-win_amd64.whl"をインストール→成功

6:再度Chainerをpipでインストール
  raise ValueError, "path '%s' cannot be absolute" % pathname
    ValueError: path '/home/beam2d/github/pfnet/chainer/cupy/util.cpp' cannot be absolute
というエラーが出る.

↑を見てバージョンアップするまで様子見

7:再度Chainerをpipでインストール
→成功

8:Pythonでimport
→成功

9:CPUのみでmnist
→動作確認

10:Visual Studio 2013 Communityのインストール
→成功

11:CUDA7.5のインストール
→成功

12:GPUを使ってmnist
→上記エラー→pyCUDAなるものが必要だと気付く

13:whl形式,pipを使ってpyCUDA(64bit)をインストール
→pip install "pycuda-2015.1.3+cuda7518-cp27-none-win_amd64.whl"

14:再度GPUを使ってmnist
→上記エラー

特にシステムの環境変数にパスを通してはいません.

このような段階を踏んで現在に至ります.GPUを使っての深層学習を行いたいのですが,可能でしょうか?
このエラーの読み方,対応の仕方などありましたらお教え頂けると幸いです.

また,Windows10は未対応だとか根本的な間違いなどもありましたらお教えください.

長文失礼いたしました.何卒よろしくお願いいたします.

g.o...@gmail.com

unread,
Dec 2, 2015, 6:37:08 AM12/2/15
to Chainer User Group

pipコマンドは、エラー情報をデフォルトで隠してしまうため -vvvv をつけて実行すると状況が分かるようになるかと思います。

また、現在のChainerのバージョンではpyCUDAは不要です。


2015年12月2日水曜日 20時21分39秒 UTC+9 Yuu Ishii:

Yuu Ishii

unread,
Dec 3, 2015, 12:56:04 AM12/3/15
to Chainer User Group, g.o...@gmail.com
回答ありがとうございます.
それでは一度アンインストールしてからpipに-vvvをつけて再度インストールしてみたいと思います.
また,pyCUDAが不要との情報もありがとうございます.


2015年12月2日水曜日 20時37分08秒 UTC+9 g.o...@gmail.com:

Yuu Ishii

unread,
Dec 3, 2015, 7:06:07 AM12/3/15
to Chainer User Group
GPU環境での学習に成功いたしました.

下記サイト様を参考にいたしまして,環境変数のpathに「C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;」を追加したところ動作致しました.

大変お騒がせしました.

ついでといっては何ですが,
Please reinstall chainer after you install cudnn
と出るのでcuDNNを入れたいです.

上記サイト様では「NVIDIA GPU Computing Toolkit/」以下にコピーしただけと書いてありますが,
自分の環境下ではそのようにしても変化はありませんでした.

NDIVIAのインストールガイドを見ると,

PREREQUISITES

    CUDA 7.0 and a GPU of compute capability 3.0 or higher are required.

ALL PLATFORMS

    Extract the cuDNN archive to a directory of your choice, referred to below as <installpath>.
    Then follow the platform-specific instructions as follows.

WINDOWS

    Add <installpath> to the PATH environment variable.

    In your Visual Studio project properties, add <installpath> to the Include Directories 
    and Library Directories lists and add cudnn.lib to Linker->Input->Additional Dependencies.

とあり,ダウンロード後回答して,任意の場所(C:\ProgramData\NVIDIA GPU Computing Toolkit\)に解凍しました.
その後,環境変数のpathに「C:\ProgramData\NVIDIA GPU Computing Toolkit」を追加しました.

最後の2行は何を言っているのでしょうか?
Visual Studio 2013 Communityを使用していますが,どのように設定すればいいのかわかりません.

ご存知の方がいらっしゃいましたらお教え頂けると幸いです.何卒,よろしくお願いいたします.

Ryosuke Okuta

unread,
Dec 9, 2015, 7:47:43 AM12/9/15
to Chainer User Group
こんにちは

cuDNNのインストールは、ヘッダファイル(cudnn.h)をincludeに、ライブラリファイル(cudnn.lib)をlib\x64の中に配置したあとに、
chainerの再インストールをすることで使えるようになります。

> In your Visual Studio project properties, add <installpath> to the Include Directories 
> and Library Directories lists and add cudnn.lib to Linker->Input->Additional Dependencies.
は、Visual Studioの中でプログラムをコンパイルするときの話なので、無視して頂いて構いません。


2015年12月3日木曜日 21時06分07秒 UTC+9 Yuu Ishii:

Ryosuke Okuta

unread,
Dec 9, 2015, 9:42:48 AM12/9/15
to Chainer User Group
追記です。

cudnn64_70.dllがbinフォルダに入っていることも必要でした。


2015年12月9日水曜日 21時47分43秒 UTC+9 Ryosuke Okuta:

Yuu Ishii

unread,
Dec 10, 2015, 7:55:59 AM12/10/15
to Chainer User Group
 Ryosuke Okuta 様,

返信が遅くなり申し訳ありません.
先ほど
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
のbin,include,libにそれぞれのファイルをコピー致しました.

その結果,
Please reinstall chainer after you install cudnn
の文言は出なくなりました.

大変参考になりました.ありがとうございました.
Reply all
Reply to author
Forward
0 new messages