トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|

ToDo:


2009-04-01

_ 趣味は女装

http://spysee.jp/shinh

(12:35)


2009-03-31

_ m32 ruby 1.9.0-1

http://shinh.skr.jp/m/?date=20080525#p03

の時の手順でできないな。

extconf.rb 実行した時に bigdecimal でこける。 なんかよく見ると昔は手元の libruby をリンクしようとしてなかったのだけど、 今はしようとしていて、 CFLAGS の -m32 をひきつがないから、 って感じっぽい。

lib/mkmf.rb がどう CFLAGS を扱っているか… なんてことは深追いする体力もないしやめることに。

(01:10)

_ C++

http://niha.tumblr.com/post/91457096/c

途中で cpp_akira さんは compile time の速度の話、 Cryolite さんは run time の話をしてるような気がするチックな。

compile time 減らす系の最適化は まぁ compiler が知っとくしかないよなぁ。

あとまぁなんにせよそんなところよりは お墨付とかインストールいらないとかの方が 圧倒的に強い気がする。

(19:16)

_ 感想など

http://shinh.skr.jp/h/?HackTheCellPostMortem

なんか集めた方がいいかなーとか思ってたけど、 勝手に上げてくれてる人もいるし、めんどくさいし、 とりあえず適当にリンクとか足しておいた。 足し忘れなどありそうなので なんかある人は足していただけると幸い。

あとなんか感想としてはみんなすごいなぁというのが多くて まぁいつも思うことではあるけど今回は特に思ったなぁ。 比較的属性が共通しててでも違う仕事してる人が 多い感じだったのが良かったなぁと思う。

(20:48)

_ PLT

とりあえず現状で git push 。 今週末くらいにはなんとかしたいね。

今日わかったことは R_X86_64_GOTPCREL というのは shared object で -fPIC な時に必要だということと、 i386 だと rip 相対無いから R_386_GOTPC になるわけだけど、 PC 取ってくるのがあら大変ということを再確認というか

(22:44)

_ 詳しくは

http://d.hatena.ne.jp/yupo5656/20060907/p1

のへんをどうぞ。この手の単語 (R_X86_64_GOTPCREL) は検索で来たりする人がたまにいたりするので… 俺とか俺とか…。

(22:49)

_ C コンパイラツールチェーンから見た x86-64

とかそろそろヨタ話ができそうなくらい どうでもいい知識が溜まってきた気がする。

  • 基本 - あの頃はよかった
    • レジスタいっぱい、無限のメモリ空間
    • さらばx87 / こんにちはSSE
    • long long の実装が自明!
  • code generator
    • 少し不穏な REX プレフィクス
    • あら sizeof(void*) が違うのね
  • ABI地獄
    • 入れ替わる引数
    • あらレジスタどこいったの
    • 可変長引数と向きあう
    • よみがえるx87
  • ELF64
    • RIP相対のありがたさ
    • 広すぎて R_X86_64_PC32 が全然届かない→そうだ PLT を使おう
      • rel => rela
    • 広すぎて R_X86_64_32 がもっと全然届かない→そうだ PIC を吐こう
  • tcc -run
    • 何もかもが届かなすぎる

(23:31)

本日のツッコミ(全3件) [ツッコミを入れる]

_ intro [PostMortem ありがとうございました!src 置く場所がなかったんで、適当にブログ始めてみましたw&リンク貼..]

_ shinh [おお、わざわざはてな始めてまで感想書いていただいてありがとうございます! こちらこそありがたい話を色々聞けてたのしか..]

_ calgary social media marketing [そのような意味&#..]


2009-03-29

_ hack the cell post mortem の感想

http://shinh.skr.jp/h/?HackTheCellPostMortem

とりあえず、みんな、 「おおこんなこと思いついて俺 SUGEEE って思った瞬間があったけど、 数日経つとなんだ当たり前じゃんねと思い、 kik さんの説明を見るとああ俺はどうしようもなかったんだな…」 と思うというようなあたりの意識を共有できたかと思う。

まあでも kik さんも時間は湯水のごとく使ってるぽいんだよなぁ。 そのへん次回は彼の2倍程度は時間を使うことで対処したいと思う。

といいつつ、 hack the cell は期間が長いから有給取ってないんだよな。 なんていうか、趣味のプログラムに時間を溶かすことが 完全に習慣になっている人間としては、 3ヶ月から数百時間かそこら捻出することは造作もないことなんだよなぁと。 マラソンとか TLE とか ICFPPC くらい短いとそうもいかんわけだけど。

謎めき系

http://0xcc.net/pub/shibuyapm4/0006.html

について

http://www.f13g.com/?blog

の人に説明したところそれはお前のことだろと指摘されました。 件のプレゼンは現物では見てないけど僕の人生の指針となっていて、 これらの類型にはとてもなりたくない気がするので、 なるべく不明な点が無いように書いてみようと思うのであった。

とりあえず、 ^q-^m とかすると メモモードというかメールを書くモードになるのだけど、 これでまず subject を書くのが問題なんだよなぁ。 subject って途中か最後に書くべきもんだよね本来はたぶん。

いやでもね、

http://shinh.skr.jp/m/?date=20060518#p03

によると大々的に公開することに抵抗があるような 私的なメモであるというような位置付けが書いてあるわけだよね。

実際これを書く前の1年くらいは完全にどこからもリンクはってなかったんだけど、 リファラ経由でぐぐる様が来たりしてヒキコモリ体制が崩れていったんだよなたしか。

まあ僕がちゃんと書くことに関してメリットを感じればちゃんと書くかもですが、 あんま感じなければいい加減に書くのでそのへんは適当に。 気になったことについてのコメントとかはしていただけるとすごい嬉しいです。

ああそいえば今日も思ったんだけど、みんな質問しないよなぁ的な。 俺だけわかってなかったら申し訳ないなーとか思ってしまうので みんな聞いてくれるといいのにとか思うよね。 「何言ってるかわからん」とか質問の体をなしてない僕の質問に 丁寧に答えてくれた kik さんには感謝感謝でした。

あとまあ fixstars のみなさんは色々もう感謝感謝としか言いようがない感じでした。 感謝感謝。

(00:23)

_ so => main

8e5:   48 8b 05 6c 03 20 00    mov    0x20036c(%rip),%rax        # 200c58 <_DYNAMIC+0x1c0>
8ec:   8b 00                   mov    (%rax),%eax
8ee:   c9                      leaveq
8ef:   c3                      retq

が正しくて、

75e:   8b 05 9c f8 ff ff       mov    -0x764(%rip),%eax        # 0 <call_gmon_start-0x680>
764:   e9 00 00 00 00          jmpq   769 <var_main+0x40>
769:   c9                      leaveq
76a:   c3                      retq

はまぁ色々おかしい。 やっぱ fPIC 的なのが無いと イマイチだなあ。 まあどうしても一段はませる感じにはなってしまうか

(15:54)


2009-03-28

_ 出身校

http://www.shimamoto-ele04.ed.jp/syokuin_zidou_top/syokuinkousei.htm

ふと目に入ったのだけど、 人数少なくね… 1学年100人くらいはいたように思うのだけど。

(11:51)

_ エグゼリカ

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20090326#p02

出てるのかあ。 買ってみようかなぁと思うけどPS2もテレビも崩壊してるなあ。

(12:27)


2009-03-26

_ 微熱

えらいしんどい。スライドとか作れるかなー

(19:11)

_ 16

http://d.hatena.ne.jp/sugyan/20090326/1238007478

via http://d.hatena.ne.jp/kazuhooku/20090326/1238045916

末尾の空白がイヤなら

@s=("%02X")x16;printf"@s\n"x16,0..255;

で良いと思う。

なんかもちょい縮みそうな気はするけど Perl むつかしいな

(19:39)

_ 汝は人狼なりや

しんどくて思考ができないけど 寝れないので新都社のマンガを適当に見てみる。 面白いの見つけた。

http://puripeni.web.fc2.com/index.html

人狼としてはまぁどうだろう、 実際の名ログとかの方がはるかに面白いという感じだけど、 途中から脈絡もなく踊ったりしてるのが面白すぎる。

(23:10)


2009-03-25

_ なんか

http://longlong.way-nifty.com/blog/2009/03/700-c9db.html

もし良ければ軽く書いていただけるとありがたいかなぁと思います。

僕が最初に60倍ちょい越えの人がやってそうな工夫を 一通り紹介してみようかと思いますので、 基本的な工夫はナシですごい部分だけ書いてもらう感じでどうかな、と。

http://shinh.skr.jp/h/?HackTheCellPostMortem

↑適当にこんな話をしてもらえればいいかなーと 妄想で「何をするか」の欄を更新しておきました。 あと、現場はプロジェクタはあるそうです。

(01:42)

_ ええと…

LLVM勉強会は遅れていって yarv2llvm から。

http://d.hatena.ne.jp/miura1729/20090323/1237779835

大変面白かったんだけど、 なんか色々ヘンにつっこんでしまった気がした。 疑問をすぐ聞いてたら なんかあら探しチックになってしまった感じで申し訳なかった。

Clang はまぁ案外面白いことやってるんだなぁとか思った。 tccparser とかもそうだけど、 C コンパイラライブラリって かなり長い間欲しかった感じがするんだけど、 というかそいうのがしたくて binary 2.0 なんちゃらとかで発表したりしたんだけど、 最近あんま興味ないんだよな。

SWIG生成なんかは超実用的だと思うし、 GCCXML 使った cableswig とか実際にあるわけだけど、 こうなんか現実的になりすぎちゃってねえという無いものねだり感が。 GCC plugin branch vs GCCXML vs Clang vs Doxygen とか オルタナティブも色々ある感じだしねえ。

あと LLVM 自体も類似技術との対決は面白いかも。 LLVM vs C-- vs TCG vs ... とかね。

呑み会は他に外せないのがあったので参加できず

(02:19)

本日のツッコミ(全5件) [ツッコミを入れる]

_ kodera [ああやっぱり、20人ともなると多少は何かあった方が良いですよね。 簡単にパワポでも用意しときます。すごい部分とか言う..]

_ shinh [ええ、結構時間も長いし、意外と話題も多そうですし、なんか資料的なのはあった方がいいかなぁと。 kik さんには頼んで..]

_ kik [プレゼン形式になってない文書はもうたくさん書いたので 新規で作るのめんどくさいんですが ホワイトボードはありますか?]

_ shinh [あ、はい、あれだけあればあの pdf で十分ではないかと思います。ホワイトボードは…まぁあるんじゃないでしょうかと思..]

_ wo [ホワイトボードはあります]


2009-03-22

_ わーぷ

普通に log(n) 回の行列計算でいけるかなーとか思ったら kik さんが書いてた上に諦めていた。

http://d.hatena.ne.jp/kikx/20090321#1237632002

でぱっと見 kodera さんのがそれ実際にやってる感じに見えるけど、 えーと違うのかな。

http://longlong.way-nifty.com/blog/2009/03/hack-the-cell-0.html

なんか違う気がした。

ああそうか、たぶん、分割数が 4 なら、

  • 0...624, 4*624...5*624, 8*624...9*624, ...
  • 624...2*624, 5*624...6*624, 9*624...10*624, ...
  • 2*624...3*624, 6*624...7*624, 10*624...11*624, ...
  • 3*624...4*624, 7*624...8*624, 11*624...12*624, ...

と担当すればいいって話か。 ただこれは mt の更新行列がそれなりに複雑になっちゃうだろうから、 log(n) べき乗ができるならそっちの方が良さそうだなぁ。

次元の3乗のオーダーを log(n) 回ってそんなに大きくないんじゃないかな… とか思ったけど、 20000次元**3 を 128 並列でできるので、 62ギガ単位の話。 積和命令とかあった気がするし 62G clock でいけるの? よーわからんけど悪くて 124G clock だろう。 8コア使うって前提の話なので、 15G clock か。 今回の mt_kadai のサンプルくらいだと現実的じゃないけど、 もっと激しく大きければ案外いけるくらい?

眠いので根本的に色々まちがっていそうだ。

(03:00)

_ あと

まあこの手のは基本的にはパズルでしかないので cell 自体の経験はあんま関係ないんじゃないかなぁ。

  • bitslice: 思いつき勝負
  • うまく命令数減らす: kikさんは天才
  • アセンブリ: __asm__ を書いたことがあるか、命令スケジューリングをある程度自動化する程度のプログラムを書けるか
  • spu-gcc とうまくつきあう: 基本的には try-and-error しか無い?

あたりがどっちかというとメインだった気がする。 even-odd の量をうまく散らすとかは重要だけど、 命令数たいして多くないから おおまかに把握するのにそんなに時間はかからないしなあ。 命令をうまく使って命令数減らすのも重要っちゃ重要だけど kik さん以外はたくさん減るのは見つけてない感じだよねたぶん。

一方 x86 とか経験がすごい生きそうだよなぁ。 herumi さんに勝てる気とか全然しない。

と書いてみて x86-64 でこいうコンテストとかも 割と面白いかもなーとか思った。 Core 2 Duo あたりで。 僕自信は勝負になる気がしないが。 誰かやらんかな。

(03:15)

_ こう

分割数が 8 として、 num_rand が 8*10**7 だとして、 800 程度進める行列を普通に(log(n)とか考えずに)作るのは たぶん 640000 回ループ回す程度のコストでできて、

  • 0...100, 800...900, 1600...1700, ...
  • 100...200, 900...1000, ...
  • 200...300, ...
  • ...
  • 700...800, ...

とかいう感じで分割すれば、 通常のループを 10**7 回と、 800 進める行列を 10**5 回かける時間で計算できるんじゃないかなぁ。 そしたら 10**7 回のループが律速な感じだから だいたい 8 倍になってる気がするなぁ、 とか思ったけど定かではない。

(03:30)

_ つか

これで8倍になるんだったら SIMD ったら shufb, selb, rotqw* あたりが消えたりするのかな。 というかそれが

http://pc11.2ch.net/test/read.cgi/tech/1232817361/581

が言っていたことか。やっとわかった。

shufb とかも減れば odd も減りそうだけど、どうなんかな。 だとすると SPU 1個でももっとフザけた倍率出たりするのかな?

(03:37)

_ メアド

http://d.hatena.ne.jp/firewood/20090322/1237659723

いいかげんな正規表現がそれなりに有効というのはとても同意… 元の正規表現で実用上一番問題なのはプラスが入ってないこと、かなぁ?

とかはいいとして、

http://blog.livedoor.jp/dankogai/archives/51189905.html

の From: Anonymous <nobody@example.com> を Perl の正規表現ならできる…っていうのは 実物がもしあるんなら見てみたいな。 自分では全然知らんけど、聞きかじった知識を元に考えると大変そうで、 結構とんでもないことになってそう。

(04:27)


2009-03-21

_ うえ

http://twitter.com/pi8027/statuses/1359594979

あまりいい趣味じゃないなぁと思ってしまうので…

(12:35)

_ DSO

とりあえずやらにゃならなさそうなのは、

  • PLT を作る
  • R_X86_64_32 のハンドルがおかしいから GCC の生成したコードから DSO 作れない
  • R_X86_64_32S って何?

あたりか。

(12:51)


2009-03-20

_ 健康診断

かように明らかに不健康であるものの、 健康診断では特に不健康だとは言われないのであった。 これほんとに役に立つんかなー。

前回は身長172.7体重52.9とかで判定 Cb とかで軽度異常とかだったらしいんだけど、 今回は身長172.6体重51.5とかで平均からの逸脱は激しくなってると思うのに 判定 B とかになっていた。 何が基準だかさっぱりわからんがまぁ 体重とかで異常とかわからんということじゃないかと思う。

まあそんなことよりヘモグロビンが足りないらしい。 件の前立腺には亜鉛が良いらしいんだけど、 要は何かしら鉄っぽいものが足りてないのかなぁ。 たしかになんか会社のメシで内蔵とか出ないしな。

(00:17)

_ zsh on sakura

なんか zsh が動かんくなっていた。 libncurses がどうこうらしい。 とりあえず .cshrc をどければ普通にログインできるようだった。 ちょっとほげった感じ bash があればとりあえず良さげなので exec /usr/local/bin/bash とかでお茶を濁すことに。

(00:28)

_ hack the cell

推定4位(99-100倍の範囲に人がいたら5位)かー。 120倍付近にはいたかった感じだなぁ。 未だによくわかってないけど lqr 多すぎとかが メインの死因だったのかなぁ。 今度調べよう。

110倍台のところにいる人はどなたなんだろうか どいう違いがあったんだろうと気になるな。

学生弱いのは cell challenge のおかげで oxy さんみたいな頭おかしいのがいなかったとかありそうだなぁ。

(06:03)

_ とりあえず

わかってる範囲では

  • 126: kik
  • 120: kodera
  • 11?: ???
  • 9?: nosuke
  • 99: shinh
  • 82: herumi
  • 82: taitai

あたりで、 bit いじった人で 現段階で post mortem にもいらっしゃらなさげな方は 110倍台の人だけかなぁという。

(06:18)

_ bitonic merge sort

def bitonic_sort(a, b, e, z)
  s = (e-b)/2
  return if s == 0
  s.times{|i|
    if a[b+i+s] && ((z != 0) ^ (a[b+i] > a[b+i+s]))
      a[b+i], a[b+i+s] = a[b+i+s], a[b+i]
    end
  }
  bitonic_sort(a, b, b + s, z)
  bitonic_sort(a, b + s, e, z)
end

def bitonic_merge_sort(a)
  s = 1
  n = a.size
  while n > 1
    n /= 2
    s *= 2
    n.times{|i|
      bitonic_sort(a, s*i, s*i+s, i%2)
    }
  end
end

a = [*0...32].sort_by{rand}
p a
bitonic_merge_sort(a)
p a

こんなかんじ? 2 の倍数じゃないと動かんが。

(08:20)

_ putchar

http://q.hatena.ne.jp/1237524919

'\0' が出力されちゃうのはいかがなものかとおもう

(15:34)

_ rob's branch

http://www.mail-archive.com/tinycc-devel@nongnu.org/msg01798.html

http://landley.net/code/tinycc/

でこのバグの fix は rob's mail-list とやらにあるはずなんだけど、 その ML 自体見つからんしこまるね

まあ shared object とかの方が面白そうだしそっち見るか

(16:03)

_ DSO

とりあえず rip 相対以外グッバイすればいいのかな。

(19:44)

本日のツッコミ(全1件) [ツッコミを入れる]

_ niha [>'\0'が〜 ボクもそう思います…]


2009-03-18

_ なんか

型とかぶる感じで出張行くことになりそうな気配があるなあ。 キャンセルして YT さんに黄金なんとかの速さで入ってもらうか

(22:31)


2024年
10月
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
1.shinh(2014-05-24 10:42) 2.団子厨(2014-05-24 10:42) 3.shinh(2014-05-24 10:42)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h