1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M1 MacでのKAWPOW GPUマイニング

Posted at

M1での KAWPOW GPUマイニング

M1 Mac miniでkawpowminerを使用してKAWPOW(Ravencoin)のGPUマイニングをしてみました。

M1 Macでのイーサリアム GPUマイニングで使用したYifan Gu氏のethminerへの修正と同様に、M1に向けてlibethash-cl/CLMiner.cppへApple GPUの追加と依存関係にあるboost関連の修正とOpenSSLのアップグレードを行った自作のパッチを使用します。

ハッシュレートは800kH〜1MHぐらい、消費電力はサンワのワットモニターで測ると13~17Wでイーサリアムマイニングより電力を多く消費します。2021/5/3時点では1日数円程度の利益か電気代とほぼ同等程度なのでイーサリアムマイニングの方が稼げます。

kawpowminerのビルド

準備

ターミナルを起動してください。~/Downloads/以下で作業します。

$ cd ~/Downloads/

XcodeとCommand line tools for Xcodeが未インストールならばApp StoreからXcodeをインストールし、ターミナル上でCommand line tools for Xcodeをインストールしてください。

$ xcode-select --install

brewとcmakeが未インストールならbrewをインストールし、brew経由でcmakeをインストールしてください。

$ arch -arm64e /bin/bash -c "$(curl -fsSL $ https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ export PATH=/opt/homebrew/bin:$PATH
$ brew install cmake

kawpowminerのビルド

git経由でファイルを取得します。

$ git clone https://github.com/RavenCommunity/kawpowminer.git
$ cd kawpowminer
$ git submodule update --init --recursive

M1用パッチをcurlコマンドで取得し当てます。

$ curl -o kawpowminer-m1.patch https://gist.githubusercontent.com/asfdrwe/9bc5b447a8e2012c07ac9230b980a89f/raw/9c08bb7c45659950f8ab638c77cd41b6f55a480c/kawpowminer-m1.patch
$ patch -p1 < kawpowminer-m1.patch

cmakeでビルドします。NVIDIA用のCUDAを外す指定をしてください。初回cmake実行時のみ依存関係で必要なものをビルドするのでそれなりに時間がかかります。

$ mkdir build
$ cd build
$ cmake .. -DETHASHCUDA=OFF

kawpowminerをビルドして実行バイナリのあるフォルダに移動します。

$ make 
$ cd kawpowminer

kawpowminer GPUマイニングの実行

そのまま実行しようとすると、ethminerと同様に2021/5/3時点ではcl2Metalにバグがあるようで、日本語環境下ではOpenCLコードのバックスラッシュを円記号として扱ってしまい、正常に動作しないようです。

システム環境設定の言語と地域から英語環境を入れて優先する言語を英語にして実行するか、環境変数__CF_USER_TEXT_ENCODINGを英語設定にしてください。

uidをidコマンドで確認し__CF_USER_TEXT_ENCODINGの内容をechoやenvで確認します。uidが501(16進数で0x1F5)の場合はこうなります。

$ id
uid=501(asfdrwe) gid=20(staff) groups=20(staff),...

$ env | grep __CF_USER_TEXT_ENCODING
__CF_USER_TEXT_ENCODING=0x1F5:0x1:0xE

idが501(0x1F5)ならば__CF_USER_TEXT_ENCODING0x1F5:0x1:0xEから__CF_USER_TEXT_ENCODING0x1F5:0x0:0x0にすればcl2Metalのバグを回避できます。envコマンドかexportで__CF_USER_TEXT_ENCODINGの値を変更してkawpowminerを実行してください。

NiceHash poolを使用するならばこのようになります。他のプールの設定はGoogleで探してください。

$ export __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
$ ./kawpowminer -G -P stratum+tcp://『NiceHashの自分の報酬ビットコインアドレス』.『NiceHashの自分のWorker名(何でもいい)』@kawpow.usa-west.nicehash.com:3385

実行例

kawpowminer 1.2.3
Build: darwin/release/appleclang

 i 16:41:37           Configured pool kawpow.usa-west.nicehash.com:3385
 i 16:41:37           Selected pool kawpow.usa-west.nicehash.com:3385
 i 16:41:37           Stratum mode : Stratum
 i 16:41:37           Established connection to kawpow.usa-west.nicehash.com [[2606:4700:90:0:b61f:a5b7:e5e2:4342]:3385]
 i 16:41:37           Spinning up miners...
 i 16:41:37           Extranonce set to cead79
cl 16:41:37 cl-0      Creating buffers
cl 16:41:37 cl-0      Using PciId : Apple GPU 0.0 Apple M1 OpenCL 1.2  Memory : 5.33 GB
 i 16:41:37           Authorized worker xxxxxxxxxxxxxxxxxxxxxxx.xxxxxx
 i 16:41:37           New target set to: 0000000bc4656315000000000000000000000000000000000000000000000000
 i 16:41:37           Epoch : 231 Difficulty : 364.99 Mh
 i 16:41:37           Job: c293d6eb… block 1737641 kawpow.usa-west.nicehash.com [[2606:4700:90:0:b61f:a5b7:e5e2:4342]:3385]
cl 16:41:38 cl-0      Unable to lower compiler priority.
cl 16:41:39 cl-0      Pre-compiled period 579,213 OpenCL ProgPow kernel
cl 16:41:39 cl-0      Loaded period 579,213 progpow kernel
cl 16:41:39 cl-0      Unable to lower compiler priority.
cl 16:41:39 cl-0      Generating DAG + Light : 2.85 GB
cl 16:41:39 cl-0      Creating light cache buffer, size: 44.87 MB
cl 16:41:39 cl-0      Creating DAG buffer, size: 2.80 GB, free: 2.48 GB
cl 16:41:39 cl-0      Loading kernels
cl 16:41:40 cl-0      Pre-compiled period 579,214 OpenCL ProgPow kernel
cl 16:41:40 cl-0      Writing light cache buffer
 m 16:41:42           0:00 A0 0.00 h - cl0 0.00
 m 16:41:47           0:00 A0 0.00 h - cl0 0.00
 m 16:41:52           0:00 A0 0.00 h - cl0 0.00
 m 16:41:57           0:00 A0 0.00 h - cl0 0.00
 i 16:42:01           Job: 08daeddb… block 1737642 kawpow.usa-west.nicehash.com [[2606:4700:90:0:b61f:a5b7:e5e2:4342]:3385]
 m 16:42:02           0:00 A0 0.00 h - cl0 0.00
 m 16:42:07           0:00 A0 0.00 h - cl0 0.00
 m 16:42:12           0:00 A0 0.00 h - cl0 0.00
 m 16:42:17           0:00 A0 0.00 h - cl0 0.00
 m 16:42:22           0:00 A0 0.00 h - cl0 0.00
 m 16:42:27           0:00 A0 0.00 h - cl0 0.00
cl 16:42:27 cl-0      2.80 GB of DAG data generated in 47,963 ms.
cl 16:42:27 cl-0      Loaded period 579,214 progpow kernel
cl 16:42:27 cl-0      Unable to lower compiler priority.
cl 16:42:28 cl-0      Pre-compiled period 579,215 OpenCL ProgPow kernel
 m 16:42:32           0:00 A0 0.00 h - cl0 0.00
 m 16:42:37           0:01 A0 862.55 Kh - cl0 862.55
 m 16:42:42           0:01 A0 862.55 Kh - cl0 862.55
 m 16:42:47           0:01 A0 963.96 Kh - cl0 963.96
 m 16:42:52           0:01 A0 963.96 Kh - cl0 963.96
...

うまく実行できていれば900kH前後でマイニングできるはずです。また、NiceHashのmyページのmining rigのHISTORY & STATのActive workers に指定したWorker名で状況が表示されます。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?