[GH-ISSUE #608] Hybrid_EP Abnormal performance on B300 (2-node dispatch ~40GB/s) reveals hardcoded DEF_IB_TC; request env-based configurability (align with NVSHMEM) #368

Open
opened 2026-10-26 09:59:14 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @kzlxd on GitHub (Apr 24, 2026).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/608

Description:

In the current Hybrid EP implementation, the InfiniBand Traffic Class is hardcoded as:

constexpr int32_t DEF_IB_TC = 0;

This makes the IB traffic class fixed at compile time and prevents users from tuning QoS / traffic prioritization dynamically based on deployment environments.

In contrast, NVSHMEM provides environment variable support (e.g., NVSHMEM_IB_TC) to configure the traffic class at runtime, which is very useful for performance tuning and congestion control in RDMA-based communication.

Problem:

  • DEF_IB_TC cannot be adjusted without recompilation
  • No flexibility for different cluster QoS configurations
  • Inconsistent behavior compared to NVSHMEM and other RDMA-based stacks

Suggestion:
Introduce an environment variable (e.g., HybridEP_IB_TC) to override the default value. For example:

int32_t get_ib_tc() {
    const char* env = std::getenv("HybridEP_IB_TC");
    if (env != nullptr) {
        return std::atoi(env);
    }
    return DEF_IB_TC;
}

Then use get_ib_tc() instead of the compile-time constant.

Benefits:

  • Enables runtime tuning without recompilation
  • Aligns with NVSHMEM and common RDMA practices
  • Improves flexibility for performance optimization under different network conditions

Would it be possible to add this support for better configurability?

Originally created by @kzlxd on GitHub (Apr 24, 2026). Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/608 **Description:** In the current Hybrid EP implementation, the InfiniBand Traffic Class is hardcoded as: ```cpp constexpr int32_t DEF_IB_TC = 0; ``` This makes the IB traffic class fixed at compile time and prevents users from tuning QoS / traffic prioritization dynamically based on deployment environments. In contrast, NVSHMEM provides environment variable support (e.g., `NVSHMEM_IB_TC`) to configure the traffic class at runtime, which is very useful for performance tuning and congestion control in RDMA-based communication. **Problem:** * `DEF_IB_TC` cannot be adjusted without recompilation * No flexibility for different cluster QoS configurations * Inconsistent behavior compared to NVSHMEM and other RDMA-based stacks **Suggestion:** Introduce an environment variable (e.g., `HybridEP_IB_TC`) to override the default value. For example: ```cpp int32_t get_ib_tc() { const char* env = std::getenv("HybridEP_IB_TC"); if (env != nullptr) { return std::atoi(env); } return DEF_IB_TC; } ``` Then use `get_ib_tc()` instead of the compile-time constant. **Benefits:** * Enables runtime tuning without recompilation * Aligns with NVSHMEM and common RDMA practices * Improves flexibility for performance optimization under different network conditions Would it be possible to add this support for better configurability?
Author
Owner

@Autumn1998 commented on GitHub (May 9, 2026):

Thanks! we will consider this in the next version.

<!-- gh-comment-id:4411402218 --> @Autumn1998 commented on GitHub (May 9, 2026): Thanks! we will consider this in the next version.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepEP#368
No description provided.