kuroの覚え書き

96の個人的覚え書き

帰ってきたJetson nano 2GB

というわけで2ヶ月のすったもんだの末、うちに帰ってきたJetson Nano 2GB。
f:id:k-kuro:20210703180518j:plain
左:帰ってきた2GB、右:買い足した4GB(B01)

壊れる前はそもそもMacbookAirのACアダプタ(容量、定格上は十分なスペック)で起動できなかったところからすでに異常だったわけだが、交換されてはるばる香港から直送で届いた今回のものはすんなり起動した。やっぱりなにかおかしかったんだと再確認。壊れたときに使用していた中華ACアダプタが原因だったかもしれないと、一旦使用を避けたが、このぶんじゃやっぱり本体側に問題があったということなんだろう。

今回JetPackをインストールし、初期設定を英語設定で行ってから日本語に後で変えるという方式をとってみた。(某超入門本にしたがった)ところ、それが原因かはわからないがLXDEの文字表示が超ちっちゃくてちょっと難儀した。
結局完全解決はしていないのだが、
~/.config/lxsession/LXDE/desktop.conf

sGtk/FontName=Sans 10
となっているところを
sGtk/FontName=Sans 20
のように大きくしてやることでメニュー表示などは改善した。しかしウインドウタイトルの表示はまだちっさいままだし、20じゃちょっと大きすぎたかもしれない、という感じもしたが、2GBはGUIで使うつもりは今のところないのでこの辺にしておく

追記:
~/.config/lxsession/LXDE/desktop.conf
はイジらず
~/.Xresources
を作って、
Xft.dpi:100
と記載して保存する。
そうするとデスクトップにあるファイル名などもsize 10でちょうどいい感じになる。



次はKubernetesクラスターの構築をやってみようと思う。

参考:
K3SをNVIDIA Jetson Nanoで実行する - 仮想化通信

基本こちらのブログの通りで問題なく構築できたようだ。
一点、インストールしたままの状態ではDockerがrootでしか実行できないようになっていたので、そこんとこ調整。

$ sudo gpasswd -a $(whoami) docker
$ sudo chgrp docker /var/run/docker.sock
$ sudo service docker restart

マスター側は念の為再起動もしておいた。

$ sudo kubectl run -i -t nvidia --image=jitteam/devicequery --restart=Never
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA Tegra X1"
  CUDA Driver Version / Runtime Version          10.2 / 10.0
  CUDA Capability Major/Minor version number:    5.3
  Total amount of global memory:                 3956 MBytes (4148305920 bytes)
  ( 1) Multiprocessors, (128) CUDA Cores/MP:     128 CUDA Cores
  GPU Max Clock rate:                            922 MHz (0.92 GHz)
  Memory Clock rate:                             13 Mhz
  Memory Bus Width:                              64-bit
  L2 Cache Size:                                 262144 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            Yes
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 0 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

エラーなく走ったことは走ったが、これでクラスタとして機能しているのかどうかというと自信がない。

$ sudo docker run -it --runtime nvidia jitteam/devicequery
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA Tegra X1"
  CUDA Driver Version / Runtime Version          10.2 / 10.0
  CUDA Capability Major/Minor version number:    5.3
  Total amount of global memory:                 3956 MBytes (4148305920 bytes)
  ( 1) Multiprocessors, (128) CUDA Cores/MP:     128 CUDA Cores
  GPU Max Clock rate:                            922 MHz (0.92 GHz)
  Memory Clock rate:                             13 Mhz
  Memory Bus Width:                              64-bit
  L2 Cache Size:                                 262144 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            Yes
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 0 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.0, NumDevs = 1
Result = PASS

素のDockerで走らせるとこんな感じで結果は同じなんだが。
そもそもDockerコンテナの理解が不十分なので、何をやっているのかわかっていないということが問題ではある。
クラスタに手を出す前にすることはまだあるな。

f:id:k-kuro:20210703225515j:plain

ありあわせの機材で構築しているため統一感に乏しいが。