Skip to content

Intel iGPU (Vulkan) detected but VRAM reported as 0 GB, node never gets "inference" capability #30

Description

@carloalbertogiordano

Summary

Nodes with an Intel integrated GPU (and likely any GPU that is only reachable via Vulkan rather than CUDA/ROCm) are permanently treated as GPU-less, even though the underlying hardware is fully capable of serving inference.

Two separate gaps combine to cause this:

  1. Install script (agents.hyper.space/api/install) GPU detection only checks for nvidia-smi, rocm-smi, or macOS. There is no fallback check for a generic Vulkan-capable device, so on any Linux box with only an Intel (or non-ROCm AMD) GPU it prints No GPU detected — node will participate as relay only regardless of the actual hardware.
  2. hyperspace system-info correctly identifies the Intel GPU (vendor + model name) but always reports VRAM: 0.0 GB for it. Because the effective-VRAM computation is fed from this field, the node is placed in "Recommended Tier: 0", and the inference capability is never added to hyperspace status — even after installing/configuring Ollama with Vulkan support enabled and confirming the exact same GPU can serve models at 100% GPU offload.

So the node is stuck as CPU-only/relay-only purely because of a detection gap, not an actual hardware limitation.

Impact

Any machine whose only GPU is an Intel iGPU (Iris Xe, Arc, etc. — a very common configuration on modern laptops) is silently excluded from:

  • The Inference network capability (+10% weight, per the README's capability table) and its associated points.
  • Local model sharding (hyperspace pod shard), since pod resources/sharding math is driven by the same VRAM figure.

This likely affects a large fraction of laptop nodes on the network, not just this one machine.

Steps to Reproduce

  1. On a Linux machine with only an Intel integrated GPU (no NVIDIA/AMD), run the standard installer:

    curl -fsSL https://agents.hyper.space/api/install | bash

    Output includes:

    warn "No GPU detected — node will participate as relay only"
    

    (install script only branches on command -v nvidia-smi, command -v rocm-smi, or $OS == darwin).

  2. hyperspace status afterward shows capabilities without inference:

    Capabilities: embedding, storage, memory, relay, validation, orchestration, caching, proxy, crawl, index, search, rank, matrix
    
  3. Confirm the GPU is in fact Vulkan-capable and can fully serve inference:

    vulkaninfo --summary
    # → Intel(R) Iris(R) Xe Graphics (RPL-P) (Mesa driver), Vulkan 1.4

    Install/update Ollama (≥0.31) and enable its (experimental) Vulkan + iGPU flags via a systemd drop-in:

    # /etc/systemd/system/ollama.service.d/override.conf
    [Service]
    Environment="OLLAMA_VULKAN=1"
    Environment="OLLAMA_IGPU_ENABLE=1"
    sudo systemctl daemon-reload && sudo systemctl restart ollama
    ollama pull smollm2:135m
    ollama run smollm2:135m "Say hello in one short sentence."
    ollama ps
    # NAME            ... PROCESSOR    ...
    # smollm2:135m    ... 100% GPU     ...

    Ollama's own log confirms the device and correct memory figures:

    level=INFO msg="inference compute" id=0 library=Vulkan compute=0.0 name=Vulkan0 \
      description="Intel(R) Iris(R) Xe Graphics (RPL-P)" type=iGPU total="23.3 GiB" available="18.7 GiB"
    
  4. Restart the hyperspace daemon so it re-detects Ollama and its models — hyperspace status now lists the Ollama models (ollama:smollm2:135m, ollama:llama3.2:latest) under "Models", proving the daemon does see Ollama. But capabilities still do not include inference, and the startup log still prints:

    [SYSTEM] Started — coordinator=false, gpu=false, model=Qwen/Qwen2.5-0.5B-Instruct, aggregator=false, checkpoint=false
    

    (note also the unsubstituted %s placeholders in this log line — looks like a format-string bug independent of the GPU issue).

  5. Run hyperspace system-info directly — this is where the actual bug is visible:

    ┌─ GPU ────────────────────────────────┐
    │ GPU 0:      Intel(R) Iris(R) Xe Graphics (RPL-P)
    │   VRAM:     0.0 GB
    │   Vendor:   intel
    ├─ Allocation ─────────────────────────┤
    │ Effective VRAM: 0.0 GB
    │ Recommended Tier: 0 (0 GB)
    └──────────────────────────────────────┘
    

    Vendor and model name are detected correctly — only the VRAM figure is wrong.

Environment

  • OS: Fedora Linux, kernel 7.0.11-200.fc44.x86_64
  • CPU: 13th Gen Intel(R) Core(TM) i7-1360P (Raptor Lake-P)
  • GPU: Intel(R) Iris(R) Xe Graphics (RPL-P), Mesa driver, Vulkan 1.4.341
  • Hyperspace CLI: v2 (5.85.32)
  • Bundled inference engine reported by daemon: prism-b9605-linux-x64-source
  • Ollama: updated to v0.31.1 specifically to get Vulkan support

Additional Context

  • Secondary finding, same root cause family: ~/.hyperspace/bin/prism/llama-server is compiled without any GPU backend at all (empty --list-devices, no vulkan/cuda strings in its libs), unlike upstream ggml-org/llama.cpp releases which already ship llama-b8148-bin-ubuntu-vulkan-x64.tar.gz. Dropping that vanilla Vulkan build + libs in place of prism/llama-server (same CLI surface — looks like the same/compatible source tree) fully offloaded a test model to Vulkan0: Intel(R) Iris(R) Xe Graphics (31/31 layers) and served /v1/chat/completions correctly. Not the actual gate on the inference capability, but means prism itself would need a Vulkan-enabled build to work standalone without Ollama.
  • Suggested fix: when GPU vendor isn't NVIDIA/AMD, fall back to reading VRAM/available-memory from Ollama's own correctly-reported Vulkan figures, or query Vulkan heap size directly, instead of defaulting to 0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions