github.com/microsoft/moc@v0.17.1/common/virtualmachineconstants.go (about) 1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the Apache v2.0 license. 3 4 package wssdcommon 5 6 import ( 7 pb "github.com/microsoft/moc/rpc/common" 8 ) 9 10 type GpuAssignType = int32 11 12 const ( 13 GpuAssignTypeNone GpuAssignType = 0 14 GpuAssignTypeDDA GpuAssignType = 1 15 GpuAssignTypeGpuPv GpuAssignType = 2 16 ) 17 18 // GPU Type names for Moc 19 const ( 20 NvidiaT4Name = "NVIDIA Tesla T4" 21 NvidiaA2Name = "NVIDIA A2" 22 NvidiaA16Name = "NVIDIA A16" 23 NvidiaA30Name = "NVIDIA A30" 24 NvidiaA100_40Name = "NVIDIA A100 40GB" 25 NvidiaA100_80Name = "NVIDIA A100 80GB" 26 NvidiaM60Name = "NVIDIA Tesla M60" 27 ) 28 29 type VmSize struct { 30 CpuCount int 31 GpuCount int 32 GpuName string 33 MemoryMB int 34 GpuAssignMode GpuAssignType 35 GpuList []*pb.Gpu 36 } 37 38 // innerMap is captured in the closure returned below 39 var VirtualMachineSize_value = map[pb.VirtualMachineSizeType]VmSize{ 40 pb.VirtualMachineSizeType_Default: { 41 CpuCount: 4, 42 MemoryMB: 4096, 43 }, 44 pb.VirtualMachineSizeType_Standard_A2_v2: { 45 CpuCount: 2, 46 MemoryMB: 4096, 47 }, 48 pb.VirtualMachineSizeType_Standard_A4_v2: { 49 CpuCount: 4, 50 MemoryMB: 8192, 51 }, 52 /// Standard DXs_v3 53 pb.VirtualMachineSizeType_Standard_D2s_v3: { 54 CpuCount: 2, 55 MemoryMB: 8192, 56 }, 57 pb.VirtualMachineSizeType_Standard_D4s_v3: { 58 CpuCount: 4, 59 MemoryMB: 16384, 60 }, 61 pb.VirtualMachineSizeType_Standard_D8s_v3: { 62 CpuCount: 8, 63 MemoryMB: 32768, 64 }, 65 pb.VirtualMachineSizeType_Standard_D16s_v3: { 66 CpuCount: 16, 67 MemoryMB: 65536, 68 }, 69 pb.VirtualMachineSizeType_Standard_D32s_v3: { 70 CpuCount: 32, 71 MemoryMB: 131072, 72 }, 73 /// Standard DSX_v2 74 pb.VirtualMachineSizeType_Standard_DS2_v2: { 75 CpuCount: 2, 76 MemoryMB: 7168, 77 }, 78 pb.VirtualMachineSizeType_Standard_DS3_v2: { 79 CpuCount: 2, 80 MemoryMB: 14336, 81 }, 82 pb.VirtualMachineSizeType_Standard_DS4_v2: { 83 CpuCount: 8, 84 MemoryMB: 28672, 85 }, 86 pb.VirtualMachineSizeType_Standard_DS5_v2: { 87 CpuCount: 16, 88 MemoryMB: 57344, 89 }, 90 /// Standard DSX_v2 (memory optimized) 91 pb.VirtualMachineSizeType_Standard_DS13_v2: { 92 CpuCount: 8, 93 MemoryMB: 57344, 94 }, 95 /// Custom sizes for MSK8S 96 pb.VirtualMachineSizeType_Standard_K8S_v1: { 97 CpuCount: 4, 98 MemoryMB: 2048, 99 }, 100 pb.VirtualMachineSizeType_Standard_K8S2_v1: { 101 CpuCount: 2, 102 MemoryMB: 2048, 103 }, 104 pb.VirtualMachineSizeType_Standard_K8S3_v1: { 105 CpuCount: 4, 106 MemoryMB: 6144, 107 }, 108 pb.VirtualMachineSizeType_Standard_K8S4_v1: { 109 CpuCount: 4, 110 MemoryMB: 4096, 111 }, 112 pb.VirtualMachineSizeType_Standard_K8S5_v1: { 113 CpuCount: 2, 114 MemoryMB: 1024, 115 }, 116 pb.VirtualMachineSizeType_Standard_F16s_HPN: { 117 CpuCount: 16, 118 MemoryMB: 32768, 119 }, 120 // Sizes with GPUs 121 pb.VirtualMachineSizeType_Standard_NK6: { 122 CpuCount: 6, 123 GpuCount: 1, 124 GpuName: NvidiaT4Name, 125 MemoryMB: 12288, 126 GpuAssignMode: GpuAssignTypeDDA, 127 }, 128 pb.VirtualMachineSizeType_Standard_NK12: { 129 CpuCount: 12, 130 GpuCount: 2, 131 GpuName: NvidiaT4Name, 132 MemoryMB: 24576, 133 GpuAssignMode: GpuAssignTypeDDA, 134 }, 135 pb.VirtualMachineSizeType_Standard_NV6: { 136 CpuCount: 6, 137 GpuCount: 1, 138 GpuName: NvidiaM60Name, 139 MemoryMB: 57344, 140 GpuAssignMode: GpuAssignTypeDDA, 141 }, 142 pb.VirtualMachineSizeType_Standard_NV12: { 143 CpuCount: 12, 144 GpuCount: 2, 145 GpuName: NvidiaM60Name, 146 MemoryMB: 131072, 147 GpuAssignMode: GpuAssignTypeDDA, 148 }, 149 pb.VirtualMachineSizeType_Standard_NC4_A2: { 150 CpuCount: 4, 151 GpuCount: 1, 152 GpuName: NvidiaA2Name, 153 MemoryMB: 8192, 154 GpuAssignMode: GpuAssignTypeDDA, 155 }, 156 pb.VirtualMachineSizeType_Standard_NC8_A2: { 157 CpuCount: 8, 158 GpuCount: 1, 159 GpuName: NvidiaA2Name, 160 MemoryMB: 16384, 161 GpuAssignMode: GpuAssignTypeDDA, 162 }, 163 pb.VirtualMachineSizeType_Standard_NC16_A2: { 164 CpuCount: 16, 165 GpuCount: 2, 166 GpuName: NvidiaA2Name, 167 MemoryMB: 65536, 168 GpuAssignMode: GpuAssignTypeDDA, 169 }, 170 pb.VirtualMachineSizeType_Standard_NC32_A2: { 171 CpuCount: 32, 172 GpuCount: 2, 173 GpuName: NvidiaA2Name, 174 MemoryMB: 131072, 175 GpuAssignMode: GpuAssignTypeDDA, 176 }, 177 pb.VirtualMachineSizeType_Standard_NC4_A16: { 178 CpuCount: 4, 179 GpuCount: 1, 180 GpuName: NvidiaA16Name, 181 MemoryMB: 8192, 182 GpuAssignMode: GpuAssignTypeDDA, 183 }, 184 pb.VirtualMachineSizeType_Standard_NC8_A16: { 185 CpuCount: 8, 186 GpuCount: 1, 187 GpuName: NvidiaA16Name, 188 MemoryMB: 16384, 189 GpuAssignMode: GpuAssignTypeDDA, 190 }, 191 pb.VirtualMachineSizeType_Standard_NC16_A16: { 192 CpuCount: 16, 193 GpuCount: 2, 194 GpuName: NvidiaA16Name, 195 MemoryMB: 65536, 196 GpuAssignMode: GpuAssignTypeDDA, 197 }, 198 pb.VirtualMachineSizeType_Standard_NC32_A16: { 199 CpuCount: 32, 200 GpuCount: 2, 201 GpuName: NvidiaA16Name, 202 MemoryMB: 131072, 203 GpuAssignMode: GpuAssignTypeDDA, 204 }, 205 pb.VirtualMachineSizeType_Standard_NC4_A30: { 206 CpuCount: 4, 207 GpuCount: 1, 208 GpuName: NvidiaA30Name, 209 MemoryMB: 8192, 210 GpuAssignMode: GpuAssignTypeDDA, 211 }, 212 pb.VirtualMachineSizeType_Standard_NC8_A30: { 213 CpuCount: 8, 214 GpuCount: 1, 215 GpuName: NvidiaA30Name, 216 MemoryMB: 16384, 217 GpuAssignMode: GpuAssignTypeDDA, 218 }, 219 pb.VirtualMachineSizeType_Standard_NC16_A30: { 220 CpuCount: 16, 221 GpuCount: 2, 222 GpuName: NvidiaA30Name, 223 MemoryMB: 65536, 224 GpuAssignMode: GpuAssignTypeDDA, 225 }, 226 pb.VirtualMachineSizeType_Standard_NC32_A30: { 227 CpuCount: 32, 228 GpuCount: 2, 229 GpuName: NvidiaA30Name, 230 MemoryMB: 131072, 231 GpuAssignMode: GpuAssignTypeDDA, 232 }, 233 pb.VirtualMachineSizeType_Standard_NC4_A100_40: { 234 CpuCount: 4, 235 GpuCount: 1, 236 GpuName: NvidiaA100_40Name, 237 MemoryMB: 8192, 238 GpuAssignMode: GpuAssignTypeDDA, 239 }, 240 pb.VirtualMachineSizeType_Standard_NC8_A100_40: { 241 CpuCount: 8, 242 GpuCount: 1, 243 GpuName: NvidiaA100_40Name, 244 MemoryMB: 16384, 245 GpuAssignMode: GpuAssignTypeDDA, 246 }, 247 pb.VirtualMachineSizeType_Standard_NC16_A100_40: { 248 CpuCount: 16, 249 GpuCount: 2, 250 GpuName: NvidiaA100_40Name, 251 MemoryMB: 65536, 252 GpuAssignMode: GpuAssignTypeDDA, 253 }, 254 pb.VirtualMachineSizeType_Standard_NC32_A100_40: { 255 CpuCount: 32, 256 GpuCount: 2, 257 GpuName: NvidiaA100_40Name, 258 MemoryMB: 131072, 259 GpuAssignMode: GpuAssignTypeDDA, 260 }, 261 pb.VirtualMachineSizeType_Standard_NC4_A100_80: { 262 CpuCount: 4, 263 GpuCount: 1, 264 GpuName: NvidiaA100_80Name, 265 MemoryMB: 8192, 266 GpuAssignMode: GpuAssignTypeDDA, 267 }, 268 pb.VirtualMachineSizeType_Standard_NC8_A100_80: { 269 CpuCount: 8, 270 GpuCount: 1, 271 GpuName: NvidiaA100_80Name, 272 MemoryMB: 16384, 273 GpuAssignMode: GpuAssignTypeDDA, 274 }, 275 pb.VirtualMachineSizeType_Standard_NC16_A100_80: { 276 CpuCount: 16, 277 GpuCount: 2, 278 GpuName: NvidiaA100_80Name, 279 MemoryMB: 65536, 280 GpuAssignMode: GpuAssignTypeDDA, 281 }, 282 pb.VirtualMachineSizeType_Standard_NC32_A100_80: { 283 CpuCount: 32, 284 GpuCount: 2, 285 GpuName: NvidiaA100_80Name, 286 MemoryMB: 131072, 287 GpuAssignMode: GpuAssignTypeDDA, 288 }, 289 }