Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 112 additions & 1 deletion EXPERIMENTS.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions bench/xhost/results/2026-10-21/H7x-smokes/smoke7/chain.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
== H7x-smoke7 waiting for the lock 2026-11-01T14:31:13Z
== H7x-smoke7 lock taken 2026-11-01T14:31:13Z
== H7x-smoke7 start: env H7X_SMOKE=1 H7X_ORDER=B C H7X_READY_S=1800 H7X_VLLM_MEM=fit K3D_GPU_IMAGE=cryptoandcoffee/k3d-gpu:0.1.61 K3D_GPU_VENDORS=none K3D_GPU_K3S_ARGS=--kubelet-arg=eviction-hard=memory.available<100Mi,nodefs.available<1%,imagefs.available<1%,nodefs.inodesFree<1% K3D_GPU_CLUSTER=k3dgpu-x-h7 H7X_CPUS=16 H7X_NODE_CPUS=0-7,48-55 APB_MODELS=/home/devcloud/k3dgpu-xhost/models APB_EAT_CHART=/home/devcloud/k3dgpu-xhost/eat-src/core/helm-charts/vllm APB_OUT=/home/devcloud/k3dgpu-xhost/runs/H7x-smoke7 bash /home/devcloud/k3dgpu-xhost/k3d-gpu-h7x/bench/apb/h7x.sh 2026-11-01T14:31:13Z
== H7x-smoke7 rc=0; clusters deleted: none; now: 2026-11-01T14:36:33Z
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
==> agent: OpenVINO/Qwen3-4B-fp16-ov as 'Qwen3-4B-fp16-ov' on CPU, 16 CPU(s)
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
apiVersion: v1
kind: Namespace
metadata:
name: k3d-gpu-agent
---
# Models and the compiled-model cache live here, so restarts never re-download.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ovms-models
namespace: k3d-gpu-agent
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ovms
namespace: k3d-gpu-agent
labels:
app: ovms
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: ovms
template:
metadata:
labels:
app: ovms
annotations:
k3d-gpu.io/agent-device: CPU
spec:
securityContext:
runAsUser: 5000
runAsGroup: 5000
fsGroup: 5000
initContainers:
# --pull downloads the model once and writes its graph.pbtxt (device,
# parsers). On later starts the files are already there and only the
# graph is rewritten, so a device change takes effect with no download.
- name: pull
image: openvino/model_server:2026.4.1-gpu@sha256:a928903fe429f1e3e27107cc45932d30d95febfd2d1159dc50869c3eac76fc58
imagePullPolicy: IfNotPresent
args:
- --pull
- --source_model=OpenVINO/Qwen3-4B-fp16-ov
- --model_repository_path=/models
- --model_name=Qwen3-4B-fp16-ov
- --task=text_generation
- --target_device=CPU
- --tool_parser=hermes3
- --reasoning_parser=qwen3
volumeMounts:
- name: models
mountPath: /models
containers:
- name: ovms
image: openvino/model_server:2026.4.1-gpu@sha256:a928903fe429f1e3e27107cc45932d30d95febfd2d1159dc50869c3eac76fc58
imagePullPolicy: IfNotPresent
args:
- --rest_port=8000
- --model_path=/models/OpenVINO/Qwen3-4B-fp16-ov
- --model_name=Qwen3-4B-fp16-ov
- --cache_dir=/models/.ov_cache
- --log_level=INFO
ports:
- name: http
containerPort: 8000
# No liveness probe: compiling a model for a GPU takes minutes.
readinessProbe:
httpGet:
path: /v2/health/ready
port: http
periodSeconds: 5
resources:
requests:
cpu: "16"
memory: 6Gi
volumeMounts:
- name: models
mountPath: /models
volumes:
- name: models
persistentVolumeClaim:
claimName: ovms-models
---
apiVersion: v1
kind: Service
metadata:
name: ovms
namespace: k3d-gpu-agent
spec:
selector:
app: ovms
ports:
- name: http
port: 8000
targetPort: http
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
xeon-values.yaml: OK
values.yaml: OK
templates/deployment.yaml: OK
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
05c1e55b0864e6b576cc84e7ba330f45021f855e84f677f4e68add24d15a4da0 xeon-values.yaml
636ff3968e4983cdd9cfbb9372220674921a4c725483a7744527842370e9182e values.yaml
93ef991af65dc4f448b504b9934131ee9acb59135962bab6103faf35ab1a226d templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
99789454a376979294f151a44129ac140bde4952
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
B Cpus_allowed_list: 0-7,48-55
C Cpus_allowed_list: 0-7,48-55
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
---
# Source: vllm/templates/secret.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
apiVersion: v1
kind: Secret
metadata:
name: vllm-qwen-3-4b-cpu-secret
labels:
app:
helm.sh/chart: vllm-0-latest
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
app.kubernetes.io/version: "0.5"
app.kubernetes.io/managed-by: Helm
type: Opaque
data:
---
# Source: vllm/templates/configmap.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
apiVersion: v1
kind: ConfigMap
metadata:
name: vllm-qwen-3-4b-cpu-config
labels:
helm.sh/chart: vllm-0-latest
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
app.kubernetes.io/version: "0.5"
app.kubernetes.io/managed-by: Helm
data:
http_proxy: ""
https_proxy: ""
no_proxy: ""
TORCHINDUCTOR_CACHE_DIR: "/tmp"
NUMBA_CACHE_DIR: "/tmp"
HF_HOME: "/data"
OUTLINES_CACHE_DIR: "/tmp/.cache/outlines"
VLLM_NO_USAGE_STATS: "1"
DO_NOT_TRACK: "1"
HF_HUB_DISABLE_XET: "1"
TORCH_INDUCTOR_CACHE_DIR: "/tmp/torchinductor_cache"
TRITON_CACHE_DIR: "/tmp/.triton"
USER: "vllm"
VLLM_ALLOW_LONG_MAX_MODEL_LEN: "1"
VLLM_CPU_KVCACHE_SPACE: "6"
VLLM_CPU_NUM_OF_RESERVED_CPU: "0"
VLLM_CPU_SGL_KERNEL: "1"
VLLM_ENGINE_ITERATION_TIMEOUT_S: "120"
VLLM_RPC_TIMEOUT: "100000"
---
# Source: vllm/templates/pvc.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vllm-qwen-3-4b-cpu-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 250Gi # Adjust this according to model storage size
---
# Source: vllm/templates/service.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

apiVersion: v1
kind: Service
metadata:
name: vllm-qwen-3-4b-cpu-service
labels:
helm.sh/chart: vllm-0-latest
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
app.kubernetes.io/version: "0.5"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 2080
protocol: TCP
name: vllm
selector:
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
---
# Source: vllm/templates/deployment.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1
kind: Deployment
metadata:
name: vllm-qwen-3-4b-cpu
labels:
helm.sh/chart: vllm-0-latest
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
app.kubernetes.io/version: "0.5"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
template:
metadata:
annotations:
balloon.balloons.resource-policy.nri.io: "performance"
labels:
app.kubernetes.io/name: vllm
app.kubernetes.io/instance: vllm-qwen-3-4b-cpu
name: vllm
spec:
#
# serviceAccountName: default
securityContext:
fsGroup: 1001
containers:
- name: vllm
envFrom:
- configMapRef:
name: vllm-qwen-3-4b-cpu-config
- secretRef:
name: vllm-qwen-3-4b-cpu-secret
securityContext:
allowPrivilegeEscalation: false
capabilities:
add:
- SYS_NICE
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1001
seccompProfile:
type: RuntimeDefault
image: "vllm/vllm-openai-cpu:v0.28.0@sha256:197354e6475e638eb5ccca09beb078488046a82de0e204e7429bf1a804df9647"
imagePullPolicy: IfNotPresent
# command:
# - /bin/bash
# - -c
# - |
# python3 -m vllm.entrypoints.openai.api_server --dtype bfloat16 --model Qwen/Qwen3-4B --port 2080 --tensor-parallel-size 1 --block-size 128 --max-model-len 8192 --disable-log-requests
args:
- "--block-size"
- "128"
- "--dtype"
- "bfloat16"
- "--distributed_executor_backend"
- "mp"
- "--enable_chunked_prefill"
- "--enforce-eager"
- "--max-num-batched-tokens"
- "2048"
- "--max-num-seqs"
- "256"
- "--enable-prefix-caching"
# CPU deployment - add parallelism settings
- "--tensor-parallel-size"
- "1"
- "--pipeline-parallel-size"
- "1"
- "--model"
- "Qwen/Qwen3-4B"
- --served-model-name
- "Qwen/Qwen3-4B"
- "--port"
- "2080"
volumeMounts:
- mountPath: /data
name: model-volume
- mountPath: /dev/shm
name: shm
- mountPath: /tmp
name: tmp
- mountPath: /root/.cache/vllm
name: vllm-cache
ports:
- name: http
containerPort: 2080
protocol: TCP
readinessProbe:
failureThreshold: 98
httpGet:
path: /health
port: http
initialDelaySeconds: 120
periodSeconds: 30
resources:
requests:
cpu: "16"
memory: "22Gi"
limits:
cpu: "16"
memory: "22Gi"

volumes:
- name: model-volume
persistentVolumeClaim:
claimName: vllm-qwen-3-4b-cpu-pvc
- name: shm
emptyDir:
medium: Memory
sizeLimit: 1Gi
- name: tmp
emptyDir: {}
- name: vllm-cache
emptyDir: {}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: ei-inference-eligible
operator: In
values:
- "true"
# extra time to finish processing buffered requests on CPU before pod is forcibly terminated
terminationGracePeriodSeconds: 120
---
# Source: vllm/templates/apisixroutes.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
---
# Source: vllm/templates/chat-template-configmap.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
---
# Source: vllm/templates/ingress.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
---
# Source: vllm/templates/ingress_eks.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
---
# Source: vllm/templates/route.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
---
# Source: vllm/templates/servicemonitor.yaml
# Copyright (C) 2025-2026 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
Loading
Loading