Windows 10にCUDA 8.0 RCとChainerをインストール

Windows10でCUDAとChainerをインストールしたので、その時の設定などをメモしておく。

環境

インストールしたOS、ビデオカードは以下の通り。

  • Windows 10 64bit
  • GeForce GTX 1060

インストールしたソフトウェア

  • Visual Studio Community 2015 with Update 1
  • CUDA Toolkit 8.0 RC (8.0.27)
  • Anaconda3 4.1.1 (Python 3.5)
  • Chainer 1.13.0

Visual Studio Community 2015 with Update 1のインストール

CUDA 8.0.27はVS2015 Update 3に対応していないらしく、CUDA Samplesがビルドできなかったので、Update 1をインストールした。ビルドエラーによるとCUDA SamplesがUpdate 2以上に対応していないらしい。

以下のVisual Studio Community 2015のISOファイルからCustomでインストールして、Update 3のチェックははずしておく。

http://download.microsoft.com/download/4/C/1/4C113E0D-8590-47AB-B7B8-E41E0AD7936D/vs2015.1.vsu.iso

CUDA Toolkit 8.0 RCのインストール

以下のURLからWindows 10用のCUDA Toolkit 8.0 RCをダウンロードする。

https://developer.nvidia.com/cuda-toolkit

Geforce GTX 1060はまだサポートされていないらしく、インストール時に警告が出るがそのままインストールを続行する。別途最新のドライバをインストールしておいたので、ドライバのインストールはチェックをはずしておいた。

cuDNN v5のインストール

以下のURLからCUDA 8.0RC用のcuDNNをダウンロードする。

https://developer.nvidia.com/cudnn

自分がインストールしたときはv5が最新だったが、先ほど確認したらv5.1も出ていた。

展開したらできたcudaフォルダを以下の場所にコピー。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

Anaconda3 4.1.1 (Python 3.5)のインストール

以下のURLからPython 3.5のAnaconda3 64bit用をダウンロードしてインストールする。

https://www.continuum.io/downloads#_windows

Chainer 1.13.0のインストール

Chainerをインストールする前に、環境変数を設定する。pipでインストールするさいに、コンパイラが必要になるので、環境変数PATHに以下のパスを追加する。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

環境変数INCLUDEに以下のパスを追加する。

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

追加しないと、chainerからgpuを使用したときにcorecrt.hが見つからなくてエラーになる。C:\Program Files (x86)\Windows Kits\10\Includeの中にいくつかのバージョンがあるみたいなので一番新しそうなのを指定しておいた。

コマンドプロンプトからpipでchainerをインストールする。

pip install chainer

動作確認

chainerのMNISTのサンプルでGPUとCPUで動作確認してみた。コマンドプロンプトでエスケープが効かないらしく表示が乱れるがGPUありなしともに動作には問題なさそうだった。

実行時のログから、GPU(GTX 1060)の場合は161.74 iters/secで、CPU(Core i5 6600)の場合は21.541 iters/secだったので、GPUがCPUと比較して約7.5倍の計算速度だったことになる。

まとめ

これでWindows 10上でDeep Learningを実行できる環境が構築できたので、まずはいろいろなサンプルを動かしてみたいと思う。また、他のDeep Learning用のライブラリもWindows 10で動きそうなものがあれば試してみたいと思う。

Pythonで録音

まずは Unofficial Windows Binaries for Python Extension Packages からPyAudio‑0.2.8‑cp34‑none‑win_amd64.whl をダウンロードしてpipコマンドでインストールする。

PyAudioを使った録音のサンプルコードは以下の通り。Surface Pro 3を使用して録音してみると、ステレオマイクが内蔵されているのでステレオで録音することができた。

import pyaudio
import matplotlib.pyplot as plt
import numpy as np

pa = pyaudio.PyAudio()

format = pyaudio.paInt16
channels = 2
rate = 16000
frames = 1600
duration = 5.0

stream = pa.open(format=format, channels=channels, rate=rate, input=True,
                 frames_per_buffer=frames)
print('start recording')

data = []
for i in range(0, int(rate / frames * duration)):
    buf = stream.read(frames)
    data.append(np.frombuffer(buf, dtype='int16').reshape((frames,channels)) / float(2**15))

stream.close()
pa.terminate()

print('stop recording')

x = np.concatenate(data)

for i in range(channels):
    plt.subplot(channels, 1, i + 1)
    plt.plot(x[:,i])
    plt.ylim(-1.0, 1.0)
plt.show()

input()

上記のコードを実行して適当に喋ってみると図のような波形が録音できた。

録音サンプルコード実行例
録音サンプルコード実行例

numpyとscipyとmatplotlibのインストール

まずは、単純にpipでインストールしてみる。コマンドプロンプトから以下のコマンドを実行する。

> pip install numpy

そうすると、error: Microsoft Visual C++ 10.0 is required とエラーが出た。Linux環境だと普通gccなどコンパイル環境がインストールされているので問題ないが、Windowsだと普通はコンパイル環境はインストールされてないからね。Visual Studioをインストールして解決する方法もあるかもしれないが、ここはコンパイルしなくて済む方法を試してみよう。

pipでインストールできるWindows用のバイナリのパッケージを非公式ながら公開しているサイトがあるので、そこのパッケージを試してみることにした。

Unofficial Windows Binaries for Python Extension Packages

上記のサイトから numpy-1.9.2rc1+mkl-cp34-none-win_amd64.whl をダウンロードして、以下のコマンドを実行する。

>pip install numpy-1.9.2rc1+mkl-cp34-none-win_amd64.whl

今度は無事にインストールできたようだ。PythonのGUIのインタープリターのIDLEから以下のように入力して実行してみると無事にインポートできているので、インストールできているようだ。

>>> import numpy

次はscipyも同じように、さっきのサイトから scipy-0.15.1-cp34-none-win_amd64.whl をダウンロードしてきて以下のコマンドを実行するとインストールできた。

>pip install scipy-0.15.1-cp34-none-win_amd64.whl

最後にmatplotlibも matplotlib‑1.4.3‑cp34‑none‑win_amd64.whl をダウンロードして以下のコマンドを実行すると、matplotlibが依存しているパッケージ(pyparsing、pytz、six、pytz、python-dateutil)が自動的にダウンロードされてインストールされる。

>pip install "Downloads\matplotlib-1.4.3-cp34-none-win_amd64.whl

 

WindowsにPython 3.x環境を構築

今回はPython 3.xをインストールしてnumpyやmatplotlibをWindowsで使えるようにしようと思う。仕事でもPythonを使っていて、できれば最新のものを使いたかったが、2.xと比較して3.xではいろいろと仕様が変更されているところがあるらしいので敬遠していたからだ。

まずは公式サイトからPython本体をダウンロードしてインストールする。使用している環境がWindows 8.1 64bitなので、以下のURLからPython 3.4.3 64bit版をダウンロードしてインストールする。後々のパッケージのインストールのしやすさを考えると、Windowsが64bitでも32bit版のPythonをインストールしておいたほうがいいかもしれない。しかし、ここは敢えて64bit版を選択する。

https://www.python.org/

Pythonにはいろいろなパッケージがあるが、pipを使うと簡単にインストールできる。pipは上記のインストーラでPythonをインストールすると一緒にインストールされる。次はpipでnumpyとscipyとmatplotlibをインストールしてみよう。