0221
あいかわらずOptunaが箱を振っているのを眺めている。やっぱりサンプラーがあまりいいパラメータを引いてこないので、スコアの定義を微調整したり、望みのないケースで早期終了させたりなどのテコ入れをしているが、結局待つしかないのでボーッとしている。まあそれでも徐々に良くなってるような気もするな?手動でやるのとどっちが早かったかは正直よくわからないが。
今日はこのまま深夜シフトなので寝ません。シフトの組み方も模索中である。
あいかわらずOptunaが箱を振っているのを眺めている。やっぱりサンプラーがあまりいいパラメータを引いてこないので、スコアの定義を微調整したり、望みのないケースで早期終了させたりなどのテコ入れをしているが、結局待つしかないのでボーッとしている。まあそれでも徐々に良くなってるような気もするな?手動でやるのとどっちが早かったかは正直よくわからないが。
今日はこのまま深夜シフトなので寝ません。シフトの組み方も模索中である。
なんか日記書いたつもりで投稿してなかった。やば。
Optunaが箱を振りながらパラメータ空間を探索しているのをぼんやり眺めている。きれいな振動が見られるのは結構限られた条件であるらしい。手動で1つ見つけられたのはもしかすると運がよかったのかも。
待っている間は暇なのだが、GPUをブン回している関係上ゲームなどをするわけにもいかない。そういえば休業の間に積読も崩せないかと目論んでいたのだが、実際はTwitterのあとで読むブックマークが増えるばかりだ。
寝ます。今日はあまり体調が良くなかった。疲れているのかな。
オニーク。
(書く機会を迷っていたのだが、)最近家に新生児がおり、育休を取得している。子についてあまり詳らかに書くことは(プライバシーおよび日記性の観点から)ないと思われるけれども、とにかく現在は子への対応が生活のほぼ全てを占めているので、書かずにいることは不可能であろう。(「ほぼ」に含まれない残りの部分はCodexへの指示出しである)
現在は夕食後〜深夜のシフトを主に担当しており、そこで妻と交代して寝ている。幸い、睡眠時間はそれほど深刻な課題にはなっていないが、何をしても泣きやまないなど気苦労は絶えない(こんな話はどこにでもありふれていて、何も面白くはないでしょう)。
Optunaが粉体シミュレイタのパラメータを探索している。振動現象が観られるのは100秒程度の時間スケールなので、どうしても1本あたりの時間が長く、なかなか進まない。たぶん数日動かすことになるだろう。パラメータ空間を広く取りすぎているかもしれない。
具体的にどういうスコアを最大化するかはCodexがよしなに決めたので、本当に望むとおりの結果が得られるのかも正直わからないが、AIに雑に投げてやってくれること自体が驚異なので、そこはあとで考えればいいやと思っている。
こういう雑なソフトウェア作成ならAIコーディングは楽しいんだけど、仕事だとそうもいかないので、そういう時はちょっと面倒。でもそれは指示の出し方が下手なだけかもしれないし、来年には解消されていそうな気もする。
寝ます。
粉体シミュレイタの映えるパラメータを探そうとしているのだが、こんなもん人力でやる必要はないので自動探索させられないかCodexに相談したら、Optunaでやれるんじゃない?とのことだったので、やらせようとしている。どんな感じになるのかな。
寝ます。
粉体シミュレイタのパフォーマンスがCodexによって10倍くらい向上した。GPU計算がボトルネックではなく、非効率な処理があったので、そこを除去しただけだけど。でも元のコードを書いたのもCodexなんだから、最初からそうしてくれよという話ではある。
パラメータの探索はなかなかうまくいかない。一方に偏らせるのは簡単なのだが、周期的に変動させるのには職人技がいる。とはいえ高速化によって試行回数は大幅に増やせるようになったので、数日中には何かしら見つかるでしょう。
寝ます。
6の3乗というキリの良さがゆえに、この日が金正日元総書記の誕生日であるということを忘れられずにいる。そういうこともある。
粉体シミュレイタはCloudflareにデプロイするところまで。ChromeとFirefoxでは動いたが、Safariではなぜか動かない。Edgeでは試していないが、まあ中身はChromiumだった気がするし動くんでしょう。
Chromeで動かすのがネイティヴより速いことがわかってびっくりした。おそらくChromeのWGSL処理系がFirefoxのそれより速いコードを出すとかなんだろう。Firefoxのは要するにwgpuなので、bevyでネイティヴ動作させるときと同条件、というのがチャピ公の見解だった。wgpuって遅いのか?
あと、Chromeでだけ実行がだんだん遅くなる現象があったので、プロファイラを見て解決した。GCがだんだん遅くなってるし、なんか謎のアロケイションが多発してるよとCodexに教えたら、bevyのログプラグインを止めれば?と言ってきて、実際それで直った。AIとの美しき協働!
寝ます。
粉体シミュレイタはほぼ完成形になってきた。設定ファイルをtomlで渡せるようにしたり、ブラウザでの表示を最適化したり。これまでwasm-packを使っていたけど、trunkのほうがだいぶ便利なのでこれからはそうしたい。
Cloudflareにアップロードするとこまでやりたかったが、wasmのサイズが制限に引っ掛かったので、なんとかして小さくする。なんでこんなに大きいんだろうな。bevyがデカいのか?
寝ます。
SNSの普及によって人心が荒廃し、人々は「なぜ悪いのか」と「なぜ炎上したのか」の区別ができなくなっていった。
粉体シミュレイタのブラウザ対応をしたり、UIを整えたりしている。もうすこしで公開できるだろう。あとはデモ用にちょうどいいパラメータを見つける作業をやる。
このプロジェクトはほとんど自分でコードを書いていない。まあ、それで順調だったかというと必ずしもそうでもなく、自分でちゃんと勉強して修正したほうが早かったのでは?と思うこともあったが、遠からずそういう時代でもなくなるのだろうし、こういうのに慣れていくべきなのだろう。
寝ます。
粉体シミュレイタのリファクタを進めた。ある程度見通しよくはなったかなと思うが、よく見ると無駄な処理がまだ見つかる。あとrayon並列化の範囲を広げたのだが、期待したほど高速化はしなかった。結局GPUのほうが3倍くらい速いのかな?最初の頃の実装ではそんなに差が無かったと思うが、あれは何だったのか。
ともあれそろそろ見た目を整える頃か。あとWebブラウザ対応。
寝ます。
Bevy(というかwgpu)のことが少しずつわかってきたので、Codexに指示をしてリファクタリングをしている。処理を自然な単位に分割して見通しよくしたい。それが終わったらCPUバージョンの高速化をしたい。rayonでやってくれって言ったはずなんだけど全然やってなさそう。もしかすると結局CPUのが速いですねになるかもしれない。
寝ます。