SimAI-Simulation初步认识

模拟器用于指定工作负载、以及自定义网络拓扑进行训练仿真,得出训练过程中的训练耗时以及通信耗时等相关情况。使得大模型在部署前可以进行无GPU设备的参数调优。

涉及术语说明:
asw = 接入交换机, LEAF
psw = Pod交换机, SPINE
nv_switch = GPUserver内一个nvlink转发芯片, 一台GPU Server只有一个nv_switch

获取

# Clone the repository
$ git clone https://github.com/aliyun/SimAI.git
$ cd ./SimAI/

# Clone submodules
$ git submodule update --init --recursive
# Make sure use the newest commit
$ git submodule update --remote

# Compile SimAI-Analytical
$ ./scripts/build.sh -c analytical

# Compile SimAI-Simulation (ns3)
$ ./scripts/build.sh -c ns3

使用网络仿真

生成拓扑


# Create network topo
python3 ./astra-sim-alibabacloud/inputs/topo/gen_HPN_7.0_topo_mulgpus_one_link.py -g 128 -gt A100 -bw 100Gbps -nvbw 2400Gbps

这里是阿里提供的一个脚本生成拓扑,其中参数说明
128个GPU
A100的GPU类型
服务器网卡到接入交换机带宽 100Gbps
NVLINK带宽 2400Gbps (A100的带宽2400Gbps, H20为3600Gbps)
默认接入家换机到POD交换机带宽400Gbps
默认POD交换机psw 120台
默认接入交换机asw 64台

拓扑说明

这是生成的拓扑文件内容截取如下

272 8 16 128 736 A100
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 
0 128 2400Gbps 0.000025ms 0
0 144 100Gbps 0.0005ms 0
1 128 2400Gbps 0.000025ms 0
1 145 100Gbps 0.0005ms 0
2 128 2400Gbps 0.000025ms 0
2 146 100Gbps 0.0005ms 0
...
144 152 400Gbps 0.0005ms 0
144 153 400Gbps 0.0005ms 0
144 154 400Gbps 0.0005ms 0

第一行

节点数:272(128 GPU + 16 nvswitch + 8 接入交换机 + 120 骨干交换机 )

单服务器节点数 8

nv_switch数量 :16

总交换机数量: 128 (8接入,120骨干)

总link数量: 736 , 60* 8 (psw - asw) + 16 * 8 (server - asw) + 16 * 8 (gpu - nv_switch)

第二行 144个交换节点,8 asw, 120 psw, 16 nv_switch

128~143 为nv_switch

144~151 为asw

152~211 为psw1

212~271 为psw2

第三行开始,描述所有link的带宽和时延

0 128 2400Gbps 0.000025ms 0 GPU与Nv_switch的带宽,和GPU与asw的带宽,asw与psw带宽

0 144 100Gbps 0.0005ms 0 GPU 0 与 nv_swith_128 之间的带宽时延

144 152 400Gbps 0.0005ms 0 asw_144 与 psw_152 之间的带宽时延

每一个asw连接60个psw

运行仿真


# Running
$ AS_SEND_LAT=3 AS_NVLS_ENABLE=1 ./bin/SimAI_simulator -t 16 -w ./example/microAllReduce.txt -n ./HPN_7_0_128_gpus_8_in_one_server_with_single_plane_100Gbps_A100 -c astra-sim-alibabacloud/inputs/config/SimAI.conf

工作负载
cat ./example/microAllReduce.txt
HYBRID_TRANSFORMER_FWD_IN_BCKWD model_parallel_NPU_group: 8 ep: 1 pp: 1 vpp: 8 ga: 1 all_gpus: 8 checkpoints: 0 checkpoint_initiates: 0
2
embedding_layer     -1 556000  ALLREDUCE   16777216      1       NONE 0        1      NONE   0      1 
embedding_layer     -1 556000  ALLREDUCE   67108864      1       NONE 0        1      NONE   0      1

这是一个简单的工作负载示例,只有ALLREDUCE操作。

真是的模型负载,可以通过AICB工具生成,或者手动修改。

输出结果

文件 ncclFlowModel_EndToEnd.csv

layer_nametest1fwd computewg computeig computefwd exposed comm
embedding_layertest15560.0010.001141.464
embedding_layertest15560.0010.001434.556
SUMtest111120.0020.002576.02
total exposed comm576.026total comp1112.004total time1688.03

这里有前向计算时间,工作计算时间,输入计算时间,前向通信之间等等。

最终显示出相应的计算时间和传输时间。

文件 ncclFlowModel_test1_dimension_utilization_0.csv

time (us)dim1 utildim2 util
1000
53000
54000
55000
560400
5701000
5801000
5901000
6001000
6101000
6201000
6301000
6401000

时间和dim1、 dim2的利用率表,这里把dim util当做GPU利用率来理解。

文件ncclFlowModel_detailed_144.csv

此文件暂时为空,可能需要复杂的工作负载才会形成它,对于模型训练细节输出。

资源下载链接为: https://pan.quark.cn/s/ddc62c5d4a5d Windows Mobile 是微软在 0200 年代至 2010 年代初推出的移动操作系统,曾广泛应用于智能手机和平板电脑。开发者可以借助各种库和框架为其开发功能丰富的应用,其中 “32feet.NET” 是一个开源的 .NET 库,专为 .NET Framework 和 .NET Compact Framework 提供蓝牙开发支持。它包含多个命名空间,例如 InTheHand.Devices.Bluetooth、InTheHand.Net.Personal 和 InTheHand.Phone.Bluetooth,用于实现蓝牙设备交互功能。 InTheHand.Devices.Bluetooth 命名空间用于执行基础蓝牙操作,比如扫描附近设备、建立连接以及发现蓝牙服务等。InTheHand.Net.Personal 提供了更高级的功能,例如创建个人区域网络(PAN)、文件传输和串行端口模拟,便于开发者开发跨设备的数据共享应用。而 InTheHand.Phone.Bluetooth 主要针对 Windows Phone 平台,支持蓝牙配对、消息收发和蓝牙耳机控制等功能,不过由于 Windows Mobile 已停止更新,该命名空间更多适用于旧设备或项目。 压缩包中的文件列表看似是维基页面的渲染文件,可能是关于 32feet.NET 的使用教程、API 参考或示例代码。文件名如 13632.html、563803.html 等可能是页面 ID,涵盖蓝牙设备搜索、连接和数据传输等不同主题。 使用 32feet.NET 进行蓝牙开发时,开发者需要注意以下几点:首先,确保开发环境已安装 .NET Framework 或 .NET Compact Framework,以及 32feet.NET
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值