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




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

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