# GB200 使用說明 ## 一、使用前必讀:架構差異 GB200 使用 NVIDIA Grace CPU,屬 **aarch64(Arm)** 架構,與 H200 節點及登入節點的 **x86_64** 架構不相容。須在 GB200 節點上編譯,或取得 Arm 版本的預編譯套件,以進行後續的開發作業。 :::danger 📢 **重要:目前沒有 Arm 架構的登入節點** 登入節點(`nano4.nchc.org.tw`)為 x86_64 架構,**無法**編譯出 GB200 可執行的程式。 所有 GB200 程式的編譯、套件安裝與環境建置,必須先透過 Slurm 取得 `gb200-dev` 佇列的計算節點,於該節點上進行。流程請見下節。 ::: --- ## 二、在 GB200 節點上編譯 ### 2-1. 取得編譯用節點 編譯屬於 CPU 工作,通常不需要多張 GPU,建議只申請 1 節點、1 張 GPU: ```bash # 方式 A:salloc 取得互動式節點(適合反覆修改、除錯) [user@25a-lgn01 ~]$ salloc --account=<PROJECT_ID> --partition=gb200-dev \ --nodes=1 --ntasks-per-node=1 --gres=gpu:1 salloc: Granted job allocation <job_id> salloc: Nodes <node_name> are ready for job # 方式 B:srun 直接進入互動式 shell(等同 A,指令較短) [user@25a-lgn01 ~]$ srun -A <PROJECT_ID> -p gb200-dev -N1 --gres=gpu:1 \ -t 02:00:00 --pty bash ``` ### 2-2. 確認已在 Arm 節點上 進入節點後,**務必先確認架構**再開始編譯: ```bash [user@<node> ~]$ uname -m aarch64 # 必須顯示 aarch64;若顯示 x86_64 表示仍在登入節點 [user@<node> ~]$ nvidia-smi # 確認 GPU 可見 ``` ### 2-3. 編譯 ```bash [user@<node> ~]$ module purge [user@<node> ~]$ module load <gb200 專用 module> # 建議將建置目錄依架構分開,避免與 H200 的建置產物混用 [user@<node> ~]$ mkdir -p build.aarch64 && cd build.aarch64 [user@<node> build.aarch64]$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/opt/aarch64 [user@<node> build.aarch64]$ make -j 16 && make install ``` ### 2-4. 釋放資源 ```bash [user@<node> ~]$ exit # 離開後 Job 隨即結束 ``` --- ## 三、Python 環境建置 同樣必須在 GB200 節點上執行,且**建議為 Arm 建立獨立環境**,勿與 x86_64 環境共用路徑: ```bash # 於 gb200-dev 節點上 [user@<node> ~]$ python -m venv $HOME/venv-aarch64 [user@<node> ~]$ source $HOME/venv-aarch64/bin/activate [user@<node> ~]$ pip install <package> # 確認安裝到正確架構 [user@<node> ~]$ python -c "import platform; print(platform.machine())" aarch64 ``` :::warning 📢 請將 venv 環境分成 x86_64 以集 aarch64 環境使用。建議環境目錄名稱直接帶上架構(如 `venv-aarch64`)以區別。 :::