Skip to content

Diagnose NVIDIA L4 desktop WebGPU initialization crashes before enabling consumer GPU #47

Description

@leehack

Reproduced native desktop GPU crash

Downstream qualification for leehack/llamadart#506 bypassed the Dart platform gate using the low-level runtime client. Published v0.17.0-3 selects real NVIDIA L4 hardware, then crashes while initializing its WebGPU delegate. Removing the consumer gate is not safe yet.

Inputs and results

  • Qwen3 0.6B: litert-community/Qwen3-0.6B, revision 8414150f2e9dcc82449bcc9c5abc404b399a4d06, SHA256 555579ff2f4fd13379abe69c1c3ab5200f7338bc92471557f1d6614a6e5ab0b4.
  • Context 2048, GPU, speculative decoding disabled. Failure happens during litert_lm_engine_create, before conversation/template creation.
  • Ubuntu 24.04 x64, GCP g2-standard-4/L4, NVIDIA 580.173.02: Vulkan identifies a discrete NVIDIA L4. Native libLiteRtWebGpuAccelerator.so segfaults. Qwen3.5 0.8B int8 also segfaults on this setup.
  • Windows Server 2022 x64, GCP g2-standard-4/L4: native logs identify NVIDIA L4 ... backend=Direct3D 12, adapterType=Discrete GPU. DXC v1.9.2607 dxcompiler.dll and dxil.dll staged beside runtime DLLs. Access violation inside libLiteRtWebGpuAccelerator.dll+0x6e08b1.
  • Direct Windows C API reproduction through C# P/Invoke, without Dart, also terminates with 0xC0000005 during engine creation. Thus the crash is not caused by Dart chat parsing or its GPU platform gate.
  • Matched Windows v0.16.0-native.2 runtime, same Qwen3/model/settings/hardware and DXC dependencies: also selects L4/D3D12 and crashes during GPU initialization. Do not classify this as a new v0.17 regression. No old-runtime Linux GPU comparison was run.
  • CPU chat works on Linux/Windows with downstream template correction PR507. macOS arm64 Metal and Pixel Vulkan evidence are separate and do not establish desktop x64 GPU support.

Linux setup pitfall

The accelerated image initially contained compute drivers only. Install matching libnvidia-gl-580-server and libnvidia-common-580-server plus libegl1; verify vulkaninfo --summary identifies NVIDIA. Prior software llvmpipe crashes were excluded from hardware conclusions. The hardware-only run used VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json.

Acceptance

Identify the failing native/prebuilt delegate contract using a direct C API reproducer. Qualify a corrected artifact on real Linux Vulkan and Windows D3D12 hardware, with backend identity, generation/streaming/cancellation/disposal, and negative dependency/driver coverage. Then coordinate downstream gate changes in #506. Do not enable desktop GPU based on library registration or silently use a software/CPU adapter.

Temporary VMs were bounded to two hours; evidence was retrieved before deletion.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:P1Act next: current correctness, contract, or repository-integrity risk

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions