2025年6月16日 星期一

DGX H200 driver upgarde from 570 to 575 system hanged

 GPU driver 更新後,nvswich的driver也要更新到對應的位置。但不知道為什麼,設定檔也跟著跑掉,導致nvswith的設定位置不對。需要做幾個修正:

1. 修改startup的script吃config的位置。該config本來是設定為fork,但575好像改了設定,給予一個sleep,導致設定也要跟著修改為simple

2. 重新loading config


修改設定檔:

sudo systemctl edit --full nvidia-fabricmanager.service

以下為設定檔,原始的部分我用註解沒有更動:


====

[Unit]

Description=NVIDIA fabric manager service

After=network-online.target

Requires=network-online.target


[Service]

User=root

PrivateTmp=false

#Type=forking

Type=simple

TimeoutStartSec=720


Environment="FM_CONFIG_FILE=/usr/share/nvidia/nvswitch/fabricmanager.cfg"

Environment="FM_PID_FILE=/var/run/nvidia-fabricmanager/nv-fabricmanager.pid"

Environment="NVLSM_CONFIG_FILE=/usr/share/nvidia/nvlsm/nvlsm.conf"

Environment="NVLSM_PID_FILE=/var/run/nvidia-fabricmanager/nvlsm.pid"



PIDFile=/var/run/nvidia-fabricmanager/nv-fabricmanager.pid 


#ExecStart=/usr/bin/nvidia-fabricmanager-start.sh $FM_CONFIG_FILE $FM_PID_FILE $NVLSM_CONFIG_FILE $NVLSM_PID_FILE

ExecStart=/usr/bin/nvidia-fabricmanager-start.sh --fm-config-file /usr/share/nvidia/nvswitch/fabricmanager.cfg --fm-pid-file $FM_PID_FILE --nvlsm-config-file $NVLSM_CONFIG_FILE --nvlsm-pid-file $NVLSM_PID_FILE

ExecStop=/bin/sh -c '\

  sed -i "/^FM_SM_MGMT_PORT_GUID=0x[a-fA-F0-9]\\+$/d" "$FM_CONFIG_FILE"; \

  if [ -f "$NVLSM_CONFIG_FILE" ]; then \

    sed -i "/^guid 0x[a-fA-F0-9]\\+$/d" "$NVLSM_CONFIG_FILE"; \

  fi; \

  if [ -f "$FM_PID_FILE" ] && [ -s "$FM_PID_FILE" ]; then \

    kill "$(cat "$FM_PID_FILE")"; \

  fi; \

  if [ -f "$NVLSM_PID_FILE" ] && [ -s "$NVLSM_PID_FILE" ]; then \

    kill "$(cat "$NVLSM_PID_FILE")"; \

  fi'

LimitCORE=infinity


[Install]

WantedBy=multi-user.target


====


修改完畢後,要把設定檔重新loading:

sudo systemctl daemon-reload

sudo systemctl start nvidia-fabricmanager.service


最後看看有沒有出錯:

systemctl status nvidia-fabricmanager.service

journalctl -u nvidia-fabricmanager.service -b -n 50 --no-pager



2025年5月2日 星期五

iscsi 連線問題筆記

如果要進行umount但是出現target buzy

sudo fuser -km 掛載點

sudo umount 掛載點


iSCSI重啟

sudo open-iscsi restart 

掛載lun

iscsiadm -m discovery -t sendtargets -p 目標IP

iscsiadm -m node -p 目標IP --login

如果出現類似以下訊息表示成功掛載:

Logging in to [iface: default, target: iqn.2000-01.com.synology:XXXXXXXXXXX.Target-1.05350d6cc87, portal: 192.168.72.19,3260]

Login to [iface: default, target: iqn.2000-01.com.synology:XXXXXXXXXXX.Target-1.05350d6cc87, portal: 192.168.72.19,3260] successful.

可以用fdisk -l看看,不過經驗上是能夠辨識出是哪一顆,只能透過容量大小推測。如果同時掛很多台容量一樣的就麻煩了。


其他指令

sudo iscsiadm -m session #查詢目前連線的lun


refs:

https://osiutino.wordpress.com/2013/11/10/iscsi-%E8%A8%AD%E5%AE%9A%E7%AD%86%E8%A8%98-2-ubuntu-%E4%B8%8A%E4%BD%BF%E7%94%A8-initiator-%E9%80%A3%E6%8E%A5-iscsi-target/

2025年3月10日 星期一

DGX H200 在cuda container中出現cuInit error

 通常出現cuda initial error就只要把driver更新就可以了。但是DGX 系列在後續為了加強節點與節點之間的傳輸速度,出廠就直接安裝了NV-Switch。

之前不知道發生甚麼問題,一直出現cuIntial error,查了很久才發現是因為NV-switch功能被disable。因此只要下達以下指令就可以了


執行前主要先確定gpu的driver跟nvswitch有沒有相符,這直接看錯誤訊息就好:

sudo systemctl status nvidia-fabricmanager

這邊可能會出現底下類似錯誤:

× nvidia-fabricmanager.service - NVIDIA fabric manager service

     Loaded: loaded (/etc/systemd/system/nvidia-fabricmanager.service; enabled; vendor preset: enabled)

     Active: failed (Result: exit-code) since Sun 2025-06-15 22:57:30 PDT; 19min ago

        CPU: 93ms


Jun 15 22:57:30 DGX-H200 systemd[1]: Starting NVIDIA fabric manager service...

Jun 15 22:57:30 DGX-H200 nvidia-fabricmanager-start.sh[16241]: Detected Pre-NVL5 system

Jun 15 22:57:30 DGX-H200 nv-fabricmanager[16258]: fabric manager NVIDIA GPU driver interface version 570.133.20 don't match with driver version 575.57.08. Please update with ma>

Jun 15 22:57:30 DGX-H200 nvidia-fabricmanager-start.sh[16258]: fabric manager NVIDIA GPU driver interface version 570.133.20 don't match with driver version 575.57.08. Please u>

Jun 15 22:57:30 DGX-H200 nvidia-fabricmanager-start.sh[16241]: "/usr/bin/nv-fabricmanager" failed! Exit code: 1

直接可以看到是因為GPU driver是575,但是nvswitch的driver還在570。這邊就需要重新安裝一下(記得自己修改版號)

sudo apt-get install nvidia-fabricmanager-575


接下來就是把預設的fabricmanager打開:

sudo systemctl start nvidia-fabricmanager  #把nv-switch打開

sudo systemctl enable nvidia-fabricmanager  #開機階段就預設打開


Ref:

https://docs.nvidia.com/datacenter/tesla/pdf/fabric-manager-user-guide.pdf

2025年1月2日 星期四

在github的repo中使用hugging face dataset repo做dataset 管理

 dataset的版本使用lfs進行版本管理是比較方便的方式,但是github的lfs空間只有給1G,如果有不同的資料版本出現,很快github的lfs空間就滿了。

這邊要進行在github的repo中(當然也能置換成其他的git repo,例如gitea或是gitlab),把git lfs的位置轉換到hugging face dataset repo上,進行異地管理。

首先要確定:

1. 已經安裝好git
2. 已經安裝好git lfs
3. 把hugging face dataset 以及github repo都開好了

Process

Step1. Clone git repo

git clone git@github.com:markliou/xxx.git


Step 2. 在該repo底下創建資料夾(這邊範例名稱是cosmic_v101),並且把檔案放進去

mkdir cosmic_v101


Step 3. 設定LFS的位置,這邊假設是指定到 markliou/COSMIC_v101

git config -f .lfsconfig lfs.url git@hf.co:datasets/markliou/COSMIC_v101

確定看看設定狀況

git lfs env
Endpoint=https://hf.co/datasets/markliou/COSMIC_v101 (auth=none)
  SSH=git@hf.co:datasets/markliou/COSMIC_v101



Step 4. 設定lfs tracking

git lfs track 'cosmic_v101/*' 


Step 5. 將檔案還有.lfsconfig和.gitattributes推上去

git add .
git commit -m "xx"
git push

可以使用 git lfs ls-files看看資料夾裡面的檔案有沒有被追蹤到


Step 6. 檢查檔案有沒有上到hugging face。

首先到hugging face網頁上,找到setting的選項。這邊的舉例就是到 https://huggingface.co/datasets/markliou/COSMIC_v101/settings




接下來會看到 "List FPS files",點進去就應該可以看到檔案的hash。



後續只要對github的repo進行clone,就能把檔案一併抓下來。



Ref:

https://help.sonatype.com/en/git-lfs-repositories.html

https://github.com/git-lfs/git-lfs/wiki/Tutorial

https://huggingface.co/docs/hub/datasets-adding

https://huggingface.co/docs/hub/repositories-getting-started

DGX H200 driver upgarde from 570 to 575 system hanged

 GPU driver 更新後,nvswich的driver也要更新到對應的位置。但不知道為什麼,設定檔也跟著跑掉,導致nvswith的設定位置不對。需要做幾個修正: 1. 修改startup的script吃config的位置。該config本來是設定為fork,但575好像改了...