Skip to main content

SCS Flavor Naming Standard: Implementation and Testing Notes

Introduction

The three major versions of the standard that exist so far are very similar, and deliberately so. Therefore, the procedures needed to implement or test them are very similar as well. Yet, this document will only cover v3, because v1 and v2 are already obsolete by the time of writing.

Implementation notes

Every flavor whose name starts with SCS- must conform with the naming scheme laid down in the standard.

Operational tooling

Syntax check

The test suite comes with a handy command-line utility that can be used to validate flavor names, to interactively construct a flavor name via a questionnaire, and to generate prose descriptions for given flavor names. See the README for more details.

The functionality of this script is also (partially) exposed via the web page https://flavors.scs.community/, which can both parse SCS flavors names as well as generate them.

With the OpenStack tooling (python3-openstackclient, OS_CLOUD) in place, you can call cli.py -v parse v3 $(openstack flavor list -f value -c Name) to get a report on the syntax compliance of the flavor names of the cloud environment.

Flavor creation

The OpenStack Flavor Manager from OSISM will create a whole set of flavors in one go. To that end, it provides different options: either the standard mandatory and possibly recommended flavors can be created, or the user can set a file containing his flavors.

GPU table

The most commonly used datacenter GPUs are listed here, showing what GPUs (or partitions of a GPU) result in what GPU part of the flavor name.

Nvidia (N)

We show the most popular recent generations here. Older one are of course possible as well.

Ampere (a)

One Streaming Multiprocessor on Ampere has 64 (A30, A100) or 128 Cuda Cores (A10, A40).

GPUs without MIG (one SM has 128 Cuda Cores and 4 Tensor Cores):

Nvidia GPUTensor CCuda CoresSMsVRAMSCS name piece
A1028892167224G GDDR6GNa-72-24
A40336107528448G GDDR6GNa-84-48

GPUs with Multi-Instance-GPU (MIG), where GPUs can be partitioned and the partitions handed out as as pass-through PCIe devices to instances. One SM corresponds to 64 Cuda Cores and 4 Tensor Cores.

Nvidia GPUFractionTensor CCuda CoresSMsVRAMSCS GPU name
A301/122435845624G HBM2GNa-56-24
A301/211217922812G HBM2GNa-28-12
A301/456896146G HBM2GNa-14-6
A30X1/122435845624G HBM2eGNa-56h-24h
A1001/1432691210880G HBM2eGNa-108h-80h
A1001/221634565440G HBM2eGNa-54h-40h
A1001/410817282720G HBM2eGNa-27h-20h
A1001/760+960+15+10G HBM2eGNa-15h-10h+
A100X1/1432691210880G HBM2eGNa-108-80h

[+] The precise numbers for the 1/7 MIG configurations are not known by the author of this document and need validation.

Ada Lovelave (l)

No MIG support, 128 Cuda Cores and 4 Tensor Cores per SM.

Nvidia GPUTensor CCuda CoresSMsVRAMSCS name piece
L423274245824G GDDR6GNl-58-24
L405681817614248G GDDR6GNl-142-48
L40G5681817614248G GDDR6GNl-142h-48
L40S5681817614248G GDDR6GNl-142hh-48
Grace Hopper (g)

These have MIG support and 128 Cuda Cores and 4 Tensor Cores per SM.

Nvidia GPUFractionTensor CCuda CoresSMsVRAMSCS GPU name
H1001/15281689613280G HBM3GNg-132-80h
H1001/226484486640G HBM3GNg-66-40h
H1001/413242243320G HBM3GNg-33-20h
H1001/772+2304+18+10G HBM3GNg-18-10h+
H2001/152816896132141G HBM3eGNg-132-141h
H2001/2264168966670G HBM3eGNg-66-70h
...

[+] The precise numbers for the 1/7 MIG configurations are not known by the author of this document and need validation.

AMD Radeon (A)

CDNA 2 (2)

One CU contains 64 Stream Processors.

AMD InstinctStream ProcCUsVRAMSCS name piece
Inst MI210665610464G HBM2eGA2-104-64h
Inst MI25013312208128G HBM2eGA2-208-128h
Inst MI250X14080229128G HBM2eGA2-220-128h
CDNA 3 (3)

SRIOV partitioning is possible, resulting in pass-through for up to 8 partitions, somewhat similar to Nvidia MIG. 4 Tensor Cores and 64 Stream Processors per CU.

AMD GPUTensor CStream ProcCUsVRAMSCS name piece
Inst MI300X121619456304192G HBM3GA3-304-192h
Inst MI325X121619456304288G HBM3GA3-304-288h

intel Xe (I)

Xe-HPC (Ponte Vecchio) (3)

1 EU corresponds to one Tensor Core and contains 128 Shading Units.

intel DC GPUTensor CShading UEUsVRAMSCS name part
Max 11005671685648G HBM2eGI3-56-48h
Max 155012816384128128G HBM2eGI3-128-128h

Automated tests

Errors

The following items MUST be detected and reported as an error:

  • any syntax error in a name starting with SCS-,
  • any mismatch between any immediately discoverable property of a flavor (currently, CPU, RAM and disk size) and the meaning of its name (which is usually a lower bound), such as the CPU generation or hypervisor.

In addition, the following items MAY be reported as an error:

  • any mismatch between any non-immediately discoverable property of flavor and the meaning of its name.

Warnings

None so far.

Implementation

The script flavor-names-openstack.py talks to the OpenStack API of the cloud specified by the OS_CLOUD environment and queries properties and checks the names for standards compliance.

Manual tests

To be determined.