Skip to content

[NPU Roadmap] NPU support for Liger-Kernel #969

@zheliuyu

Description

@zheliuyu

Thanks very much to Liger-Kernel for accepting our first native support pr.
This roadmap details the future plans for NPU native support. Welcome to join in the discussion.

NPU Native Support

Unit Test Coverage Improvement: Functionality & Precision

  • chunked_loss
  • convergence
  • transformers
    • test_auto_model.py PASSED: 100%
    • test_cross_entropy.py PASSED: 6%
    • test_dyt.py PASSED: 96%
    • test_embedding.py PASSED: 0%
    • test_flex_attention.py PASSED: 0%
    • test_fused_add_rms_norm.py PASSED: 0%
    • test_fused_linear_cross_entropy.py PASSED: 86%
    • test_fused_linear_jsd.py PASSED: 66%
    • test_fused_neighborhood_attention.py PASSED: 96%
    • test_geglu.py PASSED: 100%
    • test_group_norm.py PASSED: 0%
    • test_grpo_loss.py PASSED: 85%
    • test_jsd.py PASSED: 49%
    • test_kl_div.py PASSED: 49%
    • test_layer_norm.py PASSED: 0%
    • test_mm_int8int2.py PASSED: 0%
    • test_monkey_patch.py PASSED: 100%
    • test_multi_token_attention.py PASSED: 97%
    • test_poly_norm.py PASSED: 23%
    • test_qwen2vl_mrope.py PASSED: 0%
    • test_rms_norm.py PASSED: 0%
    • test_rope.py PASSED: 77%
    • test_softmax.py PASSED: 100%
    • test_sparsemax.py PASSED: 100%
    • test_swiglu.py PASSED: 100%
    • test_tiled_mlp.py PASSED: 75%
    • test_transformers.py PASSED: 100%
    • test_tvd.py PASSED: 18%
  • triton

Performance Enhancement For High-Frequency APIs

Unit tests can be used to APIs functionality and precision. However, as third-party devices may not fully align in their usage patterns of Triton, a performance optimization process is required.

We selected three training software with varying dependencies on Liger-Kernel APIs. We will subsequently measure the actual performance of these APIs and may initiate pull requests to provide native support.

Software Utils APIs Status
VeOmni liger_kernel.transformers import LigerFusedLinearCrossEntropyLoss(reduction="mean") DOING, @zheliuyu
liger_kernel.transformers.rms_norm import LigerRMSNorm DOING, @ji-huazhong
liger_kernel.transformers.rope import liger_rotary_pos_emb
liger_kernel.transformers.swiglu import LigerSwiGLUMLP DOING, @jiaqiw09
liger_kernel.transformers.layer_norm import LigerLayerNorm
liger_kernel.transformers.qwen2vl_mrope import liger_multimodal_rotary_pos_emb
liger_kernel.ops.swiglu import LigerSiLUMulFunction
LLaMA-Factory liger_kernel.transformers import apply_liger_kernel_to_gemma
liger_kernel.transformers import apply_liger_kernel_to_gemma2
liger_kernel.transformers import apply_liger_kernel_to_gemma3
liger_kernel.transformers import apply_liger_kernel_to_gemma3_text
liger_kernel.transformers import apply_liger_kernel_to_glm4
liger_kernel.transformers import apply_liger_kernel_to_glm4v
liger_kernel.transformers import apply_liger_kernel_to_granite
liger_kernel.transformers import apply_liger_kernel_to_llama
liger_kernel.transformers import apply_liger_kernel_to_llava
liger_kernel.transformers import apply_liger_kernel_to_mistral
liger_kernel.transformers import apply_liger_kernel_to_mixtral
liger_kernel.transformers import apply_liger_kernel_to_mllama
liger_kernel.transformers import apply_liger_kernel_to_olmo2
liger_kernel.transformers import apply_liger_kernel_to_paligemma
liger_kernel.transformers import apply_liger_kernel_to_phi3
liger_kernel.transformers import apply_liger_kernel_to_qwen2
liger_kernel.transformers import apply_liger_kernel_to_qwen2_vl
liger_kernel.transformers import apply_liger_kernel_to_qwen2_5_vl
liger_kernel.transformers import apply_liger_kernel_to_qwen3
liger_kernel.transformers import apply_liger_kernel_to_qwen3_moe
verl liger_kernel.transformers.monkey_patch import _apply_liger_kernel_to_instance(model=actor_module)

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