@@ -289,9 +289,35 @@ func hasMIGCapableGPU(labels map[string]string) bool {
289289
290290 // check product label if mig.capable label does not exist
291291 if value , exists := labels [gpuProductLabelKey ]; exists {
292- if strings .Contains (strings .ToLower (value ), "h100" ) ||
293- strings .Contains (strings .ToLower (value ), "a100" ) ||
294- strings .Contains (strings .ToLower (value ), "a30" ) {
292+ return isMIGCapableGPUProduct (value )
293+ }
294+
295+ return false
296+ }
297+
298+ // isMIGCapableGPUProduct checks if a GPU product supports MIG based on its name
299+ func isMIGCapableGPUProduct (productName string ) bool {
300+ if productName == "" {
301+ return false
302+ }
303+
304+ lowerProduct := strings .ToLower (productName )
305+
306+ // Define MIG-capable GPU patterns
307+ migCapablePatterns := []string {
308+ // Hopper architecture
309+ "h100" , "h800" , "h200" , "h20" , "gh200" ,
310+ // Ampere architecture
311+ "a100" , "a800" , "a30" ,
312+ // Blackwell architecture
313+ "gb200" , "b200" , "gb300" , "b300" ,
314+ // Professional workstation GPUs
315+ "rtx-pro-6000" , "rtx-pro-5000" ,
316+ "rtx pro 6000" , "rtx pro 5000" ,
317+ }
318+
319+ for _ , pattern := range migCapablePatterns {
320+ if strings .Contains (lowerProduct , pattern ) {
295321 return true
296322 }
297323 }
0 commit comments