|
36 | 36 |
|
37 | 37 | SINGLE_THREADED = False
|
38 | 38 |
|
| 39 | +# Family name to SkyPilot GPU name mapping. |
| 40 | +# |
| 41 | +# When adding a new accelerator: |
| 42 | +# - The instance type is typically already fetched, but we need to find the |
| 43 | +# family name and add it to this mapping. |
| 44 | +# - To inspect family names returned by Azure API, check the dataframes in |
| 45 | +# get_all_regions_instance_types_df(). |
| 46 | +FAMILY_NAME_TO_SKYPILOT_GPU_NAME = { |
| 47 | + 'standardNCFamily': 'K80', |
| 48 | + 'standardNCSv2Family': 'P100', |
| 49 | + 'standardNCSv3Family': 'V100', |
| 50 | + 'standardNCPromoFamily': 'K80', |
| 51 | + 'StandardNCASv3_T4Family': 'T4', |
| 52 | + 'standardNDSv2Family': 'V100-32GB', |
| 53 | + 'StandardNCADSA100v4Family': 'A100-80GB', |
| 54 | + 'standardNDAMSv4_A100Family': 'A100-80GB', |
| 55 | + 'StandardNDASv4_A100Family': 'A100', |
| 56 | + 'standardNVFamily': 'M60', |
| 57 | + 'standardNVSv2Family': 'M60', |
| 58 | + 'standardNVSv3Family': 'M60', |
| 59 | + 'standardNVPromoFamily': 'M60', |
| 60 | + 'standardNVSv4Family': 'Radeon MI25', |
| 61 | + 'standardNDSFamily': 'P40', |
| 62 | + 'StandardNVADSA10v5Family': 'A10', |
| 63 | + 'StandardNCadsH100v5Family': 'H100', |
| 64 | + 'standardNDSH100v5Family': 'H100', |
| 65 | +} |
| 66 | + |
39 | 67 |
|
40 | 68 | def get_regions() -> List[str]:
|
41 | 69 | """Get all available regions."""
|
@@ -78,7 +106,7 @@ def get_pricing_url(region: Optional[str] = None) -> str:
|
78 | 106 | def get_pricing_df(region: Optional[str] = None) -> pd.DataFrame:
|
79 | 107 | all_items = []
|
80 | 108 | url = get_pricing_url(region)
|
81 |
| - print(f'Getting pricing for {region}') |
| 109 | + print(f'Getting pricing for {region}, url: {url}') |
82 | 110 | page = 0
|
83 | 111 | while url is not None:
|
84 | 112 | page += 1
|
@@ -125,29 +153,11 @@ def get_sku_df(region_set: Set[str]) -> pd.DataFrame:
|
125 | 153 |
|
126 | 154 |
|
127 | 155 | def get_gpu_name(family: str) -> Optional[str]:
|
128 |
| - gpu_data = { |
129 |
| - 'standardNCFamily': 'K80', |
130 |
| - 'standardNCSv2Family': 'P100', |
131 |
| - 'standardNCSv3Family': 'V100', |
132 |
| - 'standardNCPromoFamily': 'K80', |
133 |
| - 'StandardNCASv3_T4Family': 'T4', |
134 |
| - 'standardNDSv2Family': 'V100-32GB', |
135 |
| - 'StandardNCADSA100v4Family': 'A100-80GB', |
136 |
| - 'standardNDAMSv4_A100Family': 'A100-80GB', |
137 |
| - 'StandardNDASv4_A100Family': 'A100', |
138 |
| - 'standardNVFamily': 'M60', |
139 |
| - 'standardNVSv2Family': 'M60', |
140 |
| - 'standardNVSv3Family': 'M60', |
141 |
| - 'standardNVPromoFamily': 'M60', |
142 |
| - 'standardNVSv4Family': 'Radeon MI25', |
143 |
| - 'standardNDSFamily': 'P40', |
144 |
| - 'StandardNVADSA10v5Family': 'A10', |
145 |
| - } |
146 | 156 | # NP-series offer Xilinx U250 FPGAs which are not GPUs,
|
147 | 157 | # so we do not include them here.
|
148 | 158 | # https://docs.microsoft.com/en-us/azure/virtual-machines/np-series
|
149 | 159 | family = family.replace(' ', '')
|
150 |
| - return gpu_data.get(family) |
| 160 | + return FAMILY_NAME_TO_SKYPILOT_GPU_NAME.get(family) |
151 | 161 |
|
152 | 162 |
|
153 | 163 | def get_all_regions_instance_types_df(region_set: Set[str]):
|
|
0 commit comments