@@ -33,7 +33,7 @@ import (
3333 "github.com/NVIDIA/fleet-intelligence-agent/internal/dcgmversion"
3434)
3535
36- var supportedArchitectures = []string {"Hopper" , "Blackwell" , "Rubin" }
36+ var supportedArchitectures = []string {"Hopper" , "Blackwell" , "Rubin" , "Ampere" , "Ada Lovelace" }
3737
3838const minimumDCGMVersion = "4.2.3"
3939const minimumDriverMajorVersion = 510
@@ -206,11 +206,15 @@ func evaluateArchitecture(input *Input) Check {
206206 }
207207
208208 if ! slices .ContainsFunc (supportedArchitectures , func (s string ) bool {
209- return strings . EqualFold (s , input .GPUInfo .Architecture )
209+ return architectureMatches (s , input .GPUInfo .Architecture )
210210 }) {
211211 return Check {
212- Name : "gpu-architecture" ,
213- Message : "Unsupported GPU architecture: " + input .GPUInfo .Architecture + "; supported architectures are Hopper, Blackwell, and Rubin" ,
212+ Name : "gpu-architecture" ,
213+ Message : fmt .Sprintf (
214+ "Unsupported GPU architecture: %s; supported architectures are %s" ,
215+ input .GPUInfo .Architecture ,
216+ formatSupportedArchitectures (supportedArchitectures ),
217+ ),
214218 }
215219 }
216220
@@ -221,6 +225,31 @@ func evaluateArchitecture(input *Input) Check {
221225 }
222226}
223227
228+ func architectureMatches (supported , detected string ) bool {
229+ return normalizeArchitectureName (supported ) == normalizeArchitectureName (detected )
230+ }
231+
232+ func normalizeArchitectureName (v string ) string {
233+ normalized := strings .TrimSpace (strings .ToLower (v ))
234+ normalized = strings .ReplaceAll (normalized , "-" , "" )
235+ normalized = strings .ReplaceAll (normalized , "_" , "" )
236+ normalized = strings .ReplaceAll (normalized , " " , "" )
237+ return normalized
238+ }
239+
240+ func formatSupportedArchitectures (architectures []string ) string {
241+ switch len (architectures ) {
242+ case 0 :
243+ return ""
244+ case 1 :
245+ return architectures [0 ]
246+ case 2 :
247+ return architectures [0 ] + " and " + architectures [1 ]
248+ default :
249+ return strings .Join (architectures [:len (architectures )- 1 ], ", " ) + ", and " + architectures [len (architectures )- 1 ]
250+ }
251+ }
252+
224253func evaluateDriver (input * Input ) Check {
225254 if ! gpuHardwareDetected (input ) {
226255 return Check {
0 commit comments