Goal
Make candle a backend capable of running vLLM workloads end-to-end, starting with an NPU-first target (Ascend / HCCL / ACLNN).
Near-term MVP target:
- single-node
- text generation
- TP=1 first
- no quantization initially
Longer-term target:
- tensor parallel
- graph capture
- quantization
- serving-grade throughput
Current State
| Capability |
Status |
Notes |
| NPU backend (ACLNN) |
β
Strong |
Mature op coverage, allocator, streams |
NPU graph capture (NPUGraph) |
β
Exists |
Needs vLLM-style validation |
| HCCL distributed collectives |
β
Strong |
all_reduce / all_gather / reduce_scatter / all_to_all |
| CUDA backend |
β Skeletal |
Not viable for vLLM today |
| NCCL backend |
β Missing |
CUDA TP path blocked |
| torch.compile |
β οΈ No-op stub |
No real graph/compile backend |
| torch.library / custom_op |
β
Exists |
Useful for custom kernel registration |
| torch.ops namespace |
β Stub only |
load_library() no-op |
| SDPA / fused attention |
β οΈ Composite only |
No paged attention / flash attention |
| Meta/Fake tensors |
β Missing |
Needed for shape-only init/tracing |
| Quantization |
β Missing |
No GPTQ/AWQ/FP8/INT8 kernels |
Tensor-level record_stream() |
β Missing |
Allocator-level only |
Key Blockers
- No PagedAttention / fused decode attention kernel
torch.ops namespace is stubbed
- No meta/fake tensor support
- No real
torch.compile / graph lowering story
- No quantized kernel path
- CUDA backend is not a practical target yet
Given current candle strengths, vLLM-on-NPU is realistic; vLLM-on-CUDA is not a near-term goal.
Sub-Issues
Phase 1: API Compatibility Foundation (Target: July 2026)
Phase 2: Core Serving Kernels (Target: September 2026)
Phase 3: Runtime Integration (Target: November 2026)
Phase 4: Full Serving Feature Set (Stretch β Q1 2027)
Cross-Roadmap Duplicates
| Capability |
vLLM |
HF |
Megatron |
Notes |
| Meta device |
#237 |
#223 |
β |
Resolving one closes both |
| Library() 3-arg |
#235 |
#226 |
β |
Resolving one closes both |
| _dynamo / compiler stubs |
#239 |
#225 |
β |
Partial overlap; coordinate work |
Milestones / DDL
- API compatibility base: 2026-07-31
- NPU serving MVP (single model, TP=1, no quant): 2026-09-30
- NPU production-oriented integration (graphs + TP validation + E2E tests): 2026-11-30
- Full-feature serving stretch goal: 2027-03-31
Success Criteria
import vllm-style initialization paths no longer fail on missing PyTorch APIs
- Candle can execute prefill + decode for at least one small causal LM on NPU
NPUGraph replay is validated on decode workloads
- HCCL-backed TP primitives are validated for serving use cases
- Throughput gap vs torch_npu baseline is understood and benchmarked
Goal
Make candle a backend capable of running vLLM workloads end-to-end, starting with an NPU-first target (Ascend / HCCL / ACLNN).
Near-term MVP target:
Longer-term target:
Current State
NPUGraph)load_library()no-oprecord_stream()Key Blockers
torch.opsnamespace is stubbedtorch.compile/ graph lowering storyGiven current candle strengths, vLLM-on-NPU is realistic; vLLM-on-CUDA is not a near-term goal.
Sub-Issues
Phase 1: API Compatibility Foundation (Target: July 2026)
Library()3-arg constructortorch.opsnamespaceTensor.record_stream(stream)torch.compile(..., backend="eager")a valid no-opPhase 2: Core Serving Kernels (Target: September 2026)
npu_fusion_attentioncompatibility wrapperNPUGraphfor decode replayPhase 3: Runtime Integration (Target: November 2026)
Phase 4: Full Serving Feature Set (Stretch β Q1 2027)
Cross-Roadmap Duplicates
Milestones / DDL
Success Criteria
import vllm-style initialization paths no longer fail on missing PyTorch APIsNPUGraphreplay is validated on decode workloads