J

2004 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 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 | 12 |
2008 | 01 | 02 | 04 | 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 | 03 | 04 | 05 | 06 | 07 | 08 | 12 |
2013 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2014 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 02 | 03 | 04 | 05 | 06 | 07 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 06 | 07 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 |

ホーム

日記内の"morihyphen.hp.infoseek.co.jp"へのリンクは切れてます。必要な場合はお手数ですが int.main.jp へ書き換えをお願いします。

TODO: ファイル名確認を忘れないこと > 自分

twitter

 | 

2014-07-28

ICFPC2014 22:51

http://icfpcontest.org/


いつも疲れてるからあとで書こうと思って結局書かないので今日のうちに書いておこう。

コードは、




何故か会社の人で毎年参加するという文化があったので@foota, @nabesan_tofu, @tomerun, @logicmachine, 私の5人で参加した。(その文化は公認になって宿泊費とかが会社から出るようになっている(宣伝))

なんかCPU仕様があって、そのCPUの上でパックマン + 敵のゴーストのAIを作れとかいう問題っだった。

まあ昔は趣味コンパイラとかしょっちゅう作っていたので序盤は完全に得意分野だった。ある程度動いたあとのAIつくりはほぼ@logicmachineまかせだった。

しかし感想とか見てると一日でコンパイラ書くのは普通のレベルに見えるな…


マシン仕様のめんどうな点としては、

  • ヒープメモリがconsしかない
  • consに対して破壊的代入ができない

で、cons/car/cdr だけで全部プログラム書くみたいな内容。


朝になるころには @logicmachine がアセンブリで二分木の読み書きを作っていた。破壊的代入無しの二分木のかきかえってそんな簡単に実装できるんだっけ…コード見たが読めなかった(今見てもよくわからない)。


lightning は…

https://onedrive.live.com/redir.aspx?cid=ecb59e566c2d71f1&page=self&resid=ECB59E566C2D71F1!4174&parId=ECB59E566C2D71F1!3550&authkey=!Alp6E3GNPHKNM7k&Bpub=SDX.SkyDrive&Bsrc=Share

だが、あんま覚えてない。



3日目(日本時間で)は…あんま覚えてないな…@tomerun がシミュレータを作ったのでそれに表示を付けて遊んでいたと思う。


@foota が作ったghostが強いという話になったので、僕もghost作りたくなって少し触ったが、レジスタとか考えるのが嫌になってコンパイラを作った。3日で二回 parse.y を書く機会は多分二度と無いだろうな…(まあ半分くらいコピペだけど)


さすがにコンパイラを作るのに飽きたのでシミュレータに人間入力機能を付けて遊んでいた。



4日目(今日)は…@logicmachine が作ったJavaScriptのシミュレータでは動くプログラムをジャッジシステムに投稿すると、動かないという話題になって、まあ、もうあのコードは僕には読めないようになっていて、あまり手伝える状態でもなかったので、かわりのAIでも作ろうかと思って少し手を出したが難しいと思いました。(こなみかん)

ジャッジシステムは出力がスコアしか無いので、@logicmachineは右に動いてスコアが入るか入らないかだけで判定してデバッグしていたらしい。結果はジャッジシステムのバグで、2 * (1<<31) が、0 ではなくて、INT_MAXになるという挙動だったらしい。あれHaskellってバグらないのではなかったの?

http://icfpcontest.org/game.htmlHaskellJavaScriptに変換するghcjsで実装されているのだが、これがクッソ遅いのとあわせて、今後Haskellerを煽る素材として使っていきたいと思った。


まあ問題はわかったので(結局ジャッジシステムは修正されなかったけど)、自作lambdaman AIは捨ててGhostを書いていた。それなりに良い結果になって最終提出物になったので、ゴーストコンパイラはこの一回しか使わなかったけど作った甲斐があった。


多少調整してたら時間終わった。最後の調整は、なんか、良くなったか悪くなったかよくわからない感じになって、手応えとしては、なんかふわふわした感じの手応えで終わってしまった。


まあ問題はゲームっぽい見た目だったし、前半は得意分野だったから、楽しかったかなと思う。


あといつもと違って3日目も生きていた。

2014-07-16

22:45

http://d.hatena.ne.jp/w_o/20140526#1401049062

あれから電話するようにしてたら、「電話だと長くなるからやめろ」みたいなニュアンスのメールをいただいたので「俺は世界の理不尽を全てひとりで受け止めているんだ…」みたいな気分になった。

トラックバック - http://d.hatena.ne.jp/w_o/20140716

2014-07-07

09:03

Sunnyvaleから帰らぬ人になったみたいやな。


まあ誰も興味無いだろうけど写真置いておく。

f:id:w_o:20140614112131j:image

観光的にはここが一番良かった気がする。


f:id:w_o:20140614191852j:image

これが名所とか納得いかないけど。(単に道がくねくねしてるだけ)


f:id:w_o:20140614200540j:image

まあ確かにマズいパンという気がした…(何故パンをすっぱくするのか…)


でもこれは日本に「甘いもちもちパン」しか存在しないほうがおかしいのかという結論だった。

難しい仕事はつらい 09:03

まあ当たり前だけど…


想定している以上に辛いような気がするな。つまり、難易度の上昇に対して、つらさの増加が大きい。

手伝ってくれる人が減る

なんかひとりで作業する以外の選択肢が無い。

あと、人に説明しづらいので、まあ、人に相談しても「へぇ…」以上のコメントがもらえなくなる。


「むずかしい」とかいう情報量ゼロコメント

まあ、どっかで限界が来て、「むずかしいから無理」とかいうコメントを出すタイミングが来るわけだが…

そういう時って、プログラム書けないオッサンが「難しいからむりむりです」とか言うのと全く同じコメントになるのでつらいのだった。


僕は「難しいから無理」とか言われると「なにこいつ無能かよ」とか考えてしまう人間なのだが、それはもう理性の外で動いてる思考なので、難易度とか関係ないし、まあ俺が無能なのが良くないのだった。


人に作業頼むときに「うまいことやってくれ」以上の指示ができない

まあ難しい時って、大体、何をどうしたらいいかわからない時のほうが多いから、人に作業指示するときも、「うまいことデータとって、うまいこと判断して、うまいこと実装しといて」以上の指示ができない。(あと作業したあとにやっぱ必要無いとわかるとか)


まあ、これは、指示されたほうが辛いというのもわかるけど、一応指示するほうも心をいためながら指示しているということをどうか忘れないでいただきたい。

Mill 09:42

http://millcomputing.com/

最近の変態アーキテクチャとしてはこれが流行りらしい。(ここここで見たので)



DSP相当の 性能/W を汎用プロセッサで実現するのが目的らしい。


省電力高性能CPUは、GPUをはじめとして、色々あるが、このMillの特徴は、並列化していない普通のCプログラムを効率良く実行できる点である。(まあ、まだ実機は無いので、それを目標としてると言ったほうが正しいが)


彼らが言うには、命令デコードや、レジスタリネーミング、レジスタのMUXを減らすことで汎用OoOよりも効率良く、ということらしいが、ほんまかよ。という気がするな。


今のプロセッサの問題は、SW/HW関係無く、ロジックの複雑さよりもデータ転送であって、データ転送を伴わないロジックの問題なら、気合いで改善する実装部分の問題がそれなりにあって、どっちかというと、実装の問題だと思うのだよね。

デコード/Rename/MUXとかは、コアのモジュール内で閉じてるロジックだから、同じようなモデルでも、2〜3倍ぐらいの違いが出そう。なので、実装ができて、評価が出るまでは、まあ、あんまり…?という気がする。


ただ、Millは、メモリ/分岐とかもそれなりに考えてあるみたいなので、そのあたりを書きたかった(が時間が無いので今度書く。(←書かないという意味))

トラックバック - http://d.hatena.ne.jp/w_o/20140707
 |