CUDA.NET利用メモ

C#で、CUDA.NETを利用してCUDAでプログラムを実行するまでに、一手間かかったので、それまでの手順で引っかかったところを中心にメモ。

利用環境

  • GeForce GTX285
  • WindowsXP Pro. SP3 (32bit)
  • VisualStudio2008 Pro.
  • ForceWare 195.62, tool-kit 2.3, SDK 2.3
  • CUDA.NET 2.3.7

前回との違い

おおまかな流れとしては、去年、GeForce8400GSとVisualStudioEEの組み合わせでやった時と同じ。

前回の導入まとめ
http://d.hatena.ne.jp/kaminarioyaji/20081130/1228027865

前回と異なった点は

CUDA.NET入手先URLが変わってた
CUDA.NET
http://www.hoopoe-cloud.com/Solutions/CUDA.NET/Default.aspx
toolkit関係の環境変数は自動的に追加された

もっとも、前回はSDKを入れてなかったのでそのせいかもしんない。

VisualStudioの設定

色分けに.cu追加

めんどくさかったので、最低限(C++)のハイライトだけはできるように、オプションでC++のファイル拡張子に*.cuを追加して終了。

下記記事の3、4の手順を踏めば、CUDAのハイライト・intellisenceが可能になるっぽい。

CUDA 1 -導入-
http://kgxpx834.blog58.fc2.com/blog-entry-6.html

CUDA.NETを使う上での設定

cl.exeのパスを環境変数に追加

パスを通してないと、ビルド時nvccがエラー-1を返す。

フルスクラッチでプロジェクトを作成する場合、さらに

*.cuファイルは、プロパティで出力先にコピーするよう指定
プロジェクトのプロパティで、ビルド後イベントにnvccのコンパイルコマンド入力
nvcc *.cu --cubin
倍精度を用いる場合は、-arch=sm_13オプション追加
nvcc *.cu --cubin -arch=sm_13

最初、このオプションの存在に気付かず、計算結果がCPUの倍精度で行った場合と合わなくて困った。

参考URL
http://d.hatena.ne.jp/pippo21/20090701/1246430783
おまけ

CUDA.NETでは、cubinを呼び出す都合、CUDAコード部分のデバッグができないので、下記のツールを使って、cubinファイルのディスアセンブルとかやっちゃうと便利かもしんない。

decuda
http://wiki.github.com/laanwj/decuda

GeForce GTX285 簡易レビュー

今研究でやっている数値解析を、GPGPUを使うことでどの程度高速化できるものなのか、おおよその目処をつけるためにGTX285を買ったので、ついでに簡易レビュー。まずは簡単なPC構成を。

  • PC: DELL Vostro420 (Core2 E8500, Mem. 2GB, WinXP Pro. SP3)
  • GPU: GIGA-BYTE GV-N285UD-1GH (GTX285, Mem. 1GB)
  • 元の電源が300Wだったので、Antec EA-500D (最大出力500W)に換装

GPGPUの選定理由としては、計算に倍精度が必要だったので、GT200アーキテクチャを選択。AMDのFireStreamは高すぎるので論外。GTXなら何でも良かったのですが、295はカード長が長すぎてケースに入りきらなかったためパス。とりあえず店頭で手頃な価格で売っていた285にしてみました。

とりあえずGPU-Zのキャプチャ。


3Dプログラミングはしたことないので、Fillrateの値を見てもさっぱりピンと来ないなのですが、たぶん速いんですよね。。。

続いて各種センサー値の簡易ログ。


このときは特に大した負荷はかけてないにも関わらず、スペックシートと見比べるとずっと定格で回ってるみたいな。低負荷時にダウンクロックするのってAMDのやつだけなんでしょうか。。。見てる限りでは温度も安定して低かったですし、実害はないので気にしないことにします。
静音性に関しては、頭上でエアコンがかかりっぱなしの部屋にいるので、あまり参考にはならないとは思いますが、ファンの音は気にならない(というか分からない)レベルでした。

GPGPUテスト

CUDAのStarting Guideに従って、とりあえずSDKの中に入っているサンプルプログラム、bandwidthTestとparticlesを試してみました。

bandwidthTest


比較対象がないので、各値に関してはノーコメント。
GPGPU内での転送速度が、GPU-CPU間に比べて2桁も違うというのが、GPGPUピーキーさをよく表してるような気がしなくもないなぁとか。

particles


とりあえず走らせてみたものの特にコメントはないです。GPGPUをされてる/される予定の方に、比較対象としてでもリファーしてもらえればよいかなぁとか。


以上、簡単ですがレビューおしまい。

今あるMSOfficeに加えてOffice2010を入れるべき1の理由

  • PowerPointのウィンドウを同時に好きなだけ並べれる

ていうか今まで、PowerPoint
これが出来なかったのが不思議なんだけど。(Excelは2010でも無理・・・)
Office2010(Technical Preview, β)から可能になってた。
最初、当たり前すぎて気づかなかったけど、
ふとしたはずみに同時にウィンドウが2個あることに気づいて感動。


自分の場合、
(基本的にデータはパワポにまとめてるので)
何個かファイルを並べて比較検討できたり、
プレゼンやポスター作る際、
過去の資料などからコピーが楽にできたりで
めっさ便利。


今Office2007使ってる人も、ぜひ2010βを入れて(共存可能)
快適プレゼンライフを!


って、ここまで書いといて、今β落とせなくなってますが…。
ま、それはそれ。

Google 日本語入力に一言言いたい

巷で話題になってるGoogle 日本語入力に関して
http://www.itmedia.co.jp/news/articles/0912/07/news099.html
とか
http://journal.mycom.co.jp/news/2009/12/08/069/
の記事とか見て、超ビッグな開発者陣と
Googleお得意のラジカルな発想の転換
もうすげーわくわくしたわけ。
IMEにわくわくするとかどうよって感じなんだけど。
いや、まぁそれはさておき


このたび遂にGoogle 日本語入力をインストールしまして
さあ使ってみよう!と勢い込んでみたわけ。


あ。話は逸れるけど、自分は普段IME ON/OFFを独立したキーに割り当ててるのね。
(変換→IME ON 、無変換→IME OFF)
こうしてるそもそもの原因は、下記記事を読んだのが発端なんだけど。
http://d.hatena.ne.jp/k12u/20070813/p1
最初これ見たときはほんと目から鱗が落ちた。
おれ、十何年間なんて無駄なキーバインドでPC使ってたんだろうって。
慣れるまで逆に効率落ちたけど、一旦慣れるとマジ快適。
閑話休題


そんなわけで、まずは、キーバインド変更しようって思ったんだけど、
Google 日本語入力の設定画面開いて唖然としたよ。


IMEのオン/オフ機能が独立して存在しない』


いや、なんか設定項目英語だし、
見落としたのかなぁとか思ったんだけど
どう探しても存在しないんだよね。


まさかと思って、
オリジナルではIMEのON/OFFが独立してる『ことえり』の設定を
インポートしてみたら、トグル機能オンリー。


いや、もうありえないから。
まじありえないから。


変換エンジンを如何に作るか、なんてどうでもいいから
IMEのON/OFFを分離できるようにしてください。
いやもうほんとお願いします。。。



とりあえずふて寝しよう。

ChromeOSの目指すところ

興味深い視点からの記事だったのでメモ。

進化するHTML 5、OS化するChrome
http://www.atmarkit.co.jp/news/analysis/200907/13/chrome.html

ChromeOSの目指すところって、単に『Chrome普及のために、Chromeが動くミニマムなOSを作る』っていうのではなくて、『HTML5の策定と合わせて、既存のOSモデルを変革する』ことかなぁ、とか妄想してみる。

Windows7RC 64bitに関するメモ

ここ一ヶ月ほど使ってみて、改良されたタスクバーとかウィンドウの挙動*1が、かなり便利だなぁと思った。なんか最初は改悪しやがって、とか思ったけど、慣れてみたらそうじゃなかった。正式版出たら即効買おう。

んで、ドライバ入れるのにヒト手間かけたやつだけ忘れないうちにメモ。

SB5.1VX

付属CDのインストーラを管理者権限で実行したら、Vista 64bit用のドライバが入って終了。ドライバ以外の付属ツールは使えなかった(個人的にはいらんけど)。現時点ではCreativeの公式サイトで7に対応したドライバを提供予定になってるから、正式版が出たときにはどうでも話いいかも。

SN9C120チップを使った、ノンブランドのWebCam

チップ製造元の公式サイトで、Vista 64bit用ドライバをダウンロードして終了。
http://www.sonix.com.tw/sonix/product.do?p=SN9C120

*1:左右端にぶつけたら画面半分のサイズになるとか、下にぶつけたら上下最大サイズに、とか

"Write in C" 超てきとうに和訳

"Let It Be" の替え歌 "Write in C" はもっと評価されるべき
http://d.hatena.ne.jp/u_1roh/20090517/1242551222

で紹介されていた、"Write in C"を何故だかよく分からないけれど*1自分も気に入ってしまったので、日本での普及(?)を応援するため勝手に和訳してみました。

和訳を書きながら、ふとLOGOって言語が気になって調べてみたら、小学校のときパソコンの授業で使ったことを思い出しました・・・。

Write in C (和訳)

自分の書いたコードの中に、幾千ものトラブルの種を見つけたとき
友人や仲間たちがこう囁いていった
Cで書こうよ、と

締め切りが足早に近づいてきて
絶望的なまでのバグの山が眼下に広がったとき
どこからか、誰かが囁くのが聞こえた
Cで書こうよ、と

Cで書こうよ、Cで
Cで書こうよ、そうさ、Cで
LOGOは息絶え、今や忘却の彼方に葬り去られた
Cで書こうよ

今まで数多くのFORTRANコードを書いてきた
科学計算なら、ソツなくこなしてこれた
もしも、それをグラフィカルに処理したいなら!
Cで書こう

もしも、あなたがアセンブラコードをデバッグするのに
30時間も費やしてしまっているなら
今すぐにでも喜んで取り掛かるだろう
Cで書き直すことに

Cで書こうよ、Cで
Cで書こうよ、さぁ、Cで
BASICは、最適な解とは言い難い
Cで書こうよ

Cで書こうよ、Cで
Cで書こうよ、そうさ、Cで
Pascalは何かしっくりこない
Cで書こうよ

*1:CもPascalも使ったことないけど!