ちょっと業界のビジネス的には余計なものを使ったかもしれません。。。
PyTorchでQUBO計算をすると巨大なQUBOアニーリングが簡単にできてしまいます。
現在Tytanに載せる作業中です。
ベンチマークをとってみます。
量子ビット数1000
QUBO行列ランダム
CPU intel Xeon Gold 6132 x2
GPU NVIDIA V100 16G x1
という構成でトライしてみます。正直CPUも十分高速です。
アニーリングの初期値や繰り返し回数などはこちらで適当に設定したものです。
結果です。モード、速度(秒)、コスト関数の値の順で表示しています。
CPU MODE
15.264014720916748
Objective function value: -5375.50390625
GPU MODE
22.13276958465576
Objective function value: -5120.6298828125
まだこれくらいならCPUが早いですね。
量子ビット数2000
CPU MODE
20.21289300918579
Objective function value: -15316.19140625
GPU MODE
19.873959064483643
Objective function value: -15804.3359375
なんかちょっと GPUのほうが早くなってきました。
量子ビット数3000
CPU MODE
23.65611505508423
Objective function value: -28199.31640625
GPU MODE
29.1566903591156
Objective function value: -27384.81640625
さっきのは運が良かっただけのようです。
量子ビット数5000
CPU MODE
113.20319724082947
Objective function value: -58014.515625
GPU MODE
38.09103536605835
Objective function value: -59421.4765625
GPUが強くなってきました。
10,000量子ビット
ここまでくるとCPUでは計算がもはや終わりません。
GPUのみで計測してみます。
GPU MODE
157.4690477848053
Objective function value: -171032.09375
計測結果をまとめてみました。
さすがPyTorchです。VRAM16Gでも10,000量子ビットもなんのそのでした。簡単に量子ビットが増やせそうです。