NQueens問題 (GPU)

初版:2012.03.23

GPU(グラフィックアクセラレータ:要はゲームPC)を使って、NQueens問題のSolverを高速化する試みです。

GPUを使ってNQueens問題を高速化する試みは幾つかあります。
その中で、大阪府立大学(大学院生Keiさん)の研究が最新かつ最良の成果のようです。
以下の成果はその大阪府立大学(大学院生Keiさん)との共同研究です。
deepgreenは初めてGPUのプログラムを組みましたが、CUDA環境は意外と簡単です。
しかし、GPUにも弱点があります。その弱点を如何に補うかが高速化の重要なポイントです。

今回はSomersのアルゴリズムをベースにQJH(odd)の代表解の選択条件を取り込みを図りました。(QJHについてはこちらを参照)
そのため、ク イーンの数(N)は奇数のみに限定しています。(プログラム名はnq_symGとしました)

nq_symG の成果
N=23の求解時間:約半日(電通大のPCクラスタ68CPU)の56.9Hの約4.7 倍高速
N= 27の求解時間(予測値):100台 x 約55日

[1] nq_symGの性能(最新版: 2012.02.17の測定データ)

    【測定環境】
          (要するにゲームパソコン1台)  
PC GPUNVIDIA GeForce GTX580
  キャッ シュ容量: 8MB コア 数  512
  メモ リ容量:4GB MPclock 1.54GH
  グラ フィックスドライバ:270.81 グ ローバルメモリ容量 : 1.5GB
  OS :Windows7 Home premium
        (32ビット版)
  共有 メモリ容量:48KB
【開 発環境】 
  コンパイラ:Visual C++ 2008 Express Edition
  CUDA : NVIDIA GPU Computing SDK 3.2 

 
    【最新の求解時間】
 
クイーン数 解 の数 求 解時間 備 考
15 2,279,184 0.22  
17 95,815,104 0.50  
19 4,968,057,848 9.72  
21 314,666,222,712 566.70  
23 24,233,937,684,440 43,782.58 (12H 09M 43S )
       
25 2,207,893,435,808,350      約50 日 (予 測値)
27          未 解決      約55 日 x 100台 (予 測値)

     ・ N=23の求解時間        : 電通大のPCクラスタ(68CPU)の約4.7倍高速
       ・ N=27の求解時間(予測値) : 100台 x 約55日 (ちょっと 現実味がでてきました)

    【他のプログラムとの比較】
     (他のプログラムも上記の環境で実測) 
単 一CPUのプログラム GPU を用いたプログラム
Somers版 部 分解合成法 田 中らの提案手法 本 提案手法
実測値 実 測値 相対比1 実測値 実 測値 相 対比2 相対比3
17 28.00 3.71 0.5 1.90 0.50 3.8 56.0
19 1,617.00 107.00 1.0 102.40 9.72 10.5 166.4
21 111,425.00 5,919.82 1.2 7,103.24 566.70 12.5 196.6

相対比1 : 田中らの提案手 法 / 部分解合成法
相対比2 : 田中らの提案手法 / 本提案手法
相対比3 : Somers版 / 本提案手法
    
    ・ 田中さん達の提案 手 法の10.5〜12.5倍高速
    ・ Somers版 (オリジナル版)の166〜196倍高速

[2] nq_symGの論理構造
   nq_symGの処理概要について、第27回ゲーム情報学研究会(2012.03.02 SIG-GI-27)で発表しました。その時の資料を公開しま す。

      論文:GI27-07.pdf  (約0.8MB)
      OHP:SIG-GI27-OHP.pdf (約 0.8MB)

[3] nq_symGソースコード

     開発環境は、Visual C++ 2008 Express Editionです。
   CUDA SDKとグラフィックドライバのインストールが必要です。(CUDAの入門書を参照)
   結果は、バッチコンソールに出力されます。

  【nq_symG】
     main   : nq_symG_main.cu
     kernel   : nq_symG_kernel.cu
     sample-log : nq_symG-N19-log.txt


[4] 参考情報
  
  論文の参考文献を参照されたい。


Home