靈駿智算資源為您提供高性能AI訓練、高性能計算所需的異構計算算力服務,用于提交DLC訓練任務或創建DSW實例。本文為您介紹PAI靈駿智算服務從開通到使用的最佳實踐。
前提條件
已開通PAI(DLC、DSW)后付費,詳情請參見開通并創建默認工作空間。
已創建VPC、交換機和安全組,詳情請參見創建和管理專有網絡和創建安全組。
說明如果您有訪問公網的需求,需要為該VPC開通公網訪問能力,具體操作,請參見使用公網NAT網關SNAT功能訪問互聯網。
已提交工單,申請添加靈駿智算使用白名單。
如果使用RAM角色提交DLC分布式訓練任務,需要完成信任策略配置,配置詳情請參見RAM角色登錄并使用PAI。
其中為Role配置的權限策略在當前的實現中會影響到PAI DLC的任務運行,您可參考以下權限策略制定您的自定義策略(AliyunPAIDLCDefaultRolePolicy):
{ "Version": "1", "Statement": [ { "Action": [ "cs:GetClusterById", "cs:GetClusters", "cs:GetUserConfig", "cs:DescribeClusterNodes", "cs:DescribeClusterInnerServiceKubeconfig", "cs:RevokeClusterInnerServiceKubeconfig" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "vpc:DescribeNatGateways", "vpc:DescribeVpnGateways", "vpc:DescribeEipAddresses", "vpc:DescribeRouteTableList", "vpc:DescribeIpv6Gateways", "vpc:DescribeHaVips", "vpc:DescribeVRouters", "vpc:DescribeRouterInterfaceAttribute", "vpc:DescribeSnatTableEntries", "vpc:DescribeNetworkAcls", "vpc:DescribeRegions", "vpc:DescribeVpcs", "vpc:DescribeVSwitches", "vpc:DescribeVpcAttribute", "vpc:DescribeVSwitchAttributes", "vpc:AssociatePhysicalConnectionToVirtualBorderRouter", "vpc:UnassociatePhysicalConnectionFromVirtualBorderRouter", "vpc:DescribeAccessPoints", "vpc:CreatePhysicalConnectionNew", "vpc:DescribePhysicalConnections", "vpc:EnablePhysicalConnection", "vpc:CreateVirtualBorderRouter", "vpc:CreateRouterInterface", "vpc:ModifyRouterInterfaceAttribute", "vpc:ModifyRouterInterfaceSpec", "vpc:DescribeRouterInterfaces", "vpc:DescribeRouteTables", "vpc:ConnectRouterInterface", "vpc:CreateRouteEntry", "vpc:DeleteRouteEntry", "vpc:DeactivateRouterInterface", "vpc:DeleteRouterInterface", "vpc:DeleteVirtualBorderRouter", "vpc:TerminatePhysicalConnection", "vpc:DeletePhysicalConnection", "vpc:CreateVSwitch", "vpc:DeleteVSwitch", "vpc:ModifyVSwitchAttribute", "vpc:DescribeVirtualBorderRouters" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:DescribeSecurityGroupAttribute", "ecs:DescribeSecurityGroups", "ecs:CreateNetworkInterface", "ecs:DeleteNetworkInterface", "ecs:DescribeNetworkInterfaces", "ecs:CreateNetworkInterfacePermission", "ecs:DescribeNetworkInterfacePermissions", "ecs:DeleteNetworkInterfacePermission" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "nas:DescribeFileSystems", "nas:CreateMountTarget", "nas:DescribeMountTargets", "nas:ModifyMountTarget", "nas:DescribeProtocolMountTarget" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "cr:ListNamespace", "cr:ListRepository", "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository", "cr:PushRepository", "cr:GetInstance", "cr:GetInstanceVpcEndpoint", "cr:ListInstance", "cr:ListInstanceDomain" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "datasetacc:DescribeInstance", "datasetacc:DescribeSlot", "datasetacc:DescribeEndpoint" ], "Resource": "*", "Effect": "Allow" } ] }
使用限制
僅華北6(烏蘭察布)地域支持使用靈駿智算資源。
支持的任務類型
當前靈駿智算資源僅支持TensorFlow、PyTorch、ElasticBatch和MPIJob類型的訓練任務。
當前僅智算CPFS類型的數據集暫不支持加速。
準備工作
準備靈駿智算資源
前往AI計算資源>資源池頁面,在靈駿智算資源頁簽購買靈駿智算資源。具體操作,請參見新建資源組并購買靈駿智算資源。
前往AI計算資源>資源配額(Quota)頁面,通過創建資源配額來分配靈駿智算資源。具體操作,請參見靈駿智算資源配額。
準備數據集
創建數據集
使用靈駿智算資源提交DLC任務或創建DSW實例時,支持使用OSS、NAS、CPFS類型的數據集,下文以智算CPFS類型的數據集為例為您介紹準備數據集的操作流程。
如果您的訓練任務對數據讀取有很高的讀寫速度與性能要求,建議您使用智算CPFS數據集。
購買智算CPFS資源。
前往AI計算資源>資源池頁面,單擊頁面右上方的新建CPFS。
在左側導航欄選擇
,然后單擊創建文件系統。在彈出的選擇文件系統對話框中單擊創建CPFS智算版,選擇配置容量后,根據界面提示完成付費、下單。
新建CPFS數據集。
參數配置完成后單擊提交,完成數據集創建。
加速數據集
您可以參考以下操作步驟開啟數據集加速功能:
目前,智算CPFS類型的數據集不支持開啟加速功能。
授權并購買數據集加速實例。具體操作,請參見云產品依賴與授權:DatasetAccelerator和創建及管理數據集加速實例。
為數據集開啟加速功能。
開啟數據集加速:已有數據集
主要流程如下:
創建一個支持開啟數據集加速功能的數據集,例如OSS或CPFS類型的數據集。
在數據集詳情頁面版本信息區域,單擊版本加速,選擇上述步驟中創建的數據集加速實例并配置加速掛載點。
說明掛載點類型需選擇VPC,如果使用靈駿智算資源提交訓練任務,需要選擇靈駿智算資源綁定的VPC與交換機。
完成配置后,單擊提交。
開啟數據集加速:新建數據集
在新建數據集時,您可以直接打開版本加速開關,并配置數據集加速實例。
準備自定義鏡像環境
您可以使用PAI提供的官方鏡像,也可以使用自定義構建的鏡像。當使用自定義鏡像提交DLC任務時,需要在鏡像中安裝RDMA庫才能使用RDMA。具體使用要求及配置方法如下:
環境要求
CUDA >= 11.2
NCCL >= 2.12.10
Python3
安裝RDMA庫
靈駿智算資源為您提供高性能的RDMA網絡,當您用自定義鏡像時,需在自定義鏡像的Dockerfile中手動安裝靈駿智算資源的Serverless的RDMA庫,才能更好的使用靈駿智算資源的RDMA網絡能力。
安裝RDMA庫的示例代碼如下。
RUN apt-get update && \
apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends libnl-3-dev libnl-route-3-dev libnl-3-200 libnl-route-3-200 iproute2 udev dmidecode ethtool && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN cd /tmp/ && \
wget http://pythonrun.oss-cn-zhangjiakou.aliyuncs.com/rdma/nic-libs-mellanox-rdma-5.2-2/nic-lib-rdma-core-installer-ubuntu.tar.gz && \
tar xzvf nic-lib-rdma-core-installer-ubuntu.tar.gz && \
cd nic-lib-rdma-core-installer-ubuntu && \
echo Y | /bin/bash install.sh && \
cd .. && \
rm -rf nic-lib-rdma-core-installer-ubuntu && \
rm -f nic-lib-rdma-core-installer-ubuntu.tar.gz
提交DLC分布式作業
支持配置的系統環境變量
公共環境變量
DLC會自動注入以下NCCL相關的環境變量,作業中不需要再進行配置:
NCCL_IB_HCA
NCCL_IB_TC
NCCL_IB_SL
NCCL_IB_GID_INDEX
NCCL_SOCKET_IFNAME
Pytorch環境變量
在PyTorch的分布式訓練過程中,Master和Worker是兩個不同的角色,它們需要建立連接并通信。而在DLC中,提供了一些環境變量來同步必要的信息,例如將Master的地址和端口號同步給Worker。以下是DLC設置的PyTorch環境變量:
環境變量名 | 描述 |
MASTER_ADDR | Master節點地址。例如: |
MASTER_PORT | Master節點端口。例如:23456。 |
WORLD_SIZE | 分布式作業的節點總數。例如提交了一個包含1個Master、1個Worker的作業,WORLD_SIZE會設置為2。 |
RANK | 節點的Index。例如提交一個包含1個Master、2個Worker的作業,Master上設置的RANK為0,Worker-0設置的RANK為1, Worker-1 設置的RANK為2。 |
TensorFlow環境變量
TensorFlow分布式作業通過TF_CONFIG環境變量來構建分布式的網絡拓撲信息,對于TensorFlow,DLC設置了如下環境變量:
環境變量名 | 描述 |
TF_CONFIG | TensorFlow分布式網絡拓撲信息,示例如下: { "cluster":{ "worker":[ "dlc1y3madghdduqi-worker-0.t1612285282502324.svc:2222", "dlc1y3madghdduqi-worker-1.t1612285282502324.svc:2222" ] }, "task":{ "type":"worker", "index":0 }, "environment":"cloud" } |
提交分布式作業
登錄PAI控制臺,選擇地域和目標工作空間后,進入分布式訓練(DLC)頁面。在該頁面新建任務,核心參數配置如下,其他參數配置說明請參見創建訓練任務。
參數 | 描述 | |
環境信息 | 節點鏡像 | 選擇PAI預置的官方鏡像或自定義鏡像。 |
數據集 | 單擊自定義數據集,選擇已準備的OSS、NAS或智算CPFS數據集。 | |
啟動命令 | 根據需要在分布式作業的每個Pod中執行的腳本命令,示例命令如下,實際執行時,您需要根據實際情況進行修改。
| |
資源信息 | 資源類型 | 選擇靈駿智算。 |
資源來源 | 選擇資源配額。 | |
資源配額 | 選擇已創建的靈駿智算資源配額。 | |
任務資源 | 填寫節點資源申請量,包括GPU(卡數)、CPU(核數)、內存(GiB)和共享內存(GiB)。 |
任務提交成功后,您可以隨時查看任務詳情并進行相應的管理操作。具體操作,請參見查看訓練詳情和管理訓練任務。
創建及管理DSW實例
登錄PAI控制臺,選擇地域和目標工作空間后,進入交互式建模(DSW)頁面。在該頁面新建實例并配置以下關鍵參數,其他參數配置詳情,請參見創建及管理DSW實例。
參數 | 描述 | |
資源信息 | 資源配額 | 選擇已創建的靈駿智算資源配額。 |
資源規格 | 填寫資源申請量,包括GPU(卡數)、CPU(核數)、內存(GiB)和共享內存(GiB)。 | |
環境信息 | 鏡像 | PAI預置了官方鏡像,鏡像中預裝了常用的軟件和機器學習框架,如果這些框架不符合您的需求,您可以使用自定義鏡像。 |
數據集 | 單擊添加按鈕,選擇已創建的數據集。 |
實例創建成功后,您可以訪問或管理您的DSW實例。具體操作,請參見訪問DSW實例或管理DSW實例。