PyCUDAをWindows7にインストール

PyCUDAをWindows7にインストール

PythonのCUDAラッパー(?)のPyCUDAをWindowsにインストールしました。
公式のサイトからWindowsのインストールページも消え、非推奨環境かもしれませんが、Windowsを使わざるを得ないので、なんとかインストールからサンプル実行までしました。

0. Pythonその他環境のインストール

Pythonは2.7 64bitを使用しています。Anacondaを使用しているため、もしかすると公式Pythonだと違いがあるかもしれません。このへんは特別なことをしていないので、割愛します。

1. CUDA6.5のインストール

普通にインストールします。必要なPATHは設定してください。

2. PyCUDAのインストール

アンオフィシャルWindows PythonライブラリからPyCUDAをインストールします。
このライブラリがどのように作られているのか、理解できてないのですが、利用させてもらいます。

3. Visual Studio 2012 Expressをインストール

コンパイラが必要になるので、インストールします。

4. Visual Studio 2012 Expressの互換性問題のパッチをインストール

【参照】Visual Studio 2012 で「プログラム互換性アシスタント」ダイアログが表示される
http://blogs.msdn.com/b/jpvsblog/archive/2013/09/17/visual-studio-2012-compatibility-assistant-dialog.aspx

5. コンパイラのパスを通す

環境に応じて、PATHに「C:\Program Files\Microsoft Visual Studio 11.0\VC\bin」を追加

6. 64bitコンパイラの設定

64bit環境では64bit用のコンパイラが必要ですが、Visual Studio 2012には32bit,64bitクロスコンパイラしかない(?)ので、x86_amd64をコピーして、amd64とします。さらになかにあるvcvarsx86_amd64.batをvcvarsamd64.batにリネームします。

7. compiler.pyの修正

これで動くと思ったのですが、動きません。Windows環境(泣)。。。
ファイルの場所を忘れてしまいましたが、compiler.pyがUnicodeEncodeErrorを吐きます。ですので、
251行目辺りに、下記の記述を追加します。

# custom added
if options is not None:
    options.extend(["-Xcompiler","/wd 4819"])
else:
    options = ["-Xcompiler","/wd 4819"]
# custom added end

8. サンプルコード実行

これで動くはずです。