Skip to content

[LoRA]Disable linear LoRA kernel PDL#31777

Merged
jeejeelee merged 6 commits intovllm-project:mainfrom
jeejeelee:disable-linear-lora-pdl
Jan 6, 2026
Merged

[LoRA]Disable linear LoRA kernel PDL#31777
jeejeelee merged 6 commits intovllm-project:mainfrom
jeejeelee:disable-linear-lora-pdl

Conversation

@jeejeelee
Copy link
Copy Markdown
Collaborator

@jeejeelee jeejeelee commented Jan 6, 2026

Purpose

Currently, we found that there is a base model GEMM operator between the two LoRA operators in linear LoRA. This causes PDL to be ineffective and actually negatively impacts LoRA performance. Therefore, this PR temporarily disables PDL.
image
image

  • main branch
============ Serving Benchmark Result ============
Successful requests:                     100       
Failed requests:                         0         
Benchmark duration (s):                  40.08     
Total input tokens:                      204700    
Total generated tokens:                  102400    
Request throughput (req/s):              2.49      
Output token throughput (tok/s):         2554.87   
Peak output token throughput (tok/s):    3900.00   
Peak concurrent requests:                100.00    
Total token throughput (tok/s):          7662.13   
---------------Time to First Token----------------
Mean TTFT (ms):                          5831.36   
Median TTFT (ms):                        5925.33   
P90 TTFT (ms):                           10330.85  
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          33.29     
Median TPOT (ms):                        33.23     
P90 TPOT (ms):                           37.24     
---------------Inter-token Latency----------------
Mean ITL (ms):                           33.29     
Median ITL (ms):                         28.30     
P90 ITL (ms):                            31.06     
==================================================
  • This PR
============ Serving Benchmark Result ============
Successful requests:                     100       
Failed requests:                         0         
Benchmark duration (s):                  39.72     
Total input tokens:                      204700    
Total generated tokens:                  102400    
Request throughput (req/s):              2.52      
Output token throughput (tok/s):         2577.76   
Peak output token throughput (tok/s):    3905.00   
Peak concurrent requests:                100.00    
Total token throughput (tok/s):          7730.75   
---------------Time to First Token----------------
Mean TTFT (ms):                          5826.86   
Median TTFT (ms):                        5710.47   
P90 TTFT (ms):                           10110.86  
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          32.95     
Median TPOT (ms):                        33.09     
P90 TPOT (ms):                           37.10     
---------------Inter-token Latency----------------
Mean ITL (ms):                           32.95     
Median ITL (ms):                         27.81     
P90 ITL (ms):                            30.99     
==================================================

Test Plan

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.

Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
@mergify
Copy link
Copy Markdown

mergify bot commented Jan 6, 2026

Documentation preview: https://vllm--31777.org.readthedocs.build/en/31777/

@mergify mergify bot added the documentation Improvements or additions to documentation label Jan 6, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request disables Programmatic Dependent Launch (PDL) for the linear LoRA kernels (lora_expand and lora_shrink) by hardcoding use_gdc to False. This is a reasonable change as the comment explains that these kernels are not launched back-to-back, which is a prerequisite for PDL to be effective and can otherwise harm performance. The documentation is also updated to point to a relevant GitHub issue.

The changes are correct and well-justified. I have one suggestion regarding a related potential issue in the MoE LoRA implementation where PDL might also be used incorrectly under certain conditions (fully_sharded=True). Addressing this would improve the robustness of the LoRA implementation.

@jeejeelee jeejeelee force-pushed the disable-linear-lora-pdl branch from eafde62 to 8791e80 Compare January 6, 2026 07:44
## LoRA Support for Tower and Connector of Multi-Modal Model

Currently, vLLM experimentally supports LoRA for the Tower and Connector components of multi-modal models. To enable this feature, you need to implement the corresponding token helper functions for the tower and connector. For more details on the rationale behind this approach, please refer to [PR 26674](https://github.com/vllm-project/vllm/pull/26674). We welcome contributions to extend LoRA support to additional models' tower and connector.
Currently, vLLM experimentally supports LoRA for the Tower and Connector components of multi-modal models. To enable this feature, you need to implement the corresponding token helper functions for the tower and connector. For more details on the rationale behind this approach, please refer to [PR 26674](https://github.com/vllm-project/vllm/pull/26674). We welcome contributions to extend LoRA support to additional models' tower and connector. Please refer to [Issue 31479](https://github.com/vllm-project/vllm/issues/31479) to check the current model support status.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, add MM LoRA support status here

Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
@jeejeelee jeejeelee requested a review from Isotr0py January 6, 2026 08:57
@jeejeelee jeejeelee added the ready ONLY add when PR is ready to merge/full CI is needed label Jan 6, 2026
@jeejeelee jeejeelee merged commit cbd4690 into vllm-project:main Jan 6, 2026
49 checks passed
@jeejeelee jeejeelee deleted the disable-linear-lora-pdl branch January 6, 2026 15:12
LucasWilkinson pushed a commit to neuralmagic/vllm that referenced this pull request Jan 6, 2026
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
yugong333 pushed a commit to yugong333/vllm that referenced this pull request Jan 9, 2026
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
@danisereb
Copy link
Copy Markdown
Contributor

danisereb commented Jan 12, 2026

@jeejeelee should PDL/GDC be disabled in function _fused_moe_lora (file fused_moe_lora_op.py) ?
In this line:

use_gdc = supports_pdl(device) and not fully_sharded

When I run an MoE model on Blackwell I get this error:

error: 'tt.elementwise_inline_asm' op pipeliner doesn't know how to predicate this op.
            tl.extra.cuda.gdc_wait()

The error is not raised when I set use_gdc = False.

I can open an issue and/or PR for this problem if required.

akh64bit pushed a commit to akh64bit/vllm that referenced this pull request Jan 16, 2026
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
dsuhinin pushed a commit to dsuhinin/vllm that referenced this pull request Jan 21, 2026
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
Signed-off-by: dsuhinin <suhinin.dmitriy@gmail.com>
ItzDEXX pushed a commit to ItzDEXX/vllm that referenced this pull request Feb 19, 2026
Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants