0217
粉体シミュレイタのパフォーマンスがCodexによって10倍くらい向上した。GPU計算がボトルネックではなく、非効率な処理があったので、そこを除去しただけだけど。でも元のコードを書いたのもCodexなんだから、最初からそうしてくれよという話ではある。
パラメータの探索はなかなかうまくいかない。一方に偏らせるのは簡単なのだが、周期的に変動させるのには職人技がいる。とはいえ高速化によって試行回数は大幅に増やせるようになったので、数日中には何かしら見つかるでしょう。
寝ます。
粉体シミュレイタのパフォーマンスが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のが速いですねになるかもしれない。
寝ます。
ひさびさに出かけたけど天気は雨で残念だった。
粉体シミュレイタは基本的な実装が一段落したからAIが生成したコードを追っている。Bevyのこともあんまりよくわかっていないので、いろいろCodexに訊きながら。とりあえず初期化部分はわかったので、次はシェーダ?で計算をしている部分か。
寝ます。
粉体シミュレイタの実装はかなり改善され、弱いながらも粉体時計現象が見え始めた。つまり、それほど極端ではないが粒子の分布に偏りが見られ、それが周期的に移動するようになった。ちなみに粒子が1種類の場合はある条件で片側に偏ったままになる。2種類あると偏り方に遅延が生じるなどの理由で行ったり来たりするのかな?論文はあんま読んでない。
あとはリファクタリングをしたりパフォーマンス改善したりした上でブラウザで動作させたいと思う。道はまだ遠い。
寝ます。
よく考えると小選挙区制って全然意味不明の仕組みだなと思った。全部の選挙区の1番人気だけ集めて来るのは、少なくとも民意反映システムとしてはどうかしているだろう。こうしたい理由も理解はできるが……。
粉体シミュレイタの実装をちまちま修正している。粒子の衝突時にたまに爆発的に加速してしまう問題があるのだが、これがGPUでのみ発生しているのでなんかそのあたりのロジックが悪いのだろうと思い、Codexに探させている。解決できるといいんだけど。
寝ます。
選挙行ったりバタバタしてたら一日が終わった。雪が降ったらしく、小さな雪だるまが点々と置かれており、人々がはしゃいでいる様子がわかった。
寝ます。