diff --git a/discover/gpu.go b/discover/gpu.go index ba67c7b55..15d0b99a4 100644 --- a/discover/gpu.go +++ b/discover/gpu.go @@ -455,7 +455,7 @@ func GetGPUInfo() GpuInfoList { bootstrapErrors = append(bootstrapErrors, err) } bootstrapped = true - if len(cudaGPUs) == 0 && len(rocmGPUs) == 0 && len(oneapiGPUs) == 0 { + if len(cudaGPUs) == 0 && len(rocmGPUs) == 0 && len(oneapiGPUs) == 0 && len(vulkanGPUs) == 0 { slog.Info("no compatible GPUs were discovered") } diff --git a/discover/gpu_linux.go b/discover/gpu_linux.go index 840ea435a..a2c1d8715 100644 --- a/discover/gpu_linux.go +++ b/discover/gpu_linux.go @@ -58,11 +58,13 @@ var ( var VulkanGlobs = []string{ "/usr/lib/x86_64-linux-gnu/libvulkan.so*", + "/usr/lib/aarch64-linux-gnu/libvulkan.so*", "/usr/lib*/libvulkan.so*", } var capLinuxGlobs = []string{ "/usr/lib/x86_64-linux-gnu/libcap.so*", + "/usr/lib/aarch64-linux-gnu/libvulkan.so*", "/usr/lib*/libcap.so*", } diff --git a/envconfig/config.go b/envconfig/config.go index c10095a64..831a3a730 100644 --- a/envconfig/config.go +++ b/envconfig/config.go @@ -179,6 +179,7 @@ var ( CudaVisibleDevices = String("CUDA_VISIBLE_DEVICES") HipVisibleDevices = String("HIP_VISIBLE_DEVICES") RocrVisibleDevices = String("ROCR_VISIBLE_DEVICES") + VkVisibleDevices = String("GGML_VK_VISIBLE_DEVICES") GpuDeviceOrdinal = String("GPU_DEVICE_ORDINAL") HsaOverrideGfxVersion = String("HSA_OVERRIDE_GFX_VERSION") ) @@ -268,6 +269,7 @@ func AsMap() map[string]EnvVar { ret["CUDA_VISIBLE_DEVICES"] = EnvVar{"CUDA_VISIBLE_DEVICES", CudaVisibleDevices(), "Set which NVIDIA devices are visible"} ret["HIP_VISIBLE_DEVICES"] = EnvVar{"HIP_VISIBLE_DEVICES", HipVisibleDevices(), "Set which AMD devices are visible by numeric ID"} ret["ROCR_VISIBLE_DEVICES"] = EnvVar{"ROCR_VISIBLE_DEVICES", RocrVisibleDevices(), "Set which AMD devices are visible by UUID or numeric ID"} + ret["GGML_VK_VISIBLE_DEVICES"] = EnvVar{"GGML_VK_VISIBLE_DEVICES", VkVisibleDevices(), "Set which VK AMD devices are visible by numeric ID"} ret["GPU_DEVICE_ORDINAL"] = EnvVar{"GPU_DEVICE_ORDINAL", GpuDeviceOrdinal(), "Set which AMD devices are visible by numeric ID"} ret["HSA_OVERRIDE_GFX_VERSION"] = EnvVar{"HSA_OVERRIDE_GFX_VERSION", HsaOverrideGfxVersion(), "Override the gfx used for all detected AMD GPUs"} ret["OLLAMA_INTEL_GPU"] = EnvVar{"OLLAMA_INTEL_GPU", IntelGPU(), "Enable experimental Intel GPU detection"}