2016-02-17

word2vec_cbow を Windows で実行する

word2vec_cbow を Visual Studio 2013 でビルドして、Windows 上で実行してみた。

プロジェクトを作成する手順は次のとおり。
  1. Visual Studio 2013 で CUDA 7.5 Runtime プロジェクトを作成する。
  2. https://github.com/ChenglongChen/word2vec_cbow から word2vec.cu と cbow.cu の2つのファイルをダウンロードして、プロジェクトのフォルダに入れる。
  3. https://github.com/zhangyafeikimi/word2vec-win32 から win32-port.h ファイルをダウンロードして、プロジェクトのフォルダに入れる。
  4. word2vec.cu を開いて、#include <pthread .h> を #include "win32-port.h" に変更する。
  5. プロジェクトに word2vec.cu を追加する。
私の実行環境は Geforce GTX 970 なので、[Configuration Properties]-[CUDA C/C++]-[Device]-[Code Generation] に「compute_52,sm_52」を指定した。

[Solution Platforms] は「x64」でビルドした。

実行結果は次のとおり。

>word2vec_cbow.exe -train text8 -output vectors.bin -cbow 1 -size 200 -window 7 -negative 1 -hs 1 -sample 1e-3 -threads 1 -binary 1 -save-vocab voc
Starting training using file text8
Vocab size: 71290
Words in train file: 16718843
vocab size = 71290
Alpha: 0.000009  Progress: 99.99%  Words/thread/sec: 1528.12k

実行中の GPU の負荷は 50%程度だった。

なお、処理結果が正しいかどうかは確認していないので、注意されたい。