靈駿智算本機快取加速將訓練資料緩衝至計算節點本地,避免每輪訓練重複從遠端儲存讀取資料,大幅提升資料讀取效能。適用於多Epoch訓練、大規模資料集等需要反覆讀取資料的情境。
功能概述
本機快取支援以下核心能力:
快取:利用計算節點的本地碟構建讀緩衝,加速資料集與Checkpoint訪問,顯著降低資料訪問延遲。
水平擴充:緩衝吞吐能力隨計算節點規模線性擴充,支援數百至數千個節點規模。
RDMA大頻寬加速:支援RDMA網路通訊協定,在高並發資料讀取情境下充分利用高速網路頻寬,顯著提升吞吐。
資料預熱:在訓練任務啟動前,將指定資料主動載入到本機快取,避免首輪訓練冷啟動延遲。
用戶端流控:對DLC任務用戶端讀取頻寬限速,防止單個任務佔用過多儲存頻寬影響其他任務。
Serverless簡單易用:一鍵開啟和關閉,無需修改代碼,對程式無侵入,無需關注營運。
適用情境與功能使用建議
本機快取適用於資料集規模遠大於單次讀取量、需要反覆遍曆的多輪訓練任務。RDMA加速、資料預熱、用戶端流控三項能力分別對應不同訓練特徵,可按需組合:
情境特徵 | 建議開啟的功能 | 預期效果 |
高並發資料讀取(num_workers較大、batch_size較大) | 本機快取 + RDMA加速 | 分布式緩衝節點間通過RDMA協議傳輸資料,充分利用高速網路頻寬,高並發情境下吞吐顯著提升 |
對首輪延遲敏感,希望第一個Epoch即享受加速 | 本機快取 + 資料預熱 | 在任務啟動前將資料提前載入到緩衝,消除首輪冷啟動延遲 |
多任務共用同一儲存,需避免單個任務擠占頻寬,或者避免RDMA緩衝情境下訪問快取資料過多擠佔分布式訓練的RDMA頻寬 | 本機快取 + 用戶端流控 | 為每個任務設定讀取頻寬上限,保障叢集多任務並行穩定性 |
大規模視頻/映像資料集的多Epoch訓練 | 本機快取 + RDMA + 資料預熱 | 視頻類資料集I/O壓力大,RDMA提升吞吐,預熱消除冷啟動 |
資料集反覆遍曆、Epoch數較多的常規訓練 | 本機快取 | 首輪從儲存讀取並寫入緩衝,後續輪次直接從本機快取讀取,逐輪加速 |
若您的任務並發讀取壓力大,建議開啟RDMA加速;若對首輪延遲敏感,建議配合使用資料預熱;若叢集中多任務共用儲存,建議開啟用戶端流控進行頻寬保護。
使用限制與說明
儲存支援:支援OSS、智算CPFS。
適用資源:僅支援靈駿智算資源。開啟後佔用算力節點資源:掛載一個檔案系統/OSS Bucket佔用4核CPU、14 GB記憶體;每多掛載一個,額外佔用1核CPU、2 GB記憶體。請在建立前預留資源。
RDMA資源佔用:RDMA模式下掛載一個檔案系統/OSS Bucket佔用每個節點8核CPU、16 GB RAM;每多掛載一個,額外佔用1核CPU、2 GB記憶體。節點需配備RDMA網卡,靈駿智算高規格節點預設支援。
容量與策略:最大緩衝容量與靈駿智算規格相關,淘汰策略為LRU(最近最少使用)。
加速目標:僅加速資料讀取,不支援寫。
資料高可用性:不保證資料高可用。快取資料可能丟失,重要訓練資料請及時備份。
工作機制:多輪訓練時,第一輪從儲存執行個體(如OSS、智算CPFS)讀取資料並寫入緩衝,效能略慢於直讀儲存。後續輪次直接從本機快取讀取,速度更快。配合資料預熱可使第一輪也享受緩衝加速。
使用方法
整體流程:開啟Quota緩衝配置 → 配置安全性群組入規則 → 建立DLC任務並開啟緩衝 → 按需配置RDMA/流控/預熱。
步驟一:開啟資源配額(Quota)本機快取
在左側導覽列單擊资源配额(Quota) > 灵骏智算资源,找到並單擊目標Quota名稱進入管理頁面。注意多級嵌套Quota僅一級Quota支援開啟本機快取功能。
切換至本機快取頁簽,單擊開啟本機快取加速,設定需要緩衝的儲存路徑。緩衝路徑應指向訓練資料所在的儲存目錄。

如需使用RDMA加速,在緩衝配置頁面中開啟支持RDMA開關。
步驟二:安全性群組配置入規則
當安全性群組類型為企業級安全性群組時,需額外配置入規則,使快取服務與VPC網路連通。
在資源配額頁面網路資訊地區查看配置的安全性群組,記錄安全性群組名稱或ID。
到對應安全性群組的頁面,如果安全性群組類型為企業級,需要增加一項入方向的規則:
授權策略選擇允許。
優先順序設為1。
協議選擇自訂TCP。
訪問來源設定為IPv4類型,並填寫本VPC的網段如:
10.0.0.0/8。訪問目的選擇連接埠允許存取 連接埠
10080/(10080+n-1),10070/(10070+n-1),n = 儲存服務條目數(n ≤ 10)。樣本:配了 4 個儲存服務 → 放通10080/10083和10070/10073)。
訪問來源配置為資源配額使用的交換器對應的網段。訪問目的連接埠數需要與緩衝配置的儲存服務數相同。
步驟三:建立DLC任務並使用緩衝
使用目標資源配額的靈駿資源建立DLC任務。
在配置 DLC 任務的存储挂载參數時,選擇OSS掛載Uri及掛載路徑(例如
/mnt/data/)。當掛載的儲存地址命中已配置的緩衝地址時,對應的使用缓存開關將自動開啟(使用者可選擇關閉)。

步驟四:用戶端流控配置(可選)
如需對DLC任務的用戶端讀取頻寬進行限速,可在建立DLC任務時,在資料集的進階配置中添加mountOptions參數:
{
"mountOptions": "-o g_tier_DadiSdkGetTrafficLimit=3221225472"
}參數說明:
g_tier_DadiSdkGetTrafficLimit:用戶端讀取流控閾值,單位為B/s(位元組/秒)。預設值為3221225472(即3 GB/s)。
常用流控值參考:
目標限速 | 配置值(B/s) |
1 GB/s | 1073741824 |
3 GB/s(預設) | 3221225472 |
4 GB/s | 4294967296 |
5 GB/s | 5368709120 |
步驟五:資料預熱(可選)
訓練任務啟動前,可通過資料預熱功能,將指定資料載入到本機快取,避免首輪冷啟動延遲。
控制台方式
建立預熱任務
在本機快取標籤頁滾動至資料預熱地區,單擊右上方+ 建立預熱任務。

在建立對話方塊中,按需填寫以下欄位:
欄位
是否必填
說明
建議
快取資料源
是
下拉選擇,僅能選擇步驟一中已配置的儲存執行個體。
訓練任務讀取哪個Bucket就選哪個。
預熱子目錄
否
在選中資料來源下定位到具體子目錄。可手動輸入,或單擊右側檔案夾表徵圖瀏覽目錄。留空則對整條資料來源全量預熱。
精確到資料集或Checkpoint子目錄,降低無效流量。
匹配模式
否
相對於子目錄的正則匹配,預設
.*即全匹配。例:只預熱小圖
.*\.jpg$。需要預熱多個位置時,單擊底部+ 添加路徑追加一組配置;單擊行首刪除表徵圖可移除。
單擊確定提交。任務立即進入資料預熱列表。
說明
每個緩衝執行個體同一時刻只有一條預熱任務在執行,多條任務按提交順序FIFO排隊,其餘處於Creating排隊狀態。預熱量不應超過緩衝總容量,否則資料會被LRU淘汰策略互相驅逐。
查看預熱進度
預熱工作清單展示以下資訊:預熱ID、路徑(資料來源+子目錄+匹配模式)、狀態、建立時間、完成時間、匹配檔案數/位元組數、失敗原因。
狀態說明:
Creating:已提交,排隊等待執行。
Running:正在將資料拉取到本機快取。
Completed:預熱完成,緩衝已載入。
Cancelled:已主動取消。
Failed:預熱失敗,請查看失敗原因(常見:路徑不存在、匹配模式無匹配檔案)。
取消或刪除預熱任務
狀態為Creating或Running的任務,單擊行末取消按鈕即可終止。
Completed或Failed的記錄僅供審計,可直接刪除。
關閉本機快取加速總開關會清空所有預熱記錄和快取資料,操作前請確認無正在啟動並執行訓練任務依賴當前緩衝。
API方式
確定預熱連接埠
每個緩衝配置項對應一個獨立的預熱連接埠,連接埠範圍為10070~10079:
緩衝序號 | 預熱連接埠 |
第1個緩衝 | 10070 |
第2個緩衝 | 10071 |
第3個緩衝 | 10072 |
發起資料預熱
在同一Quota下的DSW或DLC執行個體中,執行以下命令發起預熱:
預熱API可在同一Quota下的DSW或DLC執行個體中直接調用(DSW執行個體預設具有所需角色許可權)。
# 如果getDataCacheService 的response 中isShareded = true 則使用如下命令:
curl -s "http://<CacheServiceId>-svc-0.t<主帳號id>.svc.cluster.local.<clusterId>.t<主帳號id>:<Port>/v1/warmup/load?target_path=<path1>,<path2>&pattern=<glob_pattern>"
# 其餘情況則使用如下命令:
curl -s "http://<CacheServiceId>.t<主帳號id>.svc.cluster.local.<clusterId>.t<主帳號id>:<Port>/v1/warmup/load?target_path=<path1>,<path2>&pattern=<glob_pattern>"參數說明:
isShareded:在控制台Quota詳情頁的本機快取頁簽,按F12進入檢查頁面,查看getDataCacheService介面的response,即可看到isShareded欄位的值。CacheServiceId:通過GetQuota介面查詢目標資源配額資訊,從主Quota(第一級資源配額)的返回結果中擷取CacheServiceId。主帳號id:在控制台右上方,單擊帳戶圖片可查看主帳號ID。clusterId:同isShareded,在getDataCacheService介面的response中可查看到該值。Port:第一步中確定的預熱連接埠。target_path:需要預熱的資料路徑,支援多個路徑以逗號分隔。必須為掛載目錄下的相對路徑。例如,若需預熱BMCPFS上的/path1/path2,則target_path=path1/path2。pattern(可選):檔案匹配模式,支援Regex。例如pattern=.*.txt表示僅預熱.txt尾碼的檔案。
樣本:
# 預熱掛載目錄下 dataset/train 中所有 .txt 檔案
curl -s "http://cacheservice-xxxx:t10953*******.svc.cluster.local.ca076dea628***********.t10953*******:10070/v1/warmup/load?target_path=dataset/train&pattern=.*.txt"查詢預熱狀態
使用以下命令查詢預熱進度:
# 如果getDataCacheService 的response 中isShareded = true 則使用如下命令:
curl -s "http://<CacheServiceId>-svc-0.t<主帳號id>.svc.cluster.local.<clusterId>.t<主帳號id>:<Port>/v1/warmup/stat?target_path=<path1>,<path2>&preceding_time=<minutes>"
# 其餘情況則使用如下命令:
curl -s "http://<CacheServiceId>.t<主帳號id>.svc.cluster.local.<clusterId>.t<主帳號id>:<Port>/v1/warmup/stat?target_path=<path1>,<path2>&preceding_time=<minutes>"參數說明:
target_path:與預熱請求中的路徑一致。preceding_time:查詢最近N分鐘內的預熱狀態,單位為分鐘。
樣本:
# 查詢最近 10 分鐘內 dataset/train 的預熱狀態
curl -s "http://cacheservice-xxxx:t10953*******.svc.cluster.local.ca076dea628***********.t10953*******:10070/v1/warmup/stat?target_path=dataset/train&preceding_time=10"注意事項
預熱API僅可在與快取服務同一Quota下的DSW或DLC執行個體中調用。
target_path必須使用掛載目錄下的相對路徑,不要使用絕對路徑。如果存在多級嵌套的資源配額,請確認
CacheServiceId來自第一級資源配額(主Quota)。預熱操作為非同步執行,可通過
/v1/warmup/stat介面持續跟蹤進度。
常見問題
Q:開啟RDMA後第一個Epoch會有加速效果嗎?
不開啟資料預熱時,第一個Epoch需從儲存執行個體拉取資料並寫入緩衝,效能會略慢於直讀儲存。加速效果主要體現在後續Epoch的快取命中階段。RDMA模式下,即使首次拉取,網路傳輸效率也優於傳統TCP,第一個Epoch可能有一定提升。如需確保首輪加速,建議配合資料預熱。
Q:開啟本機快取會額外佔用多少資源?
掛載一個檔案系統/OSS Bucket時,標準模式佔用每個節點4核CPU、14 GB記憶體;RDMA模式佔用8核CPU、16 GB記憶體。每多掛載一個儲存,額外佔用1核CPU、2 GB記憶體。請在建立前預留資源。
Q:資料預熱功能是否支援所有執行個體類型?
預熱API可在同一Quota下的DSW或DLC執行個體中直接調用。DSW執行個體預設具有所需角色許可權,無需額外配置。