読者です 読者をやめる 読者になる 読者になる

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の空のプロジェクトが作れないことが判明した。

 

具体的には、

f:id:nolf3979:20170522225948p:plain

こんな感じの画面で右下okを押し、作成しようとしても、一瞬ウィンドウが消えたあと、同じ画面に戻っているという症状だった。

他、いくつか試してみるも、インストール済とされているプロジェクトが全体的に作成できない事が判明。

その過程で、

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates

内のフォルダが異様に少ないのに気づく。 テンプレートがぶっ壊れてるのだろう。

方法 : 既定のプロジェクト テンプレートを復元する

を参考に修復を実行したり、visual studioインストーラから修復をかけたりしてもどうにもならない。

 

ので、結局再インストールをするに至る。

vsを再インストールからのCUDA toolkit 8.0のインストールで、結構時間がかかるのが嫌らしい。

が、再インストール後は問題なくhello,worldを空のプロジェクトから作成できたし、nbodyもコンパイル出来た。

おそらくはVS側のインストールがうまくいっていなかったのだろう。

これで一件落着である。

f:id:nolf3979:20170522222613p:plain

結構動きは遅い。リアルタイムでやっているのだし仕方ないが。

 

・・・ただ一つ解せないのは、再インストールに至るまでの過程で環境変数は結局元に戻しているので、両方インストールしただけで全部済んでいる点である。

インストールの過程でよくわからんプロセスを経てリンクが張られているのか、環境変数に加えた変更を俺が見逃しているのか、訳が分からないが、まぁ、いいや。

 

・・・どなたか詳しい方居たら教えてください。

中の人は研究室にあったレガシィコードで動くFortranをチマチマ弄った経験しかないのです。

 

P.S.

Surface用バッテリが本日到着。

梱包が微妙で、中身もなんか擦れた感があり、新品なのか微妙な感じである。

バッテリを繋いで充放電の履歴を見てみて、仮に新品でないならopencase待ったなしである。

CUDA環境構築 / VS2017ではなくVS2015を使え

Surface用バッテリはまだ来ない。

セラーに直に「おせぇぞゴルァ」と言ったところ、「佐川で頼んだけどトラッキングナンバーこねぇから通知してなかった。メンゴメンゴ。いつもならあと5~6日でつくから待ってね」との事。

まぁヤフオクみたいなもんだし仕方ないか・・・・。

ちなみに先ほど送られてきたトラッキングナンバーは、調べてみたら「該当なし」との表示。トップセラーだから送らないなんてことはないと思うが、最悪の場合ケースオープンで返金待ったなしである。

 

ところで、就職すると常に時間に追われるもので、自分で何か勉強をしないと、タスクを消化するだけで人生が終わっていくと気づく。

自分で自分を作っていく意識が無いと人生つまんなくなるな、と思うので、興味はあったけど金と時間と自分の怠慢が許さなかった、CUDAでも始めてみようかと思う。

ラボにいたころは一応CFDおじさんをやっていたので、それなりの勘所はあるつもりだし、なんなら将来のメシの種にもなるかもしれないではないか。

 

そんな甘い期待を抱きながら、とりあえずVisual studio community 2017をインストール。そのあとに、CUDA toolkitもインストール。

www.visualstudio.com

 

developer.nvidia.com

VSの後にCUDA tool kitをインスコすると、IDEに更にCUDA用ライブラリやらヘッダやらを統合してくれるらしい。

 

そんなわけでインストールして、サンプルファイルを開いてみる。

 

が、どうも表示がおかしく、「見つかりません」とか「読み込みに失敗しました」とかばっかり出てくる。

こりゃなんじゃらほい、とあれこれ調べてみたら、どうやらCUDAのバージョンはVSのバージョンと密接に結びついており、現行のCUDA 8.0はVS2017には対応していないらしい。 

https://devtalk.nvidia.com/default/topic/978691/support-for-visual-studio-2017/

うまくやってwin10の2017でサンプルだけ走らす方法も書かれているが、ほしいのは開発環境であってサンプルを動かすことだけではないので、メンドクセェと思いつつもVS2015をインスコしてから、CUDA tool kit 8.0を再度インスコすることとする。

すでに2015はMSのトップからは取得できないようなので、アカウントをチョイチョイとやって、Visual Studio Dev Essentialsにサインインしてからダウンロード。

 

やっとこさサンプルプログラムがまともに読み込めた。

疲れた。

 

 

バッテリ購入

Aliexpress使うだのなんだの言ったけど、面倒そうなので結局ebayで買った。

どうせ中国製なのにそうする意味あるんかい、と思わなくはないが、こっちのがなんとなくカスタマーフレンドリーな気がする、というだけの理由。

 

OEM Battery P21GU9 5500mAh For Microsoft Surface Pro 1 1514 / Surface Pro 2 1601 | eBay

 

英語が問題なく使えるところで、評価高いセラーから買うのって安心だよね!

 

Li-ionバッテリだから、船便なので5/18以降着とのこと。

 

ディスプレイが破損した場合どうするかは、そもそもバッテリ繋いで動いてくれないとどうしようもないので、バッテリがちゃんと動くようになってから考えよう。

 

それまでに工具類をそろえなきゃ(使命感)

バッテリがヤバいと確信したわけ

まぁ持ち時間が短いのはともかく、バッテリの値がおかしいだけなら、ドライバ入れなおすなり出荷時の状態に戻すなりで、どうとでもなるはずだ。

が、ドライバを入れなおそうとインストールしなおそうと出荷時の状態に戻そうと症状が改善しなかったのと、Battery reportの表示内容がコレだったのがアカンと思った理由として強い。尚、出荷状態に戻した後である。

 

f:id:nolf3979:20170508214053p:plain

f:id:nolf3979:20170508214054p:plain

 

出荷時状態からすでに設計容量42000mWhのところで86000mWhとか表示されてたのです。たぶんドライバどうこうというよりは、バッテリ側が変な信号返してるんじゃないかと思った次第。

出荷時状態に戻すまでの過去のレポートも、スクショは取ってないが2014年の段階からこの値だったので、使ってた人は初期不良食らったんだろうなぁ、と思っている。バッテリの充放電回数は案外少ない125回。意外なほどすぐ捨てたのではないだろうか。一年過ぎてから気づいて、交換NGと言われてポイみたいな。

まぁ、どんな保存をされてたかは知らないが、今はもう昔の話。バッテリも30分と経たずに落ちるし、警告も出ないのでは交換するより仕方ない。

surfaceパーツ購入用メモ

・ディスプレイ

surfaceはディスプレイをひっぺがすので、ディスプレイが歪んでもおかしくない。

予備ディスプレイも検討すべき。

 

www.amazon.com

 

Aliexpressにもいくつかあるが、どうもカメラの数がデフォルトと違うものが多々ある(正面になぜか丸が三つあったり、照度センサとカメラの左右が違ってたり・・・)ので、評価のついてる米尼が安定かなって。

 

・交換用バッテリ

こっちは逆で、おそらくAliexpressのがマシに見える。

www.aliexpress.com

 

 

www.amazon.com

 

というのも、尼だとメーカー名不明だが、aliexpressだと一応サムスン製(らしい)ので。今後3年くらいは使いたいのである。

この前GALAXYで爆発事故を起こしまくっていたのは記憶に新しいが、それでも業務用で同じことは繰り返さないだろう、という希望的観測に基づいている。

 

・粘着テープ

引っぺがしたモニタとバッテリを再びくっつけるため。

iFixitでは「ひどく汚れてなきゃ残ってる粘着剤で行ける」「必要なら3Mの業務用の使っとけ」とあったが、どのくらい厚ければ(薄ければ)いいのか見当がつかない。

そんなとこでYoutubeで修理動画を漁っていると、こんな映像があった。

 

youtu.be

 

要はモニタを外してくっつけるタイプの修理だが、張られているテープに300LSEという文字が見える。

www.amazon.co.jp

http://www.mmm.co.jp/tape-adh/bonding/thin/nonbasis/low_surface/

 

これでテープも決まった。どうやら厚みは薄いほうが良いらしい。

 

後はヒートガンとトルクス、汚れ落とし用の溶剤とピックあたり。

シュリンクや熱加工はドライヤーかバーナーでこれまで済ましていたが、今回はドライヤー程度だと厳しいかもしれないので念為。ディスプレイ越しにあぶった場合、ドライヤ程度でしっかり温まるか疑問である。

中古Surfaceで地雷を踏んだ

先日、自分のノートパソコンが死にました。

DELLのXPS14(L401X)で、大学入った当時に買ったものなのでもう7年選手になります。

PCで7年となるとあちこちガタも来ており、性能も時代遅れに差し掛かっていたので、正直これ幸いと新しいマシンを探していました。

 

そんな時に見つけたのがこれ。

 

akiba-pc.watch.impress.co.jp

 

前のPCがクッソデカかったので、できれば2in1のノートがいいなーとか思いながら探していた自分には天啓でした。初任給が入った直後で浮かれていた自分は即座に飛びつき、B級品のPro2ゲット。

ホクホクながら帰宅し、Office 365 soloをブチこんだり、Fire alpacaで筆圧検知を試したりして居るときにあることに気づきました。

 

ACアダプタから外しても、バッテリ充電率が下がらないのです。

最初はバッテリもちが良いのかなーとか思ってたのですが、100%が1h続いてから、警告なしにボツンと勝手に落ちてからアレっと思い、再起動しようにも電源が入らないとこで あっ(察し)と思い、ACアダプタを付けて起動してから、バッテリ残量が0%になっていたところで確信しました。

 

バッテリがアカン奴だコレ!

 

中古の格安品だからある程度は覚悟していた(公称4.5hの中古品だし2h持てばいいかな~くらい)のですが、省電力1hでオマケにまともな容量の値が表示されないのは一寸キツい。

おまけにIOSYSでは、バッテリ関係のトラブルは全て経年劣化扱いとなり、交換も保証も不可なのです。

 

ここでのオプションは4つくらい考えました。

1.MSに交換修理を依頼する  ⇒ 交換対応で64600円? 別の新品買うわ

2.サードの業者に修理依頼する⇒ SSD交換事例のある某業者では修理で70000円前後・・・ これならMSで交換するほうが良いな

3.運が悪かったと諦めてうっぱらう ⇒ 2~3万程度の買い取り額か うーん、微妙

4.自分で修理する

 

まぁ、あれこれググってすんごいメンドクサイ選択であるのを承知の上で、4を選んでみることにしたわけです。 

 

jp.ifixit.com

 

修理性はどうやら最悪らしいですが、どうも見る限り液晶パネル外しが地獄なのがメインの理由らしいので、そこさえクリアできればいけるんじゃないかと。爆発するかもしれないけど、交換部品もaliexpressで見つかるし。

 

www.aliexpress.com

 

 

そもそも人間が組み立てたものを人間がバラせないというのは、何かがおかしい気がするし、自分で分解したことも無いんじゃ保有したことにはならない気もするのです。(謎のMaker気取り)

 

それにまぁ、こんなネタになる機会、無いでしょうから。

そんな勢いでブログ開設。適当にレポしたりしていこうと思います。