Tests

The test directory structure mirrors the reprospect package source directory structure.

The tests for the three main subpackages can be found in:

Tests that involve many subpackages are grouped in:

Utilities for testing

ReProspect tests use helpers for diverse tasks such as compiling or extracting random bits from cuBLAS.

Test assets

Test assets are located in:

  • a subdirectory named assets next to the test file that uses them

  • the central tests/assets directory if shared across multiple tests

CI/CD strategy matrix

The CI/CD strategy matrix covers:

  • many CUDA versions

  • many architectures

  • nvcc or clang as CUDA compiler

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='GNU', version='13'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=7, minor=0),
        platforms=(Platform.from_str('linux/amd64'), Platform.from_str('linux/arm64')),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.13',
        compilers={'CXX': Compiler(ID='GNU', version='14'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=9, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.1.0',
        ubuntu_version='24.04',
        python_version='3.13',
        compilers={'CXX': Compiler(ID='GNU', version='14'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=12, minor=0),
        platforms=(Platform.from_str('linux/amd64'), Platform.from_str('linux/arm64')),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.6.3',
        ubuntu_version='22.04',
        python_version='3.10',
        compilers={'CXX': Compiler(ID='GNU', version='12'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=7, minor=5),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='GNU', version='13'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=8, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.6.3',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='GNU', version='13'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=8, minor=9),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.0.0',
        ubuntu_version='24.04',
        python_version='3.11',
        compilers={'CXX': Compiler(ID='GNU', version='14'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=8, minor=6),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='Clang', version='19'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=7, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.1.0',
        ubuntu_version='24.04',
        python_version='3.14',
        compilers={'CXX': Compiler(ID='GNU', version='14'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=10, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.2.0',
        ubuntu_version='24.04',
        python_version='3.14',
        compilers={'CXX': Compiler(ID='GNU', version='14'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=10, minor=0),
        platforms=(Platform.from_str('linux/amd64'), Platform.from_str('linux/arm64')),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.0.0',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='Clang', version='20'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=12, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.1.0',
        ubuntu_version='24.04',
        python_version='3.14',
        compilers={'CXX': Compiler(ID='Clang', version='21'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=10, minor=3),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.1.0',
        ubuntu_version='24.04',
        python_version='3.13',
        compilers={'CXX': Compiler(ID='Clang', version='21'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=12, minor=1),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.11',
        compilers={'CXX': Compiler(ID='Clang', version='21')},
        compute_capability=ComputeCapability(major=12, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='12.8.1',
        ubuntu_version='24.04',
        python_version='3.12',
        compilers={'CXX': Compiler(ID='Clang', version='22')},
        compute_capability=ComputeCapability(major=9, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.1.0',
        ubuntu_version='24.04',
        python_version='3.13',
        compilers={'CXX': Compiler(ID='Clang', version='22')},
        compute_capability=ComputeCapability(major=10, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))

    matrix.extend(from_config(Config(
        cuda_version='13.2.0',
        ubuntu_version='24.04',
        python_version='3.14',
        compilers={'CXX': Compiler(ID='Clang', version='21'), 'CUDA': Compiler(ID='NVIDIA')},
        compute_capability=ComputeCapability(major=12, minor=0),
        platforms=(Platform.from_str('linux/amd64'),),
    ), args=args))