2014年08月23日

ブログを引っ越します

心機一転、再起を図るため、ブログをはてなに引っ越します。
新しい URL は
http://minosys.hateblo.jp/
となります。

今までのご愛顧ありがとうございました。
引き続き、新しいブログをよろしくお願いします。
---
みのしす
posted by みのしす at 17:22| Comment(0) | TrackBack(0) | 日記

2013年11月10日

流れ関数-渦度法だとNS方程式の数値解が発散?

CUDAの練習問題として、キャビティ問題を流れ関数−渦度法で解いてみた。が、ちょっと困った事態に。

時間発展させると解が収束せず、発散してしまう。オイラー法で積分するのが悪いのかと思い、予測子−修正子法とかも使ってみたが事態は改善せず。

理由は境界条件にありそうだ。渦度\(\omega_q\)は境界で
\[
\omega_q=-\frac{2\psi_p}{{\Delta x}^2}
\]
となるが、流入があると境界のすぐ隣のセルの流れ関数の値 \(\psi_p\) が1程度の大きさになり、これが発展方程式を通して成長してしまう。最初はじわじわと大きくなるがあるところで急激に値が大きくなるような挙動を示す。
また、\(\Delta x\)が小さいほど発散しやすい。
桁落ちも発生している模様なので、単精度計算が悪い可能性もある。

MAC法と比較してもう少し原因を調べるつもり。
タグ:物理 CUDA
posted by みのしす at 07:59| Comment(1) | TrackBack(0) | CUDA

MathJax のテスト

数式をブログに簡単に貼り付ける方法はないかと調べていたところ、2年くらい前に MathJax というのが
作成されていることに気が付いた。さっそくテストしてみる。
これは \(\LaTeX\) で記述されたソースです。
\[
e^{i\pi}=-1
\]
うーん、駄目かなあ。
posted by みのしす at 07:32| Comment(1) | TrackBack(0) | 日記

2013年11月04日

PCを衝動買い

8月の末の話になるが、秋ばをぶらぶらしていたら G-Tune のお店が開店していたので、PC を衝動
買いした。スペックは大体こんな感じ。

CPU: core i7 4770K 3.5GHz
メモリ: 32GB
HDD: 2TB x2 (SSD は Linux で使う場合に不安があったので敢えてつけず)
GPU: GeForce GTX780

本当は Titan を買って倍精度浮動小数点を使いたかったのですが、思いきれませんでした...
が、以前使っていたカードが GT 640 だったこともあり、速さは段ちでした。

試しに nbody シミュレーションデモを動かすと個体数 32K くらいまではさくさく動く。
さすがに 64K は辛そう。GT640 では 16K が限界だったので、最低2倍は速いということか。

Kepler アーキテクチャ(CUDA5以降)ではカーネルから別のカーネルを呼び出せるそうなので、
そのうちやってみよう。続きを読む
タグ:CUDA
posted by みのしす at 19:20| Comment(0) | TrackBack(0) | CUDA

今更ラズベリーパイ

一昔前に話題になった $35 Linux コンピュータサーバ、Raspberry Pi を入手した。
ケース、電源、無線LANを一緒に買ったので、結局 $70 くらいの買い物になったが。

この上でコンパイルするととてつもなく遅いので、CentOS 6.4 上でクロス開発環境を
構築してみた。(ぐぐっても CentOS 上でクロス環境を作った記事は少ないようだ)
例によって、

https://github.com/raspberry/tools

からクロスコンパイラを落としてくる。
CentOS の gcc は 4.4.7 と古く、上記のクロスコンパイラを動かすと
libstdc++.so.6 がないと怒られるので、Fedora の libstdc++ を入れてみた。
ネイティブは 64 ビット環境しか使わない予定なので、これでも特に困らないので
よしとした。

次に、眠っていた PS2(!) のアイトーイカメラを接続することを思い立ち、OpenCV を
インストールする。libX11-dev, libX11-doc のインストールに失敗して先に進めない
ので、Debian のホームページから gnulibaebhf 用のバイナリを落としてインストール
を完了。

この時点で Raspberry Pi 上にある /lib, /usr/lib を吸い出してクロス環境の
$(CROSS_HOME)/lib 以下にぶち込む。
試しにカメラからフレームを読みだして GTK+ のウィンドウに表示させるプログラムを
コンパイルしてみる。オブジェクトファイルを作成するところは成功するが、ライブラリを
リンクするところで失敗する。これは全てのライブラリをリンクできていないため
なので、付属の ldd を使って必要なファイルをすべて抽出する perl プログラムを作った。
巨大な LIBS 行が出来上がるのでこれを Makefile に追加してコンパイルを実行すると
うまくリンクできた。

あとは scp で Raspberry Pi に転送し、プログラムを起動すると、カメラ画像が
ウィンドウに表示される。320x240 ドットカラーで 5fps が限界のようだ。

motion のようにカメラの前を何かが横切ったら画像を保存するプログラムも書いてみた。
フレーム差分法と(「詳解 OpenCV」に記述されている)コードブック法を比較してみたが、
erode 処理をかませるとフレーム差分法で十分な精度が得られそうだったので、こちらを
採用(処理が幾分軽い)。

次の休みにはjpegファイルをネットワークでサーバに送り付けるプログラムを書こうかな。

続きを読む
タグ:電子工作
posted by みのしす at 18:59| Comment(1) | TrackBack(0) | ラズベリーパイ

2013年07月01日

また全文検索に挑戦しようかな

以前、某プロジェクトで日本語の全文検索システムを開発することになったが、途中で挫折した苦い経験がある。(結局 senna を使わせてもらうことでお茶を濁した。)
しかし、大量のデータをかかえた情報の海からどうやって目的の検索を達成しているのか技術的な話には興味がある。
少し前の本であるが、この本は最近の大量のテキスト処理を行う場合の処理手法として3つの方法を紹介した本である。
岩波の本というと例題がほとんどなくて補題だけ書いてあって先に行ってしまう印象があるが、この本は一歩進む度に例題を示し、理解を助けている。

まだ BWT を読んでいるところであるが、簡潔データ木などは以前のプロジェクトで使えそうな内容である。読破したらまた読後感想文をアップしたいと思う。

プロジェクト始める前にこの本が出ていれば、もう少し自分で実装したのになあ... 残念。
posted by みのしす at 01:01| Comment(1) | TrackBack(0) | 日記

2012年11月22日

現在のCUDA環境

現在のCUDA環境について述べてみると、CPU が Core i7 870 であるのは変わらずで、GT640を
刺し、インプレス社の「CUDA BY EXAMPLE」を実行するとこんな感じ。

nbody: 早くなったかな〜
fluid: 微妙に滑らかになった気がする
テクスチャメモリを使う演算: 明らかに高速

pcieをv3.0に変更した恩恵は残念ながら得られなかった。
疑問なのは、Fermi ベースのGPUはなぜテキスチャ演算が不得意だったのかという点だが…
posted by みのしす at 00:50| Comment(0) | 日記

2009年05月14日

どの PC を買うべきか

調査したら、今の PC は勝手から4年が経過したところだった。
ここ1年間での CPU, GPU の進歩は大きく、いつもの2年分くらいの技術革新があって急速にパフォーマンスが向上している(その代わり消費電力は4倍になったが)。

そこで開発用で CUDA をやってみたいこともあり、どの PC に乗せ変えたらよいものか考えているが、これがなかなか各社の戦略と合わず苦戦している。

メーカー系は設計は安心だが、搭載できるチップの性能が非常に低い。安い部品をコミットして大量に買っているのではないかと推察される。GeForce 9800 GT あたりで「最新チップ」とか言ってくれているので、売り文句はあまり参考にならない。

今回近かったのはエプソンダイレクトの Pr7000/Pr6400 で筐体はしっかりしている上に電源容量も申し分ないのだが、いかんせんパーツの値段が高すぎる(秋葉原価格の2倍以上はないだろう)。

HP はミドルタワーだしやすいしかなり理想に近いのだが、電源容量上 GeForce 9800GTまでしか乗らない(しかも結構無理しているはず)のが惜しい。

DELL は文句ないが、スペックも価格も高すぎる。BTO できる範囲がずっと小さくなってしまったのが残念だ。

Frontier とか TwoTop とかマウスコンピュータで揃えると無駄になる機能が無くしかも安くそろうのだが、システム性能試験をどこまで行っているか不安だ。部品の受け入れ検査もやらなさそうだし。メモリはノーブラっぽいし。

結論としては、秋・冬モデルで HP が GTX260 にしてくるなら HP を買い、そうでなければエプソンの Radeon を GTX260 に換装するという戦略になりそうだ。

9800 GT(G90コア) と GTX260(G200) では core が違うことから演算性能に大きな違いがあるのです。特に倍精度演算は G200 コアでしか動かないのは結構ポイントが高い。
posted by みのしす at 03:46| Comment(0) | 日記

2009年05月13日

今更 PS3 に Yellow Dog Linux を入れてみる

久々の更新。

CUDA と Cell/B.E. を比べたくて、PS3 に Yellow Dog Linux を入れる。これは
http://us.fixstars.com/products/ydl/
とか
http://cell.fixstars.com/ps3linux/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
を見るとすんなり入るので問題ない。

問題は Cell SDK 3.1 がうまく入らないことだ。YDL は RHEL 系なので、RHEL 用 CDROM イメージを持ってくるところまではいいのだが、
2つの問題点にぶち当たる。

cellsdk スクリプトが YDL を認識しない問題。
これは distro="RHEL" と書いてある前後のスクリプトをコメントアウトする。cellsdk-install パッケージをインストールし、Cell SDK 本体をインストールする前に操作する必要がある。
for file in `ls /etc/*-release 2>/dev/null`; do
((redhat += `grep -ic "red hat" $file`))
done
#if ((redhat > 0)); then
distro="RHEL"
#else
# distro="Fedora"
#fi
それでも Fedora9 用の CD を読みにいこうとするので、
/etc/yum.repo.d/cellsdk-Fedora.repo 中の enabled フラグを全て 0 にし、/etc/yum.repo.d/cellsdk-RHEL.repo 中の enabled フラグを適当に 1 に変更する。

これで /opt/cell に移り ./cellsdk --iso <ISO イメージを置いたディレクトリ> install する... がうまくいかない。理由は YDL6.1 に収録されているパッケージの方が Cell SDK 3.1 CDROM のものよりも新しいためである。

仕方が無いので ./cellsdk --iso <dir> mount で ISO イメージをマウントして yum で適当にインストールした。
他に必要なパッケージはこちら。
http://todotani.cocolog-nifty.com/blog/2008/11/cell-sdk-31-9da.html
posted by みのしす at 14:54| Comment(1) | 日記

2009年01月11日

senna にも謎の動作...でも仕様っぽい

分かち書きモードで、分かち書きの仕方にあいまいな場合があると期待した動作をしないことがあるようだ。

続きを読む
posted by みのしす at 19:48 | TrackBack(0) | 日記