Skip to content

Conversation

@wujingyue
Copy link
Collaborator

No description provided.

@wujingyue wujingyue requested a review from Priya2698 January 2, 2026 21:45
@wujingyue
Copy link
Collaborator Author

!test

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

Description

  • Removed HostIrLowering configuration from StreamTest class

  • Simplified StreamTest to directly inherit from NVFuserTest

  • Added explanatory comment about test purpose and location

  • StreamTest no longer needs the EnableOption::HostIrLowering setting

Changes walkthrough

Relevant files
Enhancement
test_stream.cpp
Remove HostIrLowering configuration from StreamTest           

tests/cpp/test_stream.cpp

  • Removed StreamTest class constructor that set HostIrLowering option
  • Replaced with simple alias: using StreamTest = NVFuserTest
  • Added comment explaining tests verify stream parallelism building
    blocks
  • Noted end-to-end tests moved to Python API tests
  • +4/-6     

    PR Reviewer Guide

    Here are some key observations to aid the review process:

    🧪 PR contains tests
    ⚡ Recommended focus areas for review
    Test Behavior Change

    The removal of EnableOption::HostIrLowering from StreamTest constructor may change the behavior being tested. While the PR title suggests this knob is no longer needed, the reviewer should verify that all StreamTest tests still pass and produce the expected results without this option enabled.

    namespace nvfuser {
    
    // The tests in this file verify building blocks for stream parallelism, e.g.,
    // sharding propagation and KernelExecutor. End-to-end tests have been moved to
    // tests/python/direct/test_stream.py because the Python API is sufficient.
    using StreamTest = NVFuserTest;

    Test failures

    • (High, 44) NCCL NVLS multicast bind failure in multidevice / nvfuser test suites (dlcluster_viking_ci)

      Test Name H100 (dist.) Source
      tests.python.multidevice.test_communication.test_allgather
      tests.python.multidevice.test_communication.test_allgather_expanded_broadcast
      tests.python.multidevice.test_communication.test_allreduce
      tests.python.multidevice.test_communication.test_reduce_scatter
      tests.python.multidevice.test_communication.test_reduce_scatter_noncontiguous
      tests.python.multidevice.test_dtensor.test_column_parallel_linear
      tests.python.multidevice.test_dtensor.test_plus_one
      tests.python.multidevice.test_dtensor.test_row_parallel_linear
      tests.python.multidevice.test_expert_parallel.test_dispatch_and_combine
      tests.python.multidevice.test_matmul.test_column_parallel_grouped_mm
      ... with 34 more test failures omitted. Check internal logs.
    • (Medium, 1) NCCL invalid usage errors in multidevice overlap tests (tests/python/multidevice)

      Test Name H100 (dist.) Source
      tests.python.multidevice.test_overlap.test_overlap_allgather_matmul_shard_outermost[backend_type=CommunicatorBackend.cuda]

    @greptile-apps
    Copy link
    Contributor

    greptile-apps bot commented Jan 2, 2026

    Greptile Summary

    This PR simplifies the StreamTest fixture by removing the HostIrLowering knob that is no longer needed. The custom test fixture class that previously enabled HostIrLowering in its constructor has been replaced with a simple type alias to NVFuserTest.

    • Replaced custom StreamTest class with type alias: using StreamTest = NVFuserTest
    • Removed EnableOptionsGuard::getCurOptions().set(EnableOption::HostIrLowering) from constructor
    • Added helpful comment explaining that these tests verify building blocks for stream parallelism, with end-to-end tests moved to Python
    • All test cases (AddPerStream, HaveDifferentShardings, ForwardPropagation, etc.) remain unchanged and continue using KernelExecutor directly

    The change is consistent with recent work to decouple KernelExecutor from HostIrJit (PR #5616), which made the HostIrLowering flag unnecessary for these tests.

    Confidence Score: 5/5

    • This PR is safe to merge with no risk
    • The change is a straightforward cleanup that removes unnecessary configuration. KernelExecutor no longer requires the HostIrLowering flag after recent refactoring work. All test logic remains identical, only the fixture setup was simplified. Many other tests in the codebase already use KernelExecutor without setting this flag.
    • No files require special attention

    Important Files Changed

    Filename Overview
    tests/cpp/test_stream.cpp Removed unnecessary HostIrLowering knob from StreamTest fixture, replaced custom test fixture with simple type alias to NVFuserTest

    Sequence Diagram

    sequenceDiagram
        participant Test as StreamTest
        participant Base as NVFuserTest
        participant Options as EnableOptionsGuard
        participant KE as KernelExecutor
    
        Note over Test,KE: Before: StreamTest with HostIrLowering
        Test->>Base: Construct (inherits from NVFuserTest)
        Test->>Options: set(EnableOption::HostIrLowering)
        Test->>KE: compile(&fusion, args)
        Test->>KE: run(args, outputs)
    
        Note over Test,KE: After: StreamTest as alias
        Test->>Base: Use NVFuserTest directly (type alias)
        Note over Options: No HostIrLowering option set
        Test->>KE: compile(&fusion, args)
        Test->>KE: run(args, outputs)
        Note over KE: KernelExecutor works without HostIrLowering flag
    
    Loading

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

    Labels

    None yet

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    2 participants