ollama: activa el backend Vulkan y declara el paso de la iGPU
La GPU nunca se usaba: ollama/ollama:0.20.7 no trae ROCm, asi que HSA_OVERRIDE_GFX_VERSION/HIP_VISIBLE_DEVICES eran inertes. La imagen si trae el backend Vulkan y el driver RADV, que cubre las iGPU AMD. De paso se declara la deriva: todo el paso de dispositivos vivia solo en el objeto del cluster, no en git, y sobrevivia por el merge de tres vias. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+67
-1
@@ -1,3 +1,16 @@
|
||||
# Ollama en chemavx-k8, bajo ArgoCD (selfHeal).
|
||||
#
|
||||
# 2026-07-22 — DERIVA CORREGIDA. Todo el paso de la iGPU (los 3 hostPath de
|
||||
# /dev/dri, /dev/kfd y /sys/devices/virtual/kfd, sus montajes, los grupos
|
||||
# suplementarios 44/109, el securityContext y las 4 variables AMD) estaba puesto
|
||||
# A MANO en el objeto vivo y NO en este fichero. Sobrevivía sólo por el merge de
|
||||
# tres vías: `kubectl diff` no lo borraba porque no figura en la
|
||||
# last-applied-configuration, y ArgoCD lo daba por Synced. Cualquier
|
||||
# reconstrucción desde git se lo habría llevado en silencio. Ahora está
|
||||
# declarado: lo que se lee aquí es lo que hay.
|
||||
#
|
||||
# Y el motivo de que la GPU no se usara: la imagen no trae ROCm (ver el
|
||||
# comentario del bloque env). Se activa el backend Vulkan, que sí viene dentro.
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
@@ -55,7 +68,7 @@ spec:
|
||||
until ollama list >/dev/null 2>&1; do
|
||||
sleep 2
|
||||
done
|
||||
echo "Pulling llama3.1:8b..."
|
||||
echo "Pulling qwen2.5:3b..."
|
||||
ollama pull qwen2.5:3b
|
||||
echo "Model ready."
|
||||
wait $SERVE_PID
|
||||
@@ -66,19 +79,54 @@ spec:
|
||||
env:
|
||||
- name: OLLAMA_MODELS
|
||||
value: /root/.ollama/models
|
||||
# El default (131072) reventaba la iGPU con un KV cache enorme.
|
||||
- name: OLLAMA_NUM_CTX
|
||||
value: "8192"
|
||||
- name: OLLAMA_KEEP_ALIVE
|
||||
value: "-1"
|
||||
- name: OLLAMA_METRICS
|
||||
value: "1"
|
||||
# --- aceleración por la iGPU (Radeon 780M, Hawk Point) ---
|
||||
# Estas tres son de ROCm y HOY NO HACEN NADA: la imagen
|
||||
# ollama/ollama:0.20.7 no trae ROCm (en /usr/lib/ollama sólo hay
|
||||
# cuda_v12, cuda_v13, mlx_cuda_v13, vulkan y los backends de CPU;
|
||||
# no existe rocBLAS ni hipBLAS). El soporte AMD va en la etiqueta
|
||||
# aparte con sufijo -rocm. Se dejan porque describen la intención y
|
||||
# porque volverían a servir si algún día se pasa a esa imagen.
|
||||
- name: HSA_OVERRIDE_GFX_VERSION
|
||||
value: "11.0.0" # la gfx1103 de la 780M no está soportada; se hace pasar por gfx1100
|
||||
- name: HIP_VISIBLE_DEVICES
|
||||
value: "0"
|
||||
- name: OLLAMA_GPU
|
||||
value: "1"
|
||||
# El camino que SÍ funciona con esta imagen: backend Vulkan
|
||||
# (experimental desde ollama 0.12.6, pensado para iGPUs AMD/Intel
|
||||
# donde ROCm no llega). La imagen ya trae libggml-vulkan.so y el
|
||||
# driver Mesa RADV (radeon_icd.json), así que no hace falta cambiarla.
|
||||
- name: OLLAMA_VULKAN
|
||||
value: "1"
|
||||
resources:
|
||||
requests:
|
||||
memory: 4Gi
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: 8Gi
|
||||
securityContext:
|
||||
privileged: false
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
add: ["SYS_PTRACE"]
|
||||
volumeMounts:
|
||||
- name: ollama-data
|
||||
mountPath: /root/.ollama
|
||||
# Paso de la iGPU sin privileged: los dispositivos del kernel amdgpu.
|
||||
- name: dev-dri
|
||||
mountPath: /dev/dri
|
||||
- name: dev-kfd
|
||||
mountPath: /dev/kfd
|
||||
- name: sys-kfd
|
||||
mountPath: /sys/devices/virtual/kfd
|
||||
readOnly: true
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /api/tags
|
||||
@@ -93,10 +141,28 @@ spec:
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
failureThreshold: 15
|
||||
# 44=video, 109=render en chemavx-k8. Sin estos grupos el proceso no
|
||||
# puede abrir /dev/kfd ni renderD128 aunque estén montados.
|
||||
securityContext:
|
||||
supplementalGroups: [44, 109]
|
||||
seccompProfile:
|
||||
type: Unconfined
|
||||
volumes:
|
||||
- name: ollama-data
|
||||
persistentVolumeClaim:
|
||||
claimName: ollama-models
|
||||
- name: dev-dri
|
||||
hostPath:
|
||||
path: /dev/dri
|
||||
type: Directory
|
||||
- name: dev-kfd
|
||||
hostPath:
|
||||
path: /dev/kfd
|
||||
type: CharDevice
|
||||
- name: sys-kfd
|
||||
hostPath:
|
||||
path: /sys/devices/virtual/kfd
|
||||
type: Directory
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
|
||||
Reference in New Issue
Block a user