──電竜戦での解説をうかがっていたら、「キャッシュに乗り切る」みたいな話が……。
磯崎:
そうですね。従来の評価関数って、ランダムアクセスに近い形なので、いろんなところから取って来る。そうすると、CPUの中にあるメモリから追い出されてしまうんです。「もうここ使わへんやろ」と。
ところがNNUE評価関数は、CPUのメモリの中に収まるんです。小さいから。
──層が浅いから、サイズが小さい。だからCPUのメモリにすっぽり収まる。そこが速度に繋がっていて、強さにも繋がるわけですか。
磯崎:
CPUの外部にあるメモリには、そんなにアクセスしなくて済む。そういうところで速度が稼げてる部分はあります。
──スレッドリッパー3990Xのような高額なCPUを使うのも、CPUのメモリを大きくするためなんですか?
磯崎:
いや、もっと古いCPUにも乗るんです。スレッドリッパーを使う利点は、CPUコアの数が多いということです。
──コア数が多いと、速く計算できる。前回のインタビューでうかがったお話ですね。
磯崎:
CPUキャッシュは、最近になって突然大きくなたっとか、そういうことはないみたいなので。1コア当たりではね。
──水匠は『標準NNUE』ということなんですが、この標準とはどういう意味なんです?
杉村:
三層であって、その最初の層は256×2個のニューロン。そして2層目に32個のニューロン、3層目に32個のニューロン、という要素しかないNNUE関数ということです。
開発者の那須悠さんのおかげで、それをもっと深い形にしたり……三層じゃなく何十層にしたり、あと一層をもっと広くしたりもできるんです。(第28回世界コンピュータ将棋選手権 那須さんのアピール文書)
──ほぉぉ……。
杉村:
標準は、開発した那須さんおよびT.N.K.(たぬき)チームが使っていた形式です。で、それを変更したほうが強くなるんじゃないかっていう実験は、当然やられてはいたんです。18年~19年くらいに。