Skip to content

Commit ee7e8d2

Browse files
Copilotmudler
andcommitted
refactor: keep unused constants private in capabilities.go
Co-authored-by: mudler <[email protected]>
1 parent de8a984 commit ee7e8d2

File tree

1 file changed

+50
-48
lines changed

1 file changed

+50
-48
lines changed

pkg/system/capabilities.go

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,34 +12,36 @@ import (
1212
)
1313

1414
const (
15-
DefaultCapability = "default"
16-
NvidiaL4T = "nvidia-l4t"
17-
DarwinX86 = "darwin-x86"
18-
Metal = "metal"
19-
Nvidia = "nvidia"
20-
15+
// Public constants - used by tests and external packages
16+
Nvidia = "nvidia"
2117
AMD = "amd"
2218
Intel = "intel"
23-
Vulkan = "vulkan"
2419

25-
NvidiaCuda13 = "nvidia-cuda-13"
26-
NvidiaCuda12 = "nvidia-cuda-12"
27-
NvidiaL4TCuda12 = "nvidia-l4t-cuda-12"
28-
NvidiaL4TCuda13 = "nvidia-l4t-cuda-13"
20+
// Private constants - only used within this package
21+
defaultCapability = "default"
22+
nvidiaL4T = "nvidia-l4t"
23+
darwinX86 = "darwin-x86"
24+
metal = "metal"
25+
vulkan = "vulkan"
26+
27+
nvidiaCuda13 = "nvidia-cuda-13"
28+
nvidiaCuda12 = "nvidia-cuda-12"
29+
nvidiaL4TCuda12 = "nvidia-l4t-cuda-12"
30+
nvidiaL4TCuda13 = "nvidia-l4t-cuda-13"
2931

3032
capabilityEnv = "LOCALAI_FORCE_META_BACKEND_CAPABILITY"
3133
capabilityRunFileEnv = "LOCALAI_FORCE_META_BACKEND_CAPABILITY_RUN_FILE"
3234
defaultRunFile = "/run/localai/capability"
3335

34-
// Backend detection tokens
35-
BackendTokenDarwin = "darwin"
36-
BackendTokenMLX = "mlx"
37-
BackendTokenMetal = "metal"
38-
BackendTokenL4T = "l4t"
39-
BackendTokenCUDA = "cuda"
40-
BackendTokenROCM = "rocm"
41-
BackendTokenHIP = "hip"
42-
BackendTokenSYCL = "sycl"
36+
// Backend detection tokens (private)
37+
backendTokenDarwin = "darwin"
38+
backendTokenMLX = "mlx"
39+
backendTokenMetal = "metal"
40+
backendTokenL4T = "l4t"
41+
backendTokenCUDA = "cuda"
42+
backendTokenROCM = "rocm"
43+
backendTokenHIP = "hip"
44+
backendTokenSYCL = "sycl"
4345
)
4446

4547
var (
@@ -65,7 +67,7 @@ func (s *SystemState) Capability(capMap map[string]string) string {
6567

6668
xlog.Debug("The requested capability was not found, using default capability", "reportedCapability", reportedCapability, "capMap", capMap)
6769
// Otherwise, return the default capability (catch-all)
68-
return DefaultCapability
70+
return defaultCapability
6971
}
7072

7173
func (s *SystemState) getSystemCapabilities() string {
@@ -95,47 +97,47 @@ func (s *SystemState) getSystemCapabilities() string {
9597
// If we are on mac and arm64, we will return metal
9698
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
9799
xlog.Info("Using metal capability (arm64 on mac)", "env", capabilityEnv)
98-
return Metal
100+
return metal
99101
}
100102

101103
// If we are on mac and x86, we will return darwin-x86
102104
if runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" {
103105
xlog.Info("Using darwin-x86 capability (amd64 on mac)", "env", capabilityEnv)
104-
return DarwinX86
106+
return darwinX86
105107
}
106108

107109
// If arm64 on linux and a nvidia gpu is detected, we will return nvidia-l4t
108110
if runtime.GOOS == "linux" && runtime.GOARCH == "arm64" {
109111
if s.GPUVendor == Nvidia {
110112
xlog.Info("Using nvidia-l4t capability (arm64 on linux)", "env", capabilityEnv)
111113
if cuda13DirExists {
112-
return NvidiaL4TCuda13
114+
return nvidiaL4TCuda13
113115
}
114116
if cuda12DirExists {
115-
return NvidiaL4TCuda12
117+
return nvidiaL4TCuda12
116118
}
117-
return NvidiaL4T
119+
return nvidiaL4T
118120
}
119121
}
120122

121123
if cuda13DirExists {
122-
return NvidiaCuda13
124+
return nvidiaCuda13
123125
}
124126

125127
if cuda12DirExists {
126-
return NvidiaCuda12
128+
return nvidiaCuda12
127129
}
128130

129131
if s.GPUVendor == "" {
130132
xlog.Info("Default capability (no GPU detected)", "env", capabilityEnv)
131-
return DefaultCapability
133+
return defaultCapability
132134
}
133135

134136
xlog.Info("Capability automatically detected", "capability", s.GPUVendor, "env", capabilityEnv)
135137
// If vram is less than 4GB, let's default to CPU but warn the user that they can override that via env
136138
if s.VRAM <= 4*1024*1024*1024 {
137139
xlog.Warn("VRAM is less than 4GB, defaulting to CPU", "env", capabilityEnv)
138-
return DefaultCapability
140+
return defaultCapability
139141
}
140142

141143
return s.GPUVendor
@@ -149,17 +151,17 @@ func (s *SystemState) BackendPreferenceTokens() []string {
149151
capStr := strings.ToLower(s.getSystemCapabilities())
150152
switch {
151153
case strings.HasPrefix(capStr, Nvidia):
152-
return []string{BackendTokenCUDA, Vulkan, "cpu"}
154+
return []string{backendTokenCUDA, vulkan, "cpu"}
153155
case strings.HasPrefix(capStr, AMD):
154-
return []string{BackendTokenROCM, BackendTokenHIP, Vulkan, "cpu"}
156+
return []string{backendTokenROCM, backendTokenHIP, vulkan, "cpu"}
155157
case strings.HasPrefix(capStr, Intel):
156-
return []string{BackendTokenSYCL, Intel, "cpu"}
157-
case strings.HasPrefix(capStr, Metal):
158-
return []string{BackendTokenMetal, "cpu"}
159-
case strings.HasPrefix(capStr, DarwinX86):
158+
return []string{backendTokenSYCL, Intel, "cpu"}
159+
case strings.HasPrefix(capStr, metal):
160+
return []string{backendTokenMetal, "cpu"}
161+
case strings.HasPrefix(capStr, darwinX86):
160162
return []string{"darwin-x86", "cpu"}
161-
case strings.HasPrefix(capStr, Vulkan):
162-
return []string{Vulkan, "cpu"}
163+
case strings.HasPrefix(capStr, vulkan):
164+
return []string{vulkan, "cpu"}
163165
default:
164166
return []string{"cpu"}
165167
}
@@ -179,40 +181,40 @@ func (s *SystemState) IsBackendCompatible(name, uri string) bool {
179181
capability := s.getSystemCapabilities()
180182

181183
// Check for darwin/macOS-specific backends (mlx, metal, darwin)
182-
isDarwinBackend := strings.Contains(combined, BackendTokenDarwin) ||
183-
strings.Contains(combined, BackendTokenMLX) ||
184-
strings.Contains(combined, BackendTokenMetal)
184+
isDarwinBackend := strings.Contains(combined, backendTokenDarwin) ||
185+
strings.Contains(combined, backendTokenMLX) ||
186+
strings.Contains(combined, backendTokenMetal)
185187
if isDarwinBackend {
186188
// Darwin backends require the system to be running on darwin with metal or darwin-x86 capability
187-
return capability == Metal || capability == DarwinX86
189+
return capability == metal || capability == darwinX86
188190
}
189191

190192
// Check for NVIDIA L4T-specific backends (arm64 Linux with NVIDIA GPU)
191193
// This must be checked before the general NVIDIA check as L4T backends
192194
// may also contain "cuda" or "nvidia" in their names
193-
isL4TBackend := strings.Contains(combined, BackendTokenL4T)
195+
isL4TBackend := strings.Contains(combined, backendTokenL4T)
194196
if isL4TBackend {
195-
return strings.HasPrefix(capability, NvidiaL4T)
197+
return strings.HasPrefix(capability, nvidiaL4T)
196198
}
197199

198200
// Check for NVIDIA/CUDA-specific backends (non-L4T)
199-
isNvidiaBackend := strings.Contains(combined, BackendTokenCUDA) ||
201+
isNvidiaBackend := strings.Contains(combined, backendTokenCUDA) ||
200202
strings.Contains(combined, Nvidia)
201203
if isNvidiaBackend {
202204
// NVIDIA backends are compatible with nvidia, nvidia-cuda-12, nvidia-cuda-13, and l4t capabilities
203205
return strings.HasPrefix(capability, Nvidia)
204206
}
205207

206208
// Check for AMD/ROCm-specific backends
207-
isAMDBackend := strings.Contains(combined, BackendTokenROCM) ||
208-
strings.Contains(combined, BackendTokenHIP) ||
209+
isAMDBackend := strings.Contains(combined, backendTokenROCM) ||
210+
strings.Contains(combined, backendTokenHIP) ||
209211
strings.Contains(combined, AMD)
210212
if isAMDBackend {
211213
return capability == AMD
212214
}
213215

214216
// Check for Intel/SYCL-specific backends
215-
isIntelBackend := strings.Contains(combined, BackendTokenSYCL) ||
217+
isIntelBackend := strings.Contains(combined, backendTokenSYCL) ||
216218
strings.Contains(combined, Intel)
217219
if isIntelBackend {
218220
return capability == Intel

0 commit comments

Comments
 (0)