Skip to content

[CLI] Catalog returns zero non-CPU (GPU/NPU) model variants on Snapdragon X Elite despite both being detected and EPs loading successfully #882

Description

@steamedeo

Problem

On a Snapdragon X Elite (X1E80100) laptop running Windows 11, foundry model list and foundry model list --variants show 43 available variants — all 43 are CPU-only. Zero GPU or NPU variants appear anywhere in the catalog, despite:

  • foundry status correctly detecting both the Adreno X1-85 GPU and the Hexagon NPU.
  • foundry status printing a GPU-specific warning ("Qualcomm Adreno GPU detected. If acceleration fails, try a CPU model variant or update the GPU driver.") — implying GPU variants are expected to be attempted, yet none exist in the catalog to attempt.
  • foundry server start explicitly downloading and reporting success for QNNExecutionProvider.
  • Attempting to run a known NPU model ID directly (foundry run phi-3.5-mini-instruct-qnn-npu) fails with "No model matching 'phi-3.5-mini-instruct-qnn-npu' was found in the catalog" — confirming the entries are absent from the catalog response itself, not just hidden from the default table view.

Ruled out: eastus regional throttling (#757)

Since foundry config has no exposed key for ModelRegistryRegion (only port, cache-directory, idle-timeout-minutes, log-level), I tested this directly via the Python SDK, pinning the region explicitly and running each test in a fresh process to avoid the FoundryLocalManager singleton carrying over the first config:

config = Configuration(
    app_name=f"probe_{region}",
    additional_settings={"ModelRegistryRegion": region},
    log_level="Warning",
)
FoundryLocalManager.initialize(config)
models = FoundryLocalManager.instance.catalog.list_models()

Results across 5 regions (NPU check):

Region Total models NPU-tagged GPU-tagged
westeurope 43 0
westus2 43 0
northeurope 43 0
eastus2 43 0
southeastasia 43 0
eastus (default) 43 0 0

Every region returns an identical count with zero non-CPU entries. This rules out eastus throttling as the cause — results are identical regardless of region, and the CPU-only pattern is consistent across the board, not a partial/intermittent fetch failure.

Environment

  • CLI version: 0.10.2
  • Hardware: Snapdragon(R) X Elite - X1E80100, Qualcomm(R) Hexagon(TM) NPU, Qualcomm(R) Adreno(TM) X1-85 GPU
  • OS: Windows 11 (reports as build 10.0.26200)
  • RAM: 15.6 GB total
  • QNNExecutionProvider: downloads and registers successfully on foundry server start

Ask

  1. Is this catalog snapshot genuinely missing all non-CPU variants for Snapdragon X Elite hardware right now, or is there a hardware-profile-matching bug preventing GPU/NPU entries from being returned even though they exist server-side?
  2. Is there a catalog endpoint/flag (beyond ModelRegistryRegion) relevant to hardware-profile matching that might need adjusting?
  3. Could foundry config eventually expose ModelRegistryRegion for CLI-only users, since the SDK is currently the only way to attempt this workaround at all?

Happy to provide foundry report output or further diagnostics if useful.

Diagnostics

System

  • OS: Microsoft Windows 10.0.26200
  • Architecture: Arm64
  • CPU: Snapdragon(R) X 12-core X1E80100 @ 3.40 GHz (12 logical cores)
  • GPU: Qualcomm Incorporated Qualcomm(R) Adreno(TM) X1-85 GPU (—)
  • NPU: Qualcomm Technologies, Inc. Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Hexagon(TM) NPU
  • RAM: 7.5 GB available / 15.6 GB total
  • Disk: 707.8 GB free / 952.6 GB total (C:)
  • .NET: .NET 9.0.18

Service

Models

  • Available variants: 43
  • Loaded: 0
  • Cached: 0

Connectivity

  • Local service: Reachable
  • Model registry: Reachable

Warnings

  • Qualcomm Adreno GPU detected. If acceleration fails, try a CPU model variant or update the GPU driver.

Metadata

Metadata

Assignees

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