テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(bphcuda report) ベンチマークが動くようになった

ここのところ私はbphcudaに没頭している. 昨日, 単体テストが動作するようになり, 今朝, ベンチマークが動作するようになった.

ベンチマークは4つある. wallshock, shocktube, sjogree, noh2dという名前がついている. 以下がテスト実行用のスクリプトを整理したもの.

desc "wallshock test"
task "wallshock_x" do
  sh "#{a}/wallshock_x 4000 1000 2 0.5 #{b}/wallshock_x_plot.dat #{b}/wallshock_x_time.dat"
end

desc "shocktube test"
task "shocktube_x" do
  sh "#{a}/shocktube_x 500 1000 2 0.15 #{b}/shocktube_x_plot.dat #{b}/shocktube_x_time.dat"
end

desc "Sjogreen test"
task "sjogreen_x" do
  sh "#{a}/sjogreen_x 4000 1000 2 0.1 7 #{b}/sjogreen_x_plot.dat #{b}/sjogreen_x_time.dat"
end

desc "Noh test (2d)"
task "noh2d_xy" do
  sh "#{a}/noh2d_xy 100 100 2 0.5 #{b}/noh2d_xy_plot.dat #{b}/noh2d_xy_time.dat"
end

引数は6つあり, 粒子数の係数, cell数の係数, s(内部エネルギーの交換に関する何か), 最終時刻, plot用データ, 各処理の計測結果のようである. 時間間隔は計算で(cell数などに依存して)決定するようである.

修士論文にはこれらの詳細が書いてあったと思うが, 残念ながら消失してしまい, もはや何も分からない. しかしコードはあるので, 動かすことは出来るし, コードレベルで改善していくことは出来る.

今後は,

  • 測定を行う(私が持っているのはGTX660というGPUです. 色々なGPUで実験したいです. GPUを持っている人がそれぞれ実験を行って, pull reqしてくれるというのが理想です. ビルドや実験を完全自動化する必要があります).
  • ベンチマークテストを自動化する
  • discard_iteratorなど, 最新thrustの機能を使い, 性能を改善する.
  • 全域的なリファクタリングを行う.
  • ドキュメントを作る(英語)

などが宿題である. 修士公聴会の資料も消失したので, すべて作り直してである上に作れる気がしない. 非常に困った. Dropboxに入れてあった気がするのだが・・・.

(追記)
修士論文を発見した. スライドも発見した. うーむ, 微妙だ. 成果ではなく, 書き方が微妙だ. 極めて低いやる気を感じる. 京都大学は, こんな男を卒業させてよかったのだろうか. 良かったのだろう. 結局, ストレージカーネルで活躍してるんだから.

コードについて, おれは良くこんなものを書けたなと感心する. 素晴らしい. なるほど3年前でこれだけ書ければ, なんとなくストレージに取り組み始めても適当にやれてしまうんだろう. ソフトウェア開発であれば, どんな分野でも活躍出来る気がする. ただし, まだ甘い. バランス感覚が甘い. やはり, カーネルを書いてみなければダメだ. このレベルからカーネルを書くにはいくつか飛躍が必要であり, 実際にそれが成し遂げられている. 色々な分野に口を出して全部制圧したい.