為了Cloud-Native Demo在Jetson Xavier NX上裝NVMe SSD

本篇將使用NVMe SSD增加儲存空間以及swap空間,並且測試SD卡跟SSD的效能差異。

NVIDIA為了展示服務機器人的AI應用提供了Cloud-Native展示範例,部分程式需要使用到NVIDIA Jetson 平台中的Jetson AGX Xavier跟Jetson Xavier NX獨有的Tensor Core。服務機器人是自動化機器人,且需要在不同的場所與人互動。舉例來說,在一個零售賣場駐點的服務機器人可能需要執行以下任務:

  • 識別顧客/人
  • 判斷顧客是否在跟自己交談
  • 了解顧客跟機器人互動時指向的位置,可能是商品詢問或是問路等等
  • 了解顧客需求
  • 提供有效的回覆

所以四個Cloud-Native展示範例分別為以下內容:

  • 路人偵測,可用於計算視線內總人數
  • 姿態檢測,可以用於判斷顧客的肢體語言
  • 注視檢測,可用於判斷顧客是否與自己交談
  • 語音辨識與自然語言處理,可以用於與顧客交談

這四個展示範例中的模型都是包裝成容器(container)的形式,並託管給NVIDIA NGC

由於這些展示範例並未針對記憶體跟儲存空間大小完全的最佳化,因此在執行展示範例之前要使用NVMe SSD增加儲存空間以及swap空間。本篇也會順便測試SD卡跟SSD卡的使用效能差異。

本文大綱:

  • 安裝SSD並設定swapfile
  • 比較SSD跟SD卡效能
作者/攝影 蔡雨錡/CAVEDU教育團隊
時間 1hr
難度 ★☆☆☆☆
材料表

【推薦套件】 RK-2020 NVIDIA® Jetson Xavier™ NX開發套件(全配)+INTEL RealSense D435i

【推薦套件】RK-2020 NVIDIA® Jetson Xavier™ NX開發套件(全配)+羅技C270

安裝SSD並設定swapfile

 

Step 1. 在Jetson Xavier NX上安裝SSD

使用M2螺絲起子將下圖中綠色圓圈中的螺絲轉開拿起來。再把NVMe規格的PCIe SSD插入Jetson Xavier NX的底部M.2 Key M插槽(為圖中紅色框框的左側)。插進去後要注意金屬接點部分會如下圖看不到,這個時候就可以把綠色圓圈中的螺絲鎖回。

接下來的步驟為按照NVIDIA Cloud-Native範例Github操作,文字中以符號$為首的指令需要在terminal中輸入。

 

Step 2. 格式化NVMe為ext4的Linux檔案系統

檢查NVMe是否有裝上Xavier NX

$ ls /dev/nvme*

畫面如下圖黃字所示,就可以進行格式化

$  sudo mkfs.ext4 / dev / nvme0n1

Step 3. 安裝 NVMe

創建安裝資料夾

$ sudo mkdir /home/your_home_directory_name/nvme

並安裝(mount) NVMe

$ sudo mount /dev/nvme0n1 /home/your_home_directory_name/nvme

 

Step 4. 在檔案系統表(File System Table)中新增要掛載的項目

用你習慣的文字編輯器,本文中使用nano編輯器。沒有nano編輯器的人可以透過下列指令先行安裝:

$ sudo apt-get install nano

編輯檔案系統表

$ sudo nano /etc/fstab

新增下列這行內容,成果如下圖

/dev/nvme0n1 /home/your_home_directory_name/nvme ext4 defaults 0 1

完成後,重新啟動系統

$ sudo reboot

Step 5. 設定將docker儲存在NVMe裡

創建新資料夾

$ sudo mkdir /home/your_home_directory_name/nvme/docker

建立連結

$ sudo ln -s /home/your_home_directory_name/nvme/docker /var/lib/docker

Step 6. 關閉zram後重啟系統

$ cd /etc/systemd

$ sudo mv nvzramconfig.sh nvzramconfig.sh.orig

$ sudo reboot

Step 7. 在nvme上添加swapfile並驗證

新增32G swap空間

$ sudo fallocate -l 32G /home/your_home_directory_name/nvme/swapfile 

改變檔案權限為 600 ,僅有owner可以讀/寫

$ sudo chmod 600 /home/your_home_directory_name/nvme/swapfile 

$ sudo mkswap /home/your_home_directory_name/nvme/swapfile

$ sudo swapon /home/your_home_directory_name/nvme/swapfile

$ sudo swapon -s

顯示出以下畫面就成功了。

Step 8. 在檔案系統表(File System Table)中新增掛載swapfile

編輯檔案系統表

$ sudo nano /etc/fstab

新增下列這行內容

/home/your_home_directory_name/nvme/swapfile swap swap defaults 0 0

完成後,重新啟動系統

$ sudo reboot

比較SSD跟SD卡效能

搜尋Disks後可以看到以下畫面,由於有32G做swapfile了,所以可用空間為457GB。

因為有指定docker要存入NMVe SSD裡,所以到先前創建的資料夾( /home/your_home_directory_name/nvme)下可以看到以下畫面

使用剛剛Disks畫面中右上角的Benchmark功能測試SSD跟SD卡的效能。

 

100個樣本測試平均讀取速度結果:

SSD為2.8GB/s,而SD卡為85.2MB/s

 

1000個樣本測試平均存取時間:

SSD為0.07msec,而SD卡為0.63msec

 

可以看出有十分顯著的差異!

 

測試中使用的硬體規格如下:

  • SSD –  SanDisk Extreme PRO M.2 NVMe 3D SSD 500GB
  • SD卡 – SAMSUNG microSDXC UHS-I Card 64G

Jetson Xavier NX在需要更高存取速度的情況下,加裝一條SSD是一個不錯的解決辦法!

 

參考資料:

 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *