# Images are GPU-neutral: nothing in the build depends on the card, so one build # serves every profile. Per-GPU settings are runtime only (group_add, RADV_PERFTEST). services: vulkan-smoke: image: frigate-vulkan/vulkan-smoke:bookworm build: context: . dockerfile: docker/Dockerfile target: vulkan-smoke args: NCNN_TAG: ${NCNN_TAG} SMOKE_BASE: ${SMOKE_BASE:-debian:bookworm} environment: PROFILE_NAME: ${PROFILE_NAME} NCNN_FP16: ${NCNN_FP16:-0} BENCH_ITERS: ${BENCH_ITERS:-50} # Must match the Frigate service or the gate tests a different queue mapping. RADV_PERFTEST: ${RADV_PERFTEST:-} devices: - /dev/dri group_add: - ${VIDEO_GID:-44} - ${RENDER_GID:-109} volumes: - ./models:/models:ro # Same harness on a newer RADV. Bookworm ships Mesa 22.3.6 (Dec 2022), which # is the userspace under which Vega 20 hung the gfx ring; Trixie ships 25.0.7, # matching the host. Separate image tag so both can be soaked back to back. vulkan-smoke-trixie: image: frigate-vulkan/vulkan-smoke:trixie build: context: . dockerfile: docker/Dockerfile target: vulkan-smoke args: NCNN_TAG: ${NCNN_TAG} SMOKE_BASE: debian:trixie environment: PROFILE_NAME: ${PROFILE_NAME} NCNN_FP16: ${NCNN_FP16:-0} BENCH_ITERS: ${BENCH_ITERS:-50} # Must match the Frigate service or the gate tests a different queue mapping. RADV_PERFTEST: ${RADV_PERFTEST:-} devices: - /dev/dri group_add: - ${VIDEO_GID:-44} - ${RENDER_GID:-109} volumes: - ./models:/models:ro frigate-vulkan: image: ${FRIGATE_VULKAN_IMAGE:-cvandesande/frigate-vulkan:latest} build: context: . dockerfile: docker/Dockerfile target: frigate-vulkan args: NCNN_TAG: ${NCNN_TAG} FRIGATE_IMAGE: ${FRIGATE_IMAGE:-ghcr.io/blakeblackshear/frigate:0.17.2} environment: PROFILE_NAME: ${PROFILE_NAME} # Moves ncnn's weight upload off the gfx ring; see profiles/gfx906-vulkan.env. RADV_PERFTEST: ${RADV_PERFTEST:-} devices: - /dev/dri group_add: - ${VIDEO_GID:-44} - ${RENDER_GID:-109} volumes: - ./config:/config - ./models:/models