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
nvccorclangas 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))