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  }