2008年12月21日から2008年12月17日までの日記を表示中

2008年12月21日 (日)

celltripperとか

ちょこちょこいじってたらちょっとスコアが伸びました.でも何でこれで伸びるのかさっぱりわかりません.むしろ遅くなっておかしくない筈なのに(;´Д`)

ところで spu-gcc の組み込み関数の一覧見てて気になったんですが,spu_rlmaskqwbytebc って何のためにあるんですかね.spu_slqwbytebc とかだと spu_slqw とあわせて1〜128ビットの左シフトとかに使えそうだけど, spu_rlmaskqwbytebc は負の数で指定しないといけないという謎仕様のせいで spu_rlmaskqw と組み合わせてもきれいに右シフトに使えないっぽいんですよね・・・.simdmath 見ても使われてないようだし.謎だ・・・.

[コメントを書く]

団子厨 2008/12/22(月) 02:52:31
多分こういうことでは?

128ビットアラインメントされてないアドレスをロードすると下位4ビットが無視される。

128ビット境界を跨ぐデータをロードする場合、2回ロードを発行して、それぞれ右シフト+左シフトして重ね合わせることになる。
この際、シフト命令が補数をとる形式だと下位4ビットがそのまま使うことができる。
nosuke 2008/12/23(火) 01:04:14
おお,ありがとうございます!
なるほど!そういう使い方があったか!
というわけで早速試してみたんですが,残念ながらどうもこれには
使えないっぽいです.詳細は22日のエントリに書いてみました.
勘違いしてたらごめんなさい・・・

2008年12月20日 (土)

VMware Player

昨日の続き.Fedora 9 を Vmware 上にクリーンインストールしてみました.HDDイメージを作るのが面倒だったので Windows の方の VMware で使ってる奴をコピーしてフォーマットし直してつかうことに.

順調にインストールが進むも,インストール後 yum update を始めたところでなにやら異変が.T60 が全体的にやたらと重い・・・なんだこりゃ.・・・アッー! SWAP が 500M も使われているぞ (;´Д`)

VMwareのゲストOSにうっかり1Gもメモリを割り当ててしまったせい? とりあえずあれこれホストの Linux 側のプロセスを落としまくってどうにか 300M くらいまでに減らしましたが,ここから先はもう落とせるものがない状態 w.くそー.で,結局その後数時間耐えてどうにか完走はしたんですが,こりゃ途中で止めてWindows側のVMware に移してやり直した方が速かったぽいなぁ.不覚・・・.

vmshrink

いやしかし,インストール直後で大して中身も入っていないはずの状態なのにディスクが 18G もあるのはどうなのかと.いやそもそも勝手にシュリンクされたりはしないのかな.手を抜いてコピーしてきたディスクイメージを使いまわしたのも失敗だったか・・・orz

そんなわけでどうにか縮める方法はないものかと探してみたら vmsrinkというのを発見.これはすごそう.

早速ゲストOS上にダウンロードしてコンパイルして実行.最初にデフラグっぽいことをしているのか,数字がぐるぐると回ります.・・・ずいぶん待たされますな・・・ってなんか別のワークスペースでVMware Playerがエラーを吐いているぅ (VMware 上の Fedora にsshでログインして作業してたので気づかなかった). なになに,作業をするのに十分なディスク領域がないだと (;´Д`)? 失敗してたのね・・・orz

仕方ないのでイメージをWindows側にコピーして,Windows の VMware Player 上で再挑戦することに.こっちはHDDの空きが十分あるんでばっちり縮小に成功.3Gくらいになりました.これを再度 T60 側に持ってきてようやく環境構築完了.ふー.HDD買い換えようかな・・・

2008年12月19日 (金)

mltermのマウス選択

なぜか最近 (実は前から?) VMware 上の Fedora で上げてるXサーバに mlterm の窓を飛ばすとマウスのダブルクリックやトリプルクリックでの文字列の選択が100% 失敗するようになってしまいました.まあマウスでじっくり選んでやれば大丈夫だったのでとりあえず放置してたんですが,今日になってこれだとちょっと不便な事態が発生したので適当に追ってみることに.

ダブルクリックとか検出してそうなところをgrepして追って行ったらそれっぽいところに到達.むう,マウスのリリース処理が怪しいな・・・.というわけで適当にコピペしてみたらあっさり直ってしまいました.これはラッキー.どんな副作用があるかわかりませんが,↓で今んとこ普通に使えてます.

--- xwindow/x_screen.c.org
+++ xwindow/x_screen.c
@@ -3517,6 +3517,18 @@
                        yank_event_received( screen , event->time) ;
                }
        }
+        else if( win->click_num == 2 && event->button == 1)
+        {
+                /* double clicked */
+
+                selecting_word( screen , event->x , event->y , event->time) ;
+        }
+        else if( win->click_num == 3 && event->button == 1)
+        {
+                /* triple click */
+
+                selecting_line( screen , event->y , event->time) ;
+        }

        x_stop_selecting( &screen->sel) ;
        highlight_cursor( screen) ;

VMware Player for Linux

今までT60には VMware Workstation 5.5系が入っていたんですが,新しいのが使いたくなって VMware Player に入れ替えてみることにしました.が,インストーラをダウンロードして実行しするもまったくインストールできず・・・.一応データの展開は行われるっぽいんですが,展開が終了したところで落ちます.落ちるときに律儀に展開したテンポラリのデータを消してくれるので,何が原因で落ちているのかさっぱりわからん (;´Д`)

あれこれ試しているうちに環境変数で LD_LIBRARY_PATH=/usr/local/lib を設定してやると上がることが発覚 (/etc/ld.so.confが空なので標準で/usr/local/libは見にいかない).あー,インストールにX使ってるのね (;´Д`)

が,しかし,まだインストールがうまくいっていないっぽい.文字コードがどうこうみたいなメッセージが表示されていたのでググってみるも,ヒットするのはロシア語のページばかり.なんじゃこりゃ・・・ロシア人だけがハマる? ・・・LANGかな? 試しに LANG を C にしてインストーラを起動してみたらばっちり.ようやくインストールできましたよ.何て難しいんだ (;´Д`)

その後 /dev/vmmonを作ったり,起動スクリプトにLD_PRELOADを書き足してX関連のライブラリを事前に読み込んでおくようにしたりしてどうにか VMware Player 自体も起動するようになりました.はぁ.

2008年12月18日 (木)

celltripper続き

昨日のがさらにパワーアップしていました.早速組み込んで昨日と同じ環境で測定.

spu-gccoptionScore
4.3-O3 -funroll-loops 11675K
-O3 -funroll-loops -mlarge-mem 11710K
4.1 -O3 -funroll-loops 10865K

数パーセントとはいえさらに伸びてますね.恐るべし・・・.

ファイルの再頒布

いまさら聞けないライセンスの疑問.

  • あるWebサイトで,とあるツールのソースと,そのソースへのパッチが公開されている
  • ツール自体は,別所でコミュニティベースで開発されているオープンソースなもので,ライセンスはGPLとなっている
  • パッチに関しては特にライセンスに関する記述が見当たらない
  • 同じWebサイトでそのツールのバイナリパッケージ (RPMファイル) とソースパッケージ (SRPMファイル) も配布されている
  • その SRPM ファイルを展開すると,そのツールのソースとパッチとSPECファイルが出てくる
  • その SRPM ファイルを rpm -qpi すると「License: GPL」と出る
  • 同様にその RPM ファイルについても,rpm -qpi すると「License: GPL」と出る

こういう状況で,RPMファイルやSRPMファイル,パッチなどの著作権者でない人間が RPM ファイルや SRPM ファイルの再頒布を行うことはライセンス的に可能なんでしょうか? もちろんオリジナルのファイルに一切の改変を加えることなく無償でやるとして・・・.

[コメントを書く]

ライキリ 2008/12/19(金) 13:07:29
GPLで公開された著作の派生著作物を公開する場合はGPLでなければいけません。(私的に使う分にはGPLの必要なし)

パッチは派生著作物になるので、GPLで公開する必要があります。GPLでは、公開の際に著作権に対する表記が必要ですので、GPLで公開する旨を表示する必要があります。

つまり、GPL表示なしにGPLソフトウェアのパッチを単体で公開しているのはGPLライセンス違反となります。

また、パッチを当てた実行ファイルの頒布の際には、使用したパッチ部分のソースも頒布の案内をしないといけません。

ちなみに、有償で頒布することは禁止していないので、メディア実費やサポート費用などを取って有償でも構わないのですが、それを手に入れた人は再頒布する権利があります。

GPLってライセンス自体が長文過ぎるし、派生著作物と違うものの閾値が決まってないし、子孫代々いつまでもくっついてくるので面倒ですよね。Microsoftの人たちが「GPLはソフトウェアに寄生する癌だ」と言い放ったらしいですが、気持ちがちょっとわかります。
nosuke 2008/12/19(金) 23:26:01
こんにちは.コメントありがとうございます.
一応基本的なところは大体認識通りでよかったのかな.

> 派生著作物と違うものの閾値が決まってないし

やっぱここが難しいです.

ソースとバイナリ(実行ファイルやライブラリ)の関係だったらわかり
やすいんですが,バイナリをさらに固めたRPMはどうなるんじゃというのが
気になってます.

GPLな実行ファイルを同梱しているから自動的に派生著作物という
気もするんですが,そうなるとじゃあそれらと別のライセンスの
ものをさらに固めたLinuxディストリビューションのISOイメージも
派生著作物になるの?とか思ったり.

そもそも rpm -qpi で出てくる「License」というのがRPMファイル
自体のライセンスなのか中身のライセンスのことを言っているのか
からしてよくわからないし・・・

まあ,知りたいのはLGPLなライブラリのRPMを勝手に自作のゲームに
同梱してメディア代くらいで配っても問題ないのかなーとかそういう
レベルの話なんですけどねw

2008年12月17日 (水)

celltripper

celltripper では S-box なるものを使ってビット幅分のトリップの演算をまとめて一気に行うようになっているのですが,こちらの方はその演算部分をSPU向けに最適化したとのこと.早速組み込んでspu-gcc-4.3でコンパイルしてみたところ,「-O3 -funroll-loops」だけで何と 11,335Kトリップ/秒というスコアが出ました.「-mlarge-mem」をつけるとさらに伸びて11,364Kトリップ/秒に.これはすごい!

とりあえず色々試した結果は以下の表の通りです.コンパイルは PS3 上で CellSDK 3.1使ってやりました.gcc-4.1でも普通に10,000Kトリップ/秒超えてますね.うおー.

spu-gccoption S-boxScore
4.3 -O3 -funroll-loops new 11335K
-O3 -funroll-loops -mlarge-mem new 11364K
-O3 -funroll-loops old 9963K
-O3 -funroll-loops -mlarge-mem old 10031K
4.1 -O3 -funroll-loops new 10662K
-O3 -funroll-loops old 9515K

ソースを見てみたところ,何とspu_selがふんだんに使われていました.これは本当にすごい.一体どうやったんだろう・・・.

PxVC1100

なんとx64でも動くらしい! そしてマニュアルを見てみたら実はマイマシンのM/B (Tomcat K8E) には x1 の PCI Exスロットが2個もついていることが発覚! なんだ,マシン組まなくても使えるんじゃん.ゴクリ・・・

スペランカーとか

ハードオフ行ったらまた色々入っていたので適当に色々買ってしまいました.ついにスペランカー入手ですよ.その他はかなりアレなラインナップですが・・・.

スペランカー他

ちなみにこの中で1番高いのはカラテカ (とジャス学).まあそれでも200円だけど.

冬コミ

すっかり忘れていましたが,近所の本屋に寄ってカタログを買ってきました.CD-ROM版は残り一冊だったんですけど,もしかして危なかったのか?

2008年12月21日から2008年12月17日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年12月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ