背景

GPU (General Processing Unit) は汎用的な処理装置であり、今まで熱燗やココアを作ってきました。 しかし、熱コンの報告書のFuture workに書いたとおり、私はローストビーフを食べたいのです。
そう、GPUで低温調理です!

加熱器構成

例によってGPUはNVIDIA Tesla K20 2枚で、水冷で熱を奪います。
冷却液は高温の状態でタンクに貯め、GPUへの入力の直前にラジエータで冷やします。
冷却液タンクに加熱対象物を入れる設計です。
毎年GPU熱燗をやっているので構築はこなれたものです。
Kepler世代のGPUは最新のNVIDIA Driverではサポートされていないので、古いドライバをインストールします。
このあたりはArchLinuxを使っていればAURに古いのが置いてあるので、yayなどで入れるだけです。

調理

ローストビーフのレシピはこのあたりを参考にしました。
手順としては、

  1. お肉を58度で3時間40分ロースト
  2. 塩を含めて1時間放置
  3. 表面をこんがり焼く
と言った感じです。
この内1番のみをGPUを使って行います。
3番も頑張ればできなくないと思いますが、GPUは適正な温度範囲内で動かさないと死ぬので、今回はなしです。
(GPUの売りは計算もできる調理器具であることなので、計算できない状態で使用するのはいかがなものかと)

ローストでは、特製の冷却液タンクに袋に入れたお肉を沈めます。
加熱のために用いる計算は私の博士の研究テーマでもある単精度行列積です。
(欲を言えばTensorコアを搭載したGPUでやりたいので、NVIDIAさん、サンプルの提供をお待ちしております)
冷却液の温度はGPUの温度-7度くらいなので、nvidia-smiでGPUの温度が65度くらいで保たれるように、ラジエータのファンの露出を調整します。
GPUへの入力温度は測っていませんが、おそらくTSUBAME 3.0で採用されている温水冷却より高温です。
(HPLは滅ぶべきですが、)大規模化してTop500圏内に入ってGreen500の高順位を目指すのも良いかもしれません。

ロースト&放置が終わったお肉がこちら▼。
以前の鮮やかな赤さは抜けました。
これをこんがり焼いていきます。

出来上がったのがこちら▼。
若干ローストし過ぎな気もしますが、初めてのローストビーフにしては美味しくできた気がします。
SGEMMの味がほのかにし、塩加減もいい感じです。

おわり

最近のNVIDIA GPU はどんどん消費電力が高くなっており、NVIDIAがより一層調理器具としての性能に力を入れていることが伺えます。
もちろん高火力なハードウェアがあることも大切ですが、その火力を十分に引き出すソフトウェア(CUDAカーネル)を書くことも大切です。
将来料理の味は個人のカーネルの最適化能力に依存する時代が来るかもしれませんね、日々精進。