CUDAサンプルコードのコンパイル/エラーが出た
CUDAをインストールしたので、さっそくsampleコードをコンパイルしてみる。
対象はGPGPU界隈ではおなじみ(らしい)の、nbodyである。
が、MSB6003なるエラーコードが出てコンパイルが通らない。
プロジェクト単位じゃなくて、ソース単位でコンパイルしても通らない。
CUDAを使う - インストール(Windows編):tech.ckme.co.jp を参考に、パスを張りなおしても通らない。
MSB6003のエラー原因も良くわからない。
Visual Studio community 2015をインストールした後、CUDA toolkit 8.0をインストールしたところ、上記エラーが発生。何が原因かわからないので、とりあえずVS自体にエラーが無いか、空のプロジェクトを作成してhello,worldでも書いて確認しようとしたところ、visual studioの空のプロジェクトが作れないことが判明した。
具体的には、
こんな感じの画面で右下okを押し、作成しようとしても、一瞬ウィンドウが消えたあと、同じ画面に戻っているという症状だった。
他、いくつか試してみるも、インストール済とされているプロジェクトが全体的に作成できない事が判明。
その過程で、
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates
内のフォルダが異様に少ないのに気づく。 テンプレートがぶっ壊れてるのだろう。
を参考に修復を実行したり、visual studioのインストーラから修復をかけたりしてもどうにもならない。
ので、結局再インストールをするに至る。
vsを再インストールからのCUDA toolkit 8.0のインストールで、結構時間がかかるのが嫌らしい。
が、再インストール後は問題なくhello,worldを空のプロジェクトから作成できたし、nbodyもコンパイル出来た。
おそらくはVS側のインストールがうまくいっていなかったのだろう。
これで一件落着である。
結構動きは遅い。リアルタイムでやっているのだし仕方ないが。
・・・ただ一つ解せないのは、再インストールに至るまでの過程で環境変数は結局元に戻しているので、両方インストールしただけで全部済んでいる点である。
インストールの過程でよくわからんプロセスを経てリンクが張られているのか、環境変数に加えた変更を俺が見逃しているのか、訳が分からないが、まぁ、いいや。
・・・どなたか詳しい方居たら教えてください。
中の人は研究室にあったレガシィコードで動くFortranをチマチマ弄った経験しかないのです。
P.S.
Surface用バッテリが本日到着。
梱包が微妙で、中身もなんか擦れた感があり、新品なのか微妙な感じである。
バッテリを繋いで充放電の履歴を見てみて、仮に新品でないならopencase待ったなしである。