cubek-reduce 0.1.0

CubeK: Reduce Kernels
Documentation

CubeK Reduce

Implements a wide variety of reduction algorithms across multiple instruction sets and hardware targets for efficient tensor reduction.

Running Tests

Important Environment Variables

Two environment variables control test execution behavior:

  • CUBEK_TEST_MODE
    Controls handling of tests that cannot run on the current hardware (e.g., due to missing support for certain algorithms).

    • skip (default): Skipped tests are silently ignored and reported as passed by the Rust test runner.
    • verbose: Skipped tests are reported with an explanation why they were skipped, but still marked as passed.
    • panic: Skipped tests cause a failure, printing the reason. The test run will show failures.
      Useful for discovering which tests are being skipped on your hardware.
  • CUBEK_TEST_FULL
    Controls whether time-consuming tests are executed.

    • 0 (default): Long-running tests are skipped with an explanatory message.
    • 1: All tests are run, including the longer ones.

Important Feature Flags

The test suite can be run on different CubeCL runtimes by enabling the corresponding feature flag.

Examples

# Run all tests (including long ones) on the CUDA runtime, skipping unsupported tests silently
CUBEK_TEST_FULL=1 cargo test --features cubecl/cuda

# Run all tests on CUDA, failing on any unsupported tests (to see what is skipped)
CUBEK_TEST_MODE=panic CUBEK_TEST_FULL=1 cargo test --features cubecl/cuda

# Run tests on the WGSL (web GPU) runtime with verbose skipping
CUBEK_TEST_MODE=verbose cargo test --features cubecl/wgsl