2024年5月3日金曜日

Apple silicon の mac でGPUの使用率をもっとよく知りたい

 こんにちは

世間はゴールデンウィークとのことですが、せっかくの休みというのに何もやることがないわたくしは、いつもの通り家で映画やドラマを見ていたり、ゲームをしたり、まさに今やっていますが、ブログに意味のないことを書いてみたりしています。

もともとものすごく出不精のわたくしは、旅行に行ったり、買い物に出かけたりすることもあまりなかったのですが、最近は体の調子も悪いことも多く、家にこもりっきりという日が多いです。

仕事もほぼ在宅勤務ですし、毎日毎日会議があるわけでもない仕事なので、一日誰とも話さないで家の中にずっといることが本当に多くなりました。

全く関係のない前置きはこのあたりにして、MacBookのGPUの使用率をどうやって見るかという話です。Windowsであれば、タスクマネージャでGPUを見れば見えますが、macOSってどこで見るんだろ?と先日ふと疑問に思ってしまって、少し調べてみました。

一番簡単な見方は、アクティビティモニタの%GPUのところを見ればよいと思います。今は、CitiesSlylinesのIntel Mac版を起動しているところです。そういえば、Intel版でもGPUをちゃんと使うんですね。

もう一つ、もう少し詳しく見ることができるツールがあります。asitop という python で記述された(らしい)コマンドです。以下のような手順でインストール、起動をしてください。

sudo pip install asitop

sudo asitop

正常に起動すると下のようなテキストベースの画面が出てきます。赤い四角で囲んだ「GPU Usage」がGPUの使用率のようです。ANEというのはApple Neural Engineのことだと思います。今は全く使用していません。一番下の2つの枠は、CPUとGPU+ANEのそれぞれの消費電力に使用率のようです。消費電力以外は棒の本数と実際のコア数やメモリ容量と関係はないような。。。使用率が多くなればなるほど右側に伸びていくだけのようです。


Apple Neural Engineの使用率が見えるようになっただけかも。。。




2024年5月1日水曜日

Logitec LMD-SPCH100UAC というスティック型のSSDを購入しました

 こんにちは

ゴールデンウィークでお休みです。ただ、お休みなのは家族で私だけ。。。結局何もすることがなく、パソコンでゲームをしたり、ドラマを見たりしているだけです。。

さっそく本題です。

つい先日、スティック型のSSDを購入したばかりなのですが、これってめちゃくちゃ便利じゃね?となってしまいまして、もう一つ買ってしまいました。たくさんのパソコンのバックアップを取っているという話をさせていただいたと思うのですが、スティックをさす方がなんだか便利に感じてしまいました。なんで今までスティック型にしなかったんだっけな。。。。?当時はなかったのかな。。。?

というわけで、Logitec の LMD-SPCH100UAC というスティック型のSSDをもう一つ買ってしまいました。すみません。箱開けてしまいました。


すごくスリムです。


こちらは素晴らしいことに、写真の下側にあるスライドスイッチを右にずらすと、Type-Cインターフェースが出てきて、


左側にずらすと、Type-Aインターフェースがでてきます。


あまり意味があるかどうかわからないといいながら、ついついやってしまうベンチマーク。

こちらが、Logitec LMD-SPCH100UACです。



ちなみに、先日購入したHynix TUBE T31 も一緒に貼り付けておきます。


ベンチマークで比べるとHynixの方がちょびっと速いのかもしれませんが、Logitecの方がType-AもType-Cも使えるし、横幅が狭いので、隣のUSBに干渉しずらいかもしれないですね。

2024年4月23日火曜日

USB Type-A Type-C 変換ケーブルを買いました

 こんばんわ

先日、Hynix Tube T31 のスティック型のSSDを購入したのですが、コネクタがType-Aです。普段Type-Aのコネクタを使っているので別に問題ないといえば問題ないのですが、Type-Cで使うこともあるかもしれません。今、こんなことを書いていてふと思い出したのですが私が持っているMacBookはType-Aがないです。MacこそType-Cへ変換する必要があります。

そんなわけで、Type-Aのスティック型のSSDをType-Cに変換するケーブルを購入しました。これで、先ほどまですっかり忘れていたMacBookでも使うことができます!

最近、先にあけてしまいますよね。。。直接さすようなやつもあったのですが、すこーしだけケーブルがあった方がいいかなとか思ってこんな形のものにしました。


形はともかく3.1Gen2または3.2Gen2の10Gbpsに対応していることが重要です。せっかくの性能が生かせなくなってしまいますからね。


そんなわけで早速ベンチマークを。。。むむ。。。これってどうでしたっけ?


Type-Aに直接つないだ時はこれだったように思います。よくわかんないっす。おんなじくらい?どちらにしても、3.2Gen2のケーブルで間違いなさそうですね。


最初の1回目はそれなりの量のバックアップをすると思うのですが、それ以降は差分転送するのでそれほどパフォーマンスはなくてもいいという話も。。。


2024年4月16日火曜日

SK Hynix Tube T31 というStick 型のSSDを購入しました。

こんばんは。

今日はUSBに直接さすStick型のSSDを購入しました。もうすでにお気づきの方もいらっしゃるかと思われますが、 私、パソコンを何台も持っています。今この令和の時に、家にパソコンが何台もあるという方はもしかしたら珍しいのかもしれません。ほとんどのことがスマートフォンでこなせてしまう時代になってしまってもなおパソコンを何台も買うってどうなのよ?って感じられる方も多いかもしれません。

まあ、パソコンはそんなにいらないんじゃないかという話は置いておいて、そのパソコンたちのバックアップのためにUSBメモリやら外付けSSDやらをこれまたいくつもいくつも持っています。OnedriveやらGoogleDriveやらCloudにいくらでも保存する場所があるこのご時世に、一台一台外付けのディスクにバックアップ取るっていかがなものか?と思われる方も多いかもしれません。そもそも、欲しいものはいつでもインターネットから再度入手できるようになったこんな時代に、外付けディスクにバックアップとか昭和だなとか思われてしまうかもしれません。

まあ、色々とギャーギャー書きましたが、バックアップ用にSSDを買い足したので、ちょっと性能の比較をしてみました。

USBの規格がこれまた何だかわかりにくく、ちょっとざっくりしすぎかもしれませんが、速度的な話ですと、USB3.0=USG3.1(gen1)=500MB/s、USB3.1(gen2)=1024MB/s (単位はbps(ビット毎秒)ではなくBps(バイト毎秒)です)くらいだったかな。。。確認してみます。

あ、そうだ。一応買ったものの写真を。。。


箱や、パッケージの見やすいところには、特に明記されていないのですが、Gen2 1000MB/s 対応しているようです。シーケンシャルリードですけどね。


思っていたよりも大きいかな。。。


うーん。こんなもんかな。。。持った感じなんかぶっといです。


ガレリアに刺したら隣のポートは使えなくなりました。まあ、ガレリアのこのポートはGen1ポートなので、このSSDの性能を発揮するためには、後ろのType-Cのところに接続しなければならないです。しかし、もうちょっと細ければな。。。


我が家にあるポータブルSSDたち。左から、今回購入したSK、次がWD Passport、SunDisk、バッファローの順番です。



では早速、さっきの写真はガレリアでしたが、ガレリアやType-CのポートしかないのでMSIのPCの方へ接続してテストしてみます。

SK Hynix Tube T31 Gen2の速度が出ているようです。



WD MyPassport こちらも確かGen2を謳っていたと思います。広告に偽りなしという感じでしょうか?



SunDisk Extrem Portable こちらはGen1のモデルです。500MB/sくらいになりましたね。まあベンチマーク的にはシーケンシャルが早いというだけで、使っていてすごく遅いなーとかそういうわけではないです。


 バッファローはGen2と書かれていましたが、すごく小さいので性能は少し劣るのかもしれませんね。速度は多少犠牲になっても仕方がないのかも。



ベンチマークとかしてもあまり意味はないような気もしますが、最近私は、外付けのSSDを購入するときは、最低でもUSB3.1 Gen1. くらいの性能があるものにしています。あまり遅いSSDやUSBメモリでMacでTimeMachineをすると結構ストレス溜まります。そもそもTimeMachineでバックアップいるのか?と言われると。。。TimeMachineから戻したことないんですけどね。。。




2024年4月11日木曜日

Ubuntu22.04でPytorchのDockerイメージでGPUを使う

こんばんわ。 なんだか暗号みたいですね。。。

今回の記事は誰かに何かを伝えようと言うわけではなく、自分の覚書のつもりということと、実はよくわかっていないので、すごくいい加減に書かれていますのであまり参考にしないでください。

ガレリアにUbuntuをセットアップして、NVIDIAのドライバを入れて、PytorchのDockerイメージを使って、GPUを利用した計算をしてみたいというメモです。Ubuntuのセットアップは省略です。

はじめに、ubuntu環境にNVIDIAのドライバをインストールします。

aptコマンドでインストールしたり、NVIDIAからパッケージをダウンロードする方法もあるようなのですが、「ソフトウエアとアップデート」というアプリケーションに「追加のドライバー」という項目があり、その中でインストールできるようだったのでやってみました。

インストールが終了すると、再起動を求められるので、再起動を行います。恐ろしく簡単です。以前やったときは、標準のドライバをblacklistに入れるだとか、GRUBを変更して、Kernelオプションを変更するだとかなんだか難しかった覚えがあるのですが、とても簡単でした。この後トラブルが待っているかもしれませんが。。。 

再起動を行ったら次のおまじないを唱えて、nvidia-container-toolkit のレポジトリを登録します。詳細は、NVIDIAの「Installing the NVIDIA Container Toolkit」を参照してください。

 

# distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

上記のコマンドを実行すると、/etc/apt/sources.list.d/nvidia-container-toolkit.list というファイルが、以下のような内容で作成されます。

 deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/deb/$(ARCH) /
#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /

レポジトリを追加したら、以下のコマンドを実行して、nvidia-container-toolkitをインストールします。

# apt update

# apt install nvidia-container-toolkil

 

 インストールしたら、コンテナランタイムを認識させるために以下のようにコマンドを実行します。

# sudo nvidia-ctk runtime configure --runtime=docker

以下のように表示されれば成功のようです。正しく表示されなかったときはどうすれば良いのかは分かりません。


INFO[0000] Config file does not exist; using empty config
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted. 

上記のように実行すると、/etc/docker/daemon.jsonが作成されます。内容は以下のようになります。うまく作成されなかった場合は手動で作成してしまって良いようです。

{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    }
}

 

設定が終わったら、dockerデーモンを再起動します。

# systemctl restart docker

 

実際にDockerのイメージをpullして、dockerの中でnvidiaが利用できるかどうか確認します。まず、以下のようにコマンドを実行して、NVIDIAのGPUのドライバや、pytorchがセットアップされているイメージをpullします。

docker pull nvcr.io/nvidia/pytorch:24.03-py3

イメージの作成が終わったら、


docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:24.03-py3

として、コンテナを起動します。すると、コンテナのコマンドラインが表示されるので、そこで nvidia-smiと実行して、以下のように表示されれば、コンテナ内でGPUが利用できるようになっているようです。

 # nvidia-smi


+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.161.07             Driver Version: 535.161.07   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 2070 ...    Off | 00000000:01:00.0  On |                  N/A |
| N/A   46C    P8              10W /  30W |     54MiB /  8192MiB |      4%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
+---------------------------------------------------------------------------------------+


次に、PythonからGPUへアクセスできるかどうか確認します。


# python

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import torch

>>> print(torch.cuda.get_device_name())

NVIDIA GeForce RTX 2070 with Max-Q Design

>>> exit()


ちゃんとGeForce RTX 2070 with Max-Q Design と出てます。

あまり引っかからずにどんどんできてしまいました。トラブったりすると色々と余計な経験がが身についたりするものですが、あまりうまく行ってしまうとトラブルが起きた時に対応できないかも。。。

ubuntuを動かすまでの方が、うまくブートできなかったりして、よほど時間がかかった気がします。 


2024年4月6日土曜日

Pixel6aをアップデートしました。

 こんにちは

今日、Pixel6aをアップデートしました。アップデートが以前と比較してとても早くなっているように思います。仕事でWindowsServerのアップデートなどもよく実施しているのですが、どんどんアップデートのかかる時間が短くなってきているように思います。ありがたいことです。

そんなわけで、本日Pixel6aのアップデートをしました。朝起きてすぐやりましたよ。


そもそも、世界中の人が他人のシステムをなんとかしようとか、他人の情報を覗き見しようとか、嫌がらせしようとかそういうことを考えることがなかったらこんなものも必要ないのでしょうね。


いつも一時停止します。手動でやって画面を見ていると絶対一時停止するという仕組みなのだと思います。まさに今デバイスを使用していますからね。。。


まあ、他の人の情報を盗んだり、覗き見したり、そういうことがしたい、されたくないという思いから、進歩するということも考えられなくもないと思いますが。。。。


サイズが小さいということもあるのかもしれませんが、10分も経っていないと思います。なんか今までで一番早かったようにも思います。


10分くらいでセキュリティアップデートが終了です。コンピュータが高速になっているということもあるかもしれませんが、色々と工夫されているのでしょうね。




2024年3月24日日曜日

Keychain K6 Pro にキーキャップまで買っちゃいました

こんばんわ

なんかマイブームという感じです。まあいつも何か新しいもの手に入れるとそれにまつわるものを色々と買ってしまってしまいがちですが、今回も同じ展開になりつつあります。

では早速。。。「Keychron Black Transparent OSAキーキャップ・フルセット」なるもの買いました。またコペックジャパンさんで購入しました。

名前の如く、黒っぽい半透明のキーキャップのはずなのですが、パッケージから全くその面影が見当たりません。今回も注文した途端発送の手続きが完了したという連絡が来たのですが、あまりにも焦って発送したので、もしかして間違った?

裏面も買ったはずのキーキャップの絵が全くないです。多少不安に。。。


おぉ。。。。ちゃんと黒っぽい半透明のキーキャップが入っていました。余計な心配でした。


それなりのキーが入っていますので、テンキー付きのキーボードでも大丈夫そうですね。ちなみに、私はテンキー付きのキーボードを持っていません。


半分くらい交換したところです。元々すごく落ち着いたいい人って感じのキーキャップでしたが、急にちょいワルな感じになっちゃいました。


Keychron K6 Pro はライトが手前側にあるタイプですので、手前側だけが光って見えています。手前側を南側って言うみたいです。透明ではないキャップですと、手前側が光っている方が光が見やすいですが、透明のキャップの場合は、向こう側が光っていた方が、キャップ全体が光って見えるような気がします。気のせいかな。


ライト消すとこんな感じです。なんか昔あった電子ブロックと言うおもちゃに似ている感じ?


私、キートップは、少しざらざらした感じが好きなのですが、このキーキャップはめちゃくちゃつるつるのピカピカです。指先にくっつくような感じすらします。



 英語配列のキーボードですと、キーキャップが色々と選べて楽しいです。まあ、英語配列だったら全部が全部大丈夫と言うわけでもないのですが。。。



Apple silicon の mac でGPUの使用率をもっとよく知りたい

 こんにちは 世間はゴールデンウィークとのことですが、せっかくの休みというのに何もやることがないわたくしは、いつもの通り家で映画やドラマを見ていたり、ゲームをしたり、まさに今やっていますが、ブログに意味のないことを書いてみたりしています。 もともとものすごく出不精のわたくしは、旅...