おれが今開発しているGPU並列アルゴリズムライブラリ「massively」は、もともとNVIDIA/Thrustのようなものを作ることを第一目標としていたのだが、 さらに拡張して、疎行列を表すCSR形式を念頭においてリストがネストした場合のアルゴリズムを実装することにした。
しかしそうなると、massivelyはそもそも 「様々なデータ構造に対する並列プログラミングプリミティブを提供するライブラリ」という立ち位置を目指していたことにして、 グラフライブラリにも手を伸ばすのがよかろうという話になってくる。
グラフアルゴリズムというと、ふつう、BFSとかページランクとかそういうのを思い浮かべるだろうが、 研究の世界では、それらを小さな操作集合の組み合わせによって表すことが出来ないだろうかと、「グラフアルゴリズムプリミティブ探し」が行われているようだ。
その一つがカリフォルニア大学の研究チームが進めているGunrockであり、Gunrockはadvance, filter, parallel_for, neighborreduce, uniquifyという5つの操作があれば 大抵のグラフアルゴリズムは書けるということを主張している。
massivelyでも当初、Gunrockのプリミティブを実装したのだが、どうも効率的ではないし美しくもない というおれの直感が働いた結果、 チャッピー(GPT5.6 Sol xhigh)に対してGunrockのことは忘れてもらった上で、ゼロから新しい理論を考えてもらった。 数学の世界ではもうすでに未解決問題がAIに解かれてるし、最近競プロでも世界大会においてAIが圧勝したし、 Gunrock自体長年の研究のしがらみ的なものもあって真に最善とは言えないだろうとも思うので、 チャッピーが人知を超えた概念を生み出してくれる可能性はあった。
そして生まれたものが「Traversal Algebra」である。従ってmassivelyはTraversal Algebraに基づいたグラフライブラリを提供していることになる。 何をしているのか聞いてもさっぱりわからないが、いわゆるグラフアルゴリズムを書かせてみるときれいに書けているので 完全に間違ってはなさそうだ。
AIを使った開発は、「人間が出来ることを高速でやらせる」と「人知を超えさせる」の2種類があるが、 おれがワクワクするのは後者だ。人知を超えたことをさせなければ、真にAIを使ってるとは言えないだろう。