option 1
TORCH_LOGS="graph_breaks" python transmitter_trainner.py
option 2
import torch._dynamo
# 這會把導致斷圖的原因直接印在螢幕上
torch._dynamo.config.verbose = True
option 1
TORCH_LOGS="graph_breaks" python transmitter_trainner.py
option 2
import torch._dynamo
# 這會把導致斷圖的原因直接印在螢幕上
torch._dynamo.config.verbose = True
症狀:
Antigravity 可以透過IDE設定,把config file path連結到特定位置。但是windows上可能還沒完善,所以IDE可以讀到cloud server 的位置,連線的時候還是會回到 [user]/.ssh/config
解決辦法:
透過softlink把config file連過去: (power shell, 記得備份原本的config檔。其實也可直接合併)
New-Item -ItemType SymbolicLink -Path "C:\Users\markliou\.ssh\config" -Target "Y:\Home\computer_sync\vs_code_remote_config"
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
如果要進行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看看,不過經驗上是能夠辨識出是哪一顆,只能透過容量大小推測。如果同時掛很多台容量一樣的就麻煩了。
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/
通常出現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
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
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
option 1 TORCH_LOGS="graph_breaks" python transmitter_trainner.py option 2 import torch._dynamo # 這會把導致斷圖的原因直接印在螢幕上 torch._dynamo....