投稿

2月, 2019の投稿を表示しています

Radeon RX470 Miningチャレンジ失敗の話

イメージ
暗号通貨ブームで売り出され、値崩れとともに格安で放出されたRX470 Mining版が調達できたので、これ機械学習に使えるのでは!?という目論見で自宅サーバをセットアップまでしました。

これがどういうシロモノかというと「出力系統が一切ついていないRadeon」です。HDMIやDisplayPortのようなシャレたものはもちろん、DVIなども一切ありません。Radeonなのにゲーム用途を一切想定していない、マイニングのためだけに生まれた時代の徒花がグラフィックカードの形をとって生まれた子。

キワモノ製品だけど、OpenCLが動くんならちょっと頑張れば機械学習にも使えるやろ、という見込みでArch機に挿してちゃんと認識もされました。CUDAに比べるとOpenCLでの機械学習は面倒事が多そうですが、安さとOpenCLを応援する気持ちでそこは織り込んで乗り越えるつもりでした。

が!騒音がすごい。あまりにすごい。

自宅では既にGeForce RTX1070搭載のマシンで機械学習を回していました。静音性の高いケースに入れていることもあり、フルロードでも「あー耳をすませば全力で回転してるんだな」という程度でした。冷蔵庫やエアコンの方がよほど音がするので、気にすることはなかった。それがこのマイニングGPUだと、音の絶対量も大きいし変な共鳴もして頭が痛くなってくる。

冷静に考えるとこの手の製品はデータセンターやサーバルームで回すことが想定されるわけで、冷却できればファンの静音性なんて気にする理由は一切ないわけですよね。出力系統がなくてお安いのは合理的じゃん!と思ったら、静音性もカットされる合理性のせいでご家庭で使えるものではなかった、というオチがつきました。

マキネーション図とボードゲームの経済エンジンのデザイン

ゲームデザイン用ツールにMachinationsというものがある。マキネーション図(machination diagram)を作成して、それに沿ったシミュレーションまで出来るツール。
https://machinations.io/

以前に発売されたゲームメカニクス本で使われていて、当時それなりに話題になった本だったのでMachinationsを触ったこともある。ある程度触った感想としては「やりたいことは分かる」「でもMachinationsでシミュレーションに値するものを組むのは大変、シミュレーションレベルの詳細度でやるなら普通にプログラミングする」だった。

ところで私は最近になって、経済エンジンを組み入れたボードゲームデザインをしている。”経済エンジン”という単語はスパ帝の造語だったと思うが、要するに拡大再生産がある時に色々増えていくリソースがあったりするアレのこと。

スパ帝が以前ゲームデザイン本の中で、経済エンジンには多脚構造が必要という話をしていた。その本の主張の内容は妥当だけど、いかんせん全てが散文で書かれているので現実のゲームデザインで実践するには微妙にハードルが高かった。頭の中で経済エンジンの各要素を動かして多脚にするのはワーキングメモリも圧迫がキツく、彼のように地頭に恵まれない人には実行に難がある。ゲームデザイン理論自体は正しいだけに、これは困った。

ということで、ゲームメカニクスレベルの内容を紙とペンでグラフ(折れ線グラフ等のグラフではなく、ノードとエッジ・点と 線で関係を表す方のグラフ)に書き出して、冗長な部分やゲームが単線になっていないかチェックすることにした。この形式にしておけば、グラフの簡約が自動化できる可能性もあるし、最高効率で回す最適解も理屈の上では計算できるかもしれない(これは最長路問題になりがちで、NP困難なわけだけど…)

ここまでやってみて気づいたこと:マキネーション図じゃねーかこれ!

最初に書いたように、Machinationsはシミュレータとして使うにはちょっと厳しいツール。でもマキネーション図は書いてみると、ゲームメカニクスの見通しが良くなるし根本的にアホな設計をする可能性は減らせそう。ということで、マキネーション図は理論的分析には今後は活用して行こうと思います。