やってみよう分析！Appendix A-1：Windows 7 Professional + Visual Studio Express 2013にCUDA6.5をインストール

#はじめに

今回も始まりました。[やってみよう分析！シリーズ](http://qiita.com/f81@github/items/78c0855408317e83aa66)

__Appendix A-1__では、__GPU__(Graphics Processing Unit)計算を実行するための __CUDA6.5__ドライバーを __Windows 7 Professional__ + __Visual Studio  Express 2013__の環境上にインストールする方法を簡単に紹介します。インストール後、サンプルコードを実行して __Mandelbrot集合__を描画させてみましょう。

__GPUについての紹介はこちらの[サイト](http://www.gdep.jp/page/view/248)を参照ください。__

ここで紹介したインストールプロセスを実行したマシン環境は 

* __Windos 7 Professional 64bit__
* __GeForce GTX 650__
 
です。

##Visual Studio Express 2013をインストール
Visual Studio  Express 2013は __VisualBasic, VisualC++, C#__を開発するための環境で、無償で使うことができます。
Visual Studio  Express 2013はマイクロソフトの[サイト](http://www.microsoft.com/ja-jp/dev/default.aspx)からダウンロードできます。

![fig01.png](https://qiita-image-store.s3.amazonaws.com/0/40982/e0b78ad7-9cff-098d-818c-e3922d2940aa.png)

途中でMicrosoftのアカウントにサインインすることを要求されるので、アカウントを予め作成しておきます。

![fig02.png](https://qiita-image-store.s3.amazonaws.com/0/40982/7f5be6f5-e54b-777d-a561-a4d2998e558a.png)

サインインするとダウンロード画面に遷移します。ここでは __for Windows Desktop__を選択することにします。

![fig03.png](https://qiita-image-store.s3.amazonaws.com/0/40982/dc121986-b536-d56e-9f9d-642a3b7007a2.png)

ダウンロードされるファイルを実行するとインストールが開始されます。あとはインストールが完了するまで待つだけです。インストールが完了したら次はCUDA6.5のインストールを行います(Visual Studio　Express 2013のインストールが完了し再起動を要求されたら、一度再起動します)。

##CUDA6.5をインストール
__NVIDIA__の[CUDA zone](https://developer.nvidia.com/cuda-zone)の[このページ](https://developer.nvidia.com/cuda-downloads)から __CUDA6.5(2014/08/21時点最新)__をダウンロードします。自分はデスクトップのWindows 7 64bitを使用しているのでそれに対応するファイルをダウンロードしました。ファイル容量が大きいのでダウンロードが完了するまでしばらく待ちます。

![fig04.png](https://qiita-image-store.s3.amazonaws.com/0/40982/030f3a12-3747-0478-4992-38a694c27a8a.png)

ダウンロードしたファイルを実行するとインストールが開始します。途中全てOKして進み, インストールを要求されるドライバもインストールします。

インストールが完了したらVisual StudioからCUDAを使えるように下記の操作を行います(PC環境によって下記のフォルダ場所は適当に読み替えてください）。

`C:\Program Files (x86)\MSBuild\12.0` に
`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\extras\visual_studio_integration\MSBuildExtensions`

にあるファイル(下記)すべてをコピペします。

* CUDA 6.5.props
* CUDA 6.5.targets
* CUDA 6.5.xml
* Nvda.Build.CudaTasks.v6.5.dll

##Sample Codeを実行してみる
それではサンプルコード(Mandelbrot集合の描画)を実行してみましょう。下記フォルダのMandelbrotフォルダをコピーして複製し適当に名前をつけます(ここではMandelbrotCopy)。
`C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.5\2_Graphics`

![fig05.png](https://qiita-image-store.s3.amazonaws.com/0/40982/c53ba3a2-cb53-cbf3-10f3-a0821c932584.png)

MandelbrotCopy内の`Mandelbrot_vs2013.vcxproj`を起動させます。

![fig06.png](https://qiita-image-store.s3.amazonaws.com/0/40982/9357a8ba-d774-6601-f67c-36a32699ffe9.png)

Visual Stusioが立ち上がると必要なインクルードファイルがインポートされます。起動したらVisual Stusioの __ビルドタブ__の __ソリューションのビルド__を実行します。ビルドが問題なく完了したら、__デバッグタブ__の __デバッグなしで開始__を実行します。これでMandelbrot集合が表示されます。

![fig07.png](https://qiita-image-store.s3.amazonaws.com/0/40982/bde4a57c-241f-d515-ab51-a3d1d5fa01b6.png)

##新規ファイルのビルドについて

Visual Studio 2013を使って新規ファイルを作る場合、CUDA6.5をインストールすると付随してくる`C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.5\0_Simple`内のサンプルコードを活用すると便利です(アドレスは筆者の環境でのもの)。というのも、完全に新規からファイルを作るにはVisual Stuadio 2013上で様々なインクルードファイルやライブラリにパスを通さなければならず、その作業が面倒だからです。サンプルコードには既にCUDAを使うための設定がされているので、この設定を簡略化することができます。

`0_Simple`の中には`template`フォルダが存在します。これをコピーして`template.cu`ファイルを書き換えて使うと便利です。

===========================================

##こちらもよろしくおねがいいたします。

* [目次](http://qiita.com/f81@github/items/78c0855408317e83aa66)

###入門編

###第1部イントロダクション
* [第1章：分析技術の活用～ビジネス視点から～](http://qiita.com/msano/items/2f39517b4cd65e14003e)
* [第2章：分析手法を眺めてみよう！](http://qiita.com/msano/items/bfdb3c04d59992c7ebcb)

###第2部エクセルで学ぶ分析入門 
* [第3章：ExcelとMySQLの連携](http://qiita.com/msano/items/fdcc0cbb8e41b988ce2d)
* [第4章：ExcelとMySQLの連携2 csvデータのimport ](http://qiita.com/msano/items/7dff8bc241799875b7e9)
* [第5章：Excelの分析ツールとソルバーの活用(回帰、最小2乗法)](http://qiita.com/msano/items/dc96da37ce8ddd4a7c1d)
* [第6章：Excelソルバーの応用(ポートフォリオ最適化)](http://qiita.com/msano/items/46d92aadbfcb1423e1ec)
* [おまけ 2 - 1： Excel VBAで強化学習(Q-learning, ε-greedy / softmax 行動選択)](http://qiita.com/msano/items/e2df51f514b3ccb375ea)

###第3部 データ可視化（ビッグデータに限らない）
* [第7章：Google Charts Sankey Diagramを使ってデータ可視化](http://qiita.com/msano/items/6c3d9d10148a683c0d7b)

==================
# お知らせ：Fringe81エンジニアチームでは仲間を募集しています！
　<img src="http://www.fringe81.com/images/common/logo_fringe81.png" border="0"><br>
　チームの雰囲気や採用情報については下記ページをご覧下さい。<br>

- [Fringe81エンジニアチームのページ](http://www.fringe81.com/tech.html)
- [採用情報ページ](http://www.fringe81.com/recruit/)