Hope is a Dream. Dream is a Hope.

非公開ブログは再開しました。

NiceHashOSでマイニング

余っているGPUを2枚使ってマイニングができるのか試してみた。 (実験的に数日試してみた程度です。税金など発生するので自己責任でお願いします)

セットアップは簡単で、NiceHashのOSことNHOSをUSBに焼いてブートするだけ。 焼き込みのソフトウェアは配布されています。

f:id:hope_is_dream:20210328143318p:plain

現在稼働中の2枚

f:id:hope_is_dream:20210328143046p:plain

片方の温度だけ10°ほど高いのが気になります。 壊れるのは勿体無いので冷却など考えたい。

Fan制御の設定をいじってみる。

f:id:hope_is_dream:20210329021022p:plain

熱の問題への対応

Power mode

nice hashでは三種類のパワーモードを設定される。計算負荷のことぽい。 計算負荷と熱の関係が線形じゃないぽいので、程々の計算負荷で熱効率がよくなる。

f:id:hope_is_dream:20210329022717p:plain

f:id:hope_is_dream:20210329022542p:plain

ファンの調整

NHOSのconfiguration.txtをつかってGPUのFan Curveをいじれるらしい! How to set custom fan curve in NiceHash OS? | NiceHash

{
    "rig": {
        "btc": "",
        "worker": "",
        "group": ""
    },
    "access": {
        "ssh": {
            "key": ""
        }
    },
    "network": {
        "wireless": {
            "ssid": "",
            "key": ""
        }
    },
    "fan_control": [
        {"tmpc": 40, "spdp" : 90},
        {"tmpc": 45, "spdp" : 90},
        {"tmpc": 50, "spdp" : 90},
        {"tmpc": 55, "spdp" : 90},
        {"tmpc": 60, "spdp" : 90},
        {"tmpc": 65, "spdp" : 90},
        {"tmpc": 70, "spdp" : 90},
        {"tmpc": 75, "spdp" : 90},
        {"tmpc": 80, "spdp" : 100},
        {"tmpc": 85, "spdp" : 100},
        {"tmpc": 90, "spdp" : 100}
    ]
}

前 : - 67℃ / 2804 RPM - 82℃ / 1959 RPM 後 : - 61℃ / 3600 RPM - 82℃ / 2162 RPM

単純にFANの限界みたい。

ファンを追加することも考えよう。理想は70℃程度に留めたい。 価格.com - ケースファン スペック検索・性能比較

ケーシングの横蓋を 開けると - 56℃ / 3600RPM - 72℃ / 2073RPM 閉めると - 63℃ / 3600 RPM - 82℃ / 2162 RPM

ケーシングのあるなしで大分違うみたいw

久々にブログでも始めるかな

久々にブログでも始めるかな

前回の投稿が「2019-07-04」なので、、1年半前ぐらい? あれから会社が2回変わっていま改めてR&D的なポジションになったのでまた自由研究もできそう。 今年はゆるーく自由研究課題を探して行きたい。

競馬と工作の人は定期更新を続けていて尊敬ですね マイナンバーカードを使って、国税庁の確定申告書作成コーナーの作成作業の開始にたどり着くまでにやったこと - 工作と競馬2

最近は、機械学習に重きを置いた一年だったので、記事もQiitaにあげたりでした

細かすぎて伝わらない機械学習するときの環境構築Tips集 - Qiita

arXiv を DeepL して Slack する Bot を Github Action で作った話 - Qiita

機械学習環境構築 macbook 2021 - Qiita macのマルチユーザ環境でjupyter notebookが500エラーを返す場合の「おまじない」 - Qiita 2021年1月 Docker-composeでOpneModelicaの開発環境を構築(Mac) - Qiita MacでUSBのフォーマットの色々 - Qiita

MacでWindows10 ブートUSBの作り方 - Qiita

今年は何しようか。 仕事ではIoT開発のマネジメントと、機械学習ディレクションと、マネジメント職になってきた。

一つの会社では実験LABを使えるので、ハード系モノ作りができそう。

機械学習系も最新ツールだったり、不勉強な領域はサンプルコードで勉強して行きたかったり。

音系の興味も尽きないので、新しい音楽を聴いたり。

子供ができたのでおもちゃを作ったり。

親父がリタイアして暇しているので機械工作ネタを考えたり。

色々出来そうかな。

毎月1000PVあるのが不思議だ。誰がなんの記事を見に来るのだろ。不思議だ。

f:id:hope_is_dream:20210328113902p:plain

アフェリエイト(2020年1月~12月) 1000円ぐらい? 技術書がかわれいている。ちょっと嬉しい。 f:id:hope_is_dream:20210328114229p:plain

2021年はkindleの紹介プログラム f:id:hope_is_dream:20210328114444p:plain

Raspberry Pi 3 Model B の起動時間の高速化

ラズパイを使ってIoTデバイスを作りテストを行っている。 PoCに耐えきれるかテストするため、電源のON/OFFテスト1000回や、周辺デバイスの調子が悪い環境での動作テスト1000回ノック等をやっている。 こうも起動回数が増えてくると、起動時間の長さが気になってきたので、高速化を検討した。

結果(今回の場合だと) 起動時間 10秒5秒短縮されたので、備忘録を兼ねて記事にした。

ラズパイの起動時間を調べる

現在の状態での起動時間を調べる。

現状10秒かかっている。

$ systemd-analyze time

Startup finished in 2.117s (kernel) + 8.655s (userspace) = 10.772s

$ systemd-analyze blame

          5.020s hciuart.service
          3.711s apt-daily.service
          1.464s apt-daily-upgrade.service
          1.446s dev-mmcblk0p2.device
           617ms keyboard-setup.service
           505ms raspi-config.service
           449ms networking.service
           424ms dphys-swapfile.service
           416ms ssh.service
           406ms systemd-fsck@dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.service
           343ms systemd-timesyncd.service
           326ms rsyslog.service
           280ms systemd-udev-trigger.service
           280ms systemd-udevd.service
           277ms wpa_supplicant.service
           230ms dhcpcd.service
           223ms systemd-fsck-root.service
           221ms systemd-tmpfiles-setup-dev.service
           218ms systemd-logind.service
           175ms avahi-daemon.service
           169ms plymouth-start.service
           168ms systemd-journald.service
           151ms sys-kernel-debug.mount
           130ms run-rpc_pipefs.mount
           125ms fake-hwclock.service
           125ms systemd-remount-fs.service
           122ms triggerhappy.service
           120ms dev-mqueue.mount
           120ms kmod-static-nodes.service
           120ms systemd-journal-flush.service
           113ms bluetooth.service
           107ms systemd-rfkill.service
           105ms systemd-random-seed.service
            90ms wifi-country.service
            84ms systemd-tmpfiles-setup.service
            81ms user@1000.service
            81ms systemd-modules-load.service
            71ms systemd-sysctl.service
            66ms alsa-restore.service
            64ms systemd-update-utmp.service
            56ms sys-kernel-config.mount
            52ms systemd-update-utmp-runlevel.service
            52ms console-setup.service
            49ms boot.mount
            49ms nfs-config.service
            44ms rc-local.service
            33ms plymouth-read-write.service
            30ms plymouth-quit.service
            30ms plymouth-quit-wait.service
            21ms systemd-user-sessions.service

$ systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

graphical.target @8.494s
└─multi-user.target @8.493s
  └─hciuart.service @3.470s +5.020s
    └─basic.target @3.275s
      └─sockets.target @3.265s
        └─triggerhappy.socket @3.265s
          └─sysinit.target @3.256s
            └─systemd-timesyncd.service @2.908s +343ms
              └─systemd-tmpfiles-setup.service @2.802s +84ms
                └─local-fs.target @2.755s
                  └─boot.mount @2.701s +49ms
                    └─systemd-fsck@dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.service @2.278s +406ms
                      └─dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.device @2.274s

サービスの起動を追っていくと、 hciuart.service5秒もかかっているぞ。

$ systemctl | grep running

init.scope                        loaded active running   System and Service Manager                                                            
session-c4.scope                  loaded active running   Session c4 of user pi                                                                 
session-c5.scope                  loaded active running   Session c5 of user pi                                                                 
avahi-daemon.service              loaded active running   Avahi mDNS/DNS-SD Stack                                                               
bluetooth.service                 loaded active running   Bluetooth service                                                                     
cron.service                      loaded active running   Regular background program processing daemon                                          
dbus.service                      loaded active running   D-Bus System Message Bus                                                              
dhcpcd.service                    loaded active running   dhcpcd on all interfaces                                                              
getty@tty1.service                loaded active running   Getty on tty1                                                                         
hciuart.service                   loaded active running   Configure Bluetooth Modems connected by UART                                          
rsyslog.service                   loaded active running   System Logging Service                                                                
ssh.service                       loaded active running   OpenBSD Secure Shell server                                                           
systemd-journald.service          loaded active running   Journal Service                                                                       
systemd-logind.service            loaded active running   Login Service                                                                         
systemd-timesyncd.service         loaded active running   Network Time Synchronization                                                          
systemd-udevd.service             loaded active running   udev Kernel Device Manager                                                            
triggerhappy.service              loaded active running   triggerhappy global hotkey daemon                                                     
user@1000.service                 loaded active running   User Manager for UID 1000                                                             
wpa_supplicant.service            loaded active running   WPA supplicant                                                                        
avahi-daemon.socket               loaded active running   Avahi mDNS/DNS-SD Stack Activation Socket                                             
dbus.socket                       loaded active running   D-Bus System Message Bus Socket                                                       
syslog.socket                     loaded active running   Syslog Socket                                                                         
systemd-journald-dev-log.socket   loaded active running   Journal Socket (/dev/log)                                                             
systemd-journald.socket           loaded active running   Journal Socket                                                                        
systemd-udevd-control.socket      loaded active running   udev Control Socket                                                                   
systemd-udevd-kernel.socket       loaded active running   udev Kernel Socket                                                                    
triggerhappy.socket               loaded active running   triggerhappy.socket                                                                   
                                                              

どうも Bluetooth関連のサービスである。 今回、Bluetoothは不要なので、bluetooth.service と一緒に停止する

bluetooth.service                 loaded active running   Bluetooth service                                                                     
hciuart.service                   loaded active running   Configure Bluetooth Modems connected by UART                                          

bluetooth関連サービスの停止

BT関連のサービスを2つ停止

sudo systemctl disable bluetooth.service
sudo systemctl disable hciuart.service

再起動後の起動時間計測結果

$ systemd-analyze time

Startup finished in 1.842s (kernel) + 4.153s (userspace) = 5.995s

$ systemd-analyze blame

          1.353s dev-mmcblk0p2.device
           648ms keyboard-setup.service
           625ms dphys-swapfile.service
           433ms systemd-fsck@dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.service
           411ms networking.service
           367ms ssh.service
           341ms systemd-timesyncd.service
           295ms rsyslog.service
           292ms systemd-udev-trigger.service
           261ms wpa_supplicant.service
           253ms systemd-udevd.service
           250ms systemd-fsck-root.service
           240ms raspi-config.service
           216ms kmod-static-nodes.service
           212ms systemd-tmpfiles-setup-dev.service
           204ms plymouth-start.service
           196ms dhcpcd.service
           174ms avahi-daemon.service
           172ms dev-mqueue.mount
           161ms fake-hwclock.service
           158ms systemd-journald.service
           142ms run-rpc_pipefs.mount
           138ms systemd-modules-load.service
           131ms sys-kernel-debug.mount
           128ms systemd-logind.service
           123ms systemd-remount-fs.service
           113ms systemd-journal-flush.service
            99ms triggerhappy.service
            95ms systemd-tmpfiles-setup.service
            91ms user@1000.service
            90ms alsa-restore.service
            83ms systemd-random-seed.service
            77ms systemd-update-utmp.service
            65ms systemd-rfkill.service
            60ms wifi-country.service
            46ms systemd-sysctl.service
            44ms plymouth-read-write.service
            36ms console-setup.service
            33ms plymouth-quit-wait.service
            33ms rc-local.service
            32ms boot.mount
            32ms plymouth-quit.service
            31ms systemd-user-sessions.service
            31ms sys-kernel-config.mount
            30ms nfs-config.service
            28ms systemd-update-utmp-runlevel.service


$ systemd-analyze critical-chain

graphical.target @4.117s
└─multi-user.target @4.117s
  └─ssh.service @3.749s +367ms
    └─network.target @3.724s
      └─wpa_supplicant.service @3.462s +261ms
        └─dbus.service @3.278s
          └─basic.target @3.257s
            └─sockets.target @3.253s
              └─triggerhappy.socket @3.249s
                └─sysinit.target @3.230s
                  └─systemd-timesyncd.service @2.886s +341ms
                    └─systemd-tmpfiles-setup.service @2.773s +95ms
                      └─local-fs.target @2.756s
                        └─boot.mount @2.718s +32ms
                          └─systemd-fsck@dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.service @2.275s +433ms
                            └─dev-disk-by\x2dpartuuid-8fadf6a9\x2d01.device @2.271s

結果

// 前
Startup finished in 2.117s (kernel) + 8.655s (userspace) = 10.772s
// 後
Startup finished in 1.842s (kernel) + 4.153s (userspace) = 5.995s

起動時間が10秒から5秒に短縮されました。

(おまけ) 起動時のメッセージを抑制

ほとんど早くなりませんが。起動を目視していると、表示項目が少し減るので、気持ち早く感じました。

/boot/cmdline.txtの末尾に「quiet」を追加して、起動時のメッセージを抑制します。 参考

$ systemd-analyze time
Startup finished in 1.464s (kernel) + 3.909s (userspace) = 5.373s

以上