為了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

[pastacode lang=”python” manual=”%24%20ls%20%2Fdev%2Fnvme*” message=”” highlight=”” provider=”manual”/]

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

[pastacode lang=”python” manual=”%24%20%20sudo%20mkfs.ext4%20%2F%20dev%20%2F%20nvme0n1″ message=”” highlight=”” provider=”manual”/]

Step 3. 安裝 NVMe

創建安裝資料夾

[pastacode lang=”python” manual=”%24%20sudo%20mkdir%20%2Fhome%2Fyour_home_directory_name%2Fnvme” message=”” highlight=”” provider=”manual”/]

並安裝(mount) NVMe

[pastacode lang=”python” manual=”%24%20sudo%20mount%20%2Fdev%2Fnvme0n1%20%2Fhome%2Fyour_home_directory_name%2Fnvme” message=”” highlight=”” provider=”manual”/]

 

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

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

[pastacode lang=”python” manual=”%24%20sudo%20apt-get%20install%20nano%0A%0A” message=”” highlight=”” provider=”manual”/]

編輯檔案系統表

[pastacode lang=”python” manual=”%24%20sudo%20nano%20%2Fetc%2Ffstab” message=”” highlight=”” provider=”manual”/]

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

[pastacode lang=”python” manual=”%2Fdev%2Fnvme0n1%20%2Fhome%2Fyour_home_directory_name%2Fnvme%20ext4%20defaults%200%201″ message=”” highlight=”” provider=”manual”/]

完成後,重新啟動系統

[pastacode lang=”python” manual=”%24%20sudo%20reboot” message=”” highlight=”” provider=”manual”/]

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

創建新資料夾

[pastacode lang=”python” manual=”%24%20sudo%20mkdir%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fdocker%0A%0A” message=”” highlight=”” provider=”manual”/]

建立連結

[pastacode lang=”python” manual=”%24%20sudo%20ln%20-s%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fdocker%20%2Fvar%2Flib%2Fdocker%0A%0A” message=”” highlight=”” provider=”manual”/]

Step 6. 關閉zram後重啟系統

[pastacode lang=”python” manual=”%24%20cd%20%2Fetc%2Fsystemd%0A%0A%24%20sudo%20mv%20nvzramconfig.sh%20nvzramconfig.sh.orig%0A%0A%24%20sudo%20reboot%0A%0A” message=”” highlight=”” provider=”manual”/]

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

新增32G swap空間

[pastacode lang=”python” manual=”%24%20sudo%20fallocate%20-l%2032G%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fswapfile%20%0A%0A” message=”” highlight=”” provider=”manual”/]

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

[pastacode lang=”python” manual=”%24%20sudo%20chmod%20600%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fswapfile%20%0A%0A%24%20sudo%20mkswap%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fswapfile%20%0A%0A%24%20sudo%20swapon%20%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fswapfile%20%0A%0A%24%20sudo%20swapon%20-s%0A%0A” message=”” highlight=”” provider=”manual”/]

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

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

編輯檔案系統表

[pastacode lang=”python” manual=”%24%20sudo%20nano%20%2Fetc%2Ffstab%0A%0A” message=”” highlight=”” provider=”manual”/]

新增下列這行內容

[pastacode lang=”python” manual=”%2Fhome%2Fyour_home_directory_name%2Fnvme%2Fswapfile%20swap%20swap%20defaults%200%200%0A%0A” message=”” highlight=”” provider=”manual”/]

完成後,重新啟動系統

[pastacode lang=”python” manual=”%24%20sudo%20reboot%0A%0A” message=”” highlight=”” provider=”manual”/]

比較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是一個不錯的解決辦法!

 

參考資料:

 

 

 

發佈留言

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