EC2のGPUインスタンスでMonacoinを掘ってみる。 その1の続き。
今度はcg1.4xlargeのスポットインスタンスでCUDAMinerとCPUMinerを回してみた。
なぜCPUMinerも回すのかと言うとCUDAMinerにはCPUMiner機能も搭載されているが、フルパワーで動かないため。
リージョンは前回と同じus-east-1、
AMIはAmazon Linux AMI (HVM) 2013.09.2 - ami-e9a18d80(HVMじゃないとGPUインスタンスを選択できない)。
cg1.4xlargeは4コアCPU(HTありで16 CPUsに見える), 2 GPUs(NVIDIA Tesla M2050)のインスタンス。
ちょっと長い気がするので続きを読むから。
設定
以下のようにcudaminerとcpuminerの設定を行った。
開発ツールと必要なライブラリを導入する
$ sudo yum -y update $ sudo yum -y groupinstall "Development Tools" $ sudo yum -y install git libcurl-devel python-devel screen rsync yasm numpy openssl-devel $ wget http://developer.download.nvidia.com/compute/cuda/5_5/rel/installers/cuda_5.5.22_linux_64.run $ sudo sh cuda_5.5.22_linux_64.run
ただこのままだとCUDAドライバのインストールでカーネルソースがないと言われインストールに失敗する。なので、
$ sudo yum -y install kernel-devel-`uname -r`
として利用しているカーネルソースをインストールしてやればOK。
CUDAドライバのインストール時はサポートされてないよ?みたいなメッセージが出てくるのでyesと入力して続行する。Examplesのインストールは不要。
CUDAMinerをコンパイルする
$ git clone https://github.com/cbuchner1/CudaMiner $ cd CudaMiner $ git reset –-hard 88c6da6d5c2b798d1de7031e8dbcc2678f635e4b $ ./configure $ PATH=/usr/local/cuda-5.5/bin:$PATH make
git reset〜でバージョンを戻さないとコンパイルに失敗する。
CPUMinerをコンパイルする
$ git clone https://github.com/pooler/cpuminer $ cd cpuminer $ ./autogen.sh $ ./configure CFLAGS="-O3" $ make
起動してみる
CUDAMinerは
# LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64 ./cudaminer -o stratum+tcp://anypool.example.com:6666 -u example.1 -p x -d 0,1 -l auto,auto -C 1,1
2つのGPUを自動設定で稼働させる(そっちの方がハッシュレートは良さそう)。root権限で起動していた例もあったので自分はroot権限で動かした。
CPUMinerは
$ ./minerd -o stratum+tcp://anypool.example.com:6666 -u example.1 -p x -t 14
anypool.example.com:6666やexample.1、xは各自変更すること。
screenコマンドなどを使うといいかも(yumで導入してあるので)。
結果
- CPU(14スレッド)+GPU(2スレッド)の合わせ技で350kH/s以上を記録。
- マイニングプールの表示だと400kH/s以上出た時も。
- 2-3時間で2.5MONAは掘れたかな。
- g2.2xlargeでもCUDAMinerを自動設定にしたら高速になったかも(g2.2xlargeはGPU1つだがCUDAコア数が多かったりする)。
まぁ結局は
赤字なんですけどね!
(当時cg1.4xlargeのスポットインスタンスの最低入札金額が$0.35からだった。執筆時点で1MONA≒5円。まぁお察しください)
(前回のg2.2xlarge(通常のインスタンス)よりもスポットインスタンスのcg1.4xlargeの方が安かったのは秘密だよ)
(あとまた掘るかもしれないからAMI化したのも秘密だよ)
ちょっとメモ
- CUDAMiner,CPUMinerともにアルゴリズムを指定していないが、scryptがデフォルトなので特に指定しなくても大丈夫。
- AMI化は5-10分ほどかかる。
- 稼働時間に注意。あと少しで1時間超えそうなところでstopなどしてしまうと停止までに1時間をわずかに超えてしまい2時間分の料金を請求されるかも(g2.2xlargeの時にやってしまった)。
- スポットインスタンスは料金が指定した入札金額を超えると突然止まることもあるので注意。継続リクエストを設定している場合でEC2のコンソールから目を離す場合はいつ再開しても大丈夫なようにしておいた方が吉?(自動実行とか)。
- AMI作成で再起動されたあとCUDAドライバが読み込まれない現象が発生。再インストールで直ったが。一応/etc/ld.so.confにCUDAドライバのパスを指定してAMI作りなおしたけどどうかなぁ。