工程筆記本 / NVIDIA

NVIDIA

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

鄭 建彥📅 2020-05-25👁 33
本篇將使用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是一個不錯的解決辦法!  

參考資料:

     

相關文章 📎

留言 💬 (0)

還沒有留言,來當第一個。