Files
nvbench/python/pyproject.toml
Oleksandr Pavlyk e0198df47f Corrections for python/README.md (#401)
Document that published `cuda-bench` wheels are multi-CUDA
wheels containing both CUDA 12.x and CUDA 13.x native extensions,
with runtime selection driven by the installed cuda.bindings major
version.

Clarify that the cu12/cu13 extras select compatible cuda-bindings
dependency families rather than different cuda-bench wheels.

Update source-build instructions to use CUDAARCHS=all-major, avoid
editable installs while the versioned extension layout is unsupported
there, and note that local builds only produce the extension for the
Toolkit found by CMake.

closes #391
2026-07-01 14:05:31 -05:00

98 lines
3.0 KiB
TOML

# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
[build-system]
requires = ["scikit-build-core>=0.10", "setuptools_scm"]
build-backend = "scikit_build_core.build"
[project]
name = "cuda-bench"
description = "CUDA Kernel Benchmarking Package with CUDA 12.x and 13.x runtime support"
authors = [{ name = "NVIDIA Corporation" }]
license = { text = "Apache-2.0 WITH LLVM-exception" }
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Environment :: GPU :: NVIDIA CUDA",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
]
requires-python = ">=3.10"
dynamic = ["version"]
readme = { file = "README.md", content-type = "text/markdown" }
[project.optional-dependencies]
# The published wheel is intentionally multi-CUDA: CI builds one CUDA 12.x
# native extension and one CUDA 13.x native extension, then merges both into one
# wheel under cuda/bench/cu12 and cuda/bench/cu13.
#
# These extras do not select different cuda-bench wheels. They select the
# cuda-bindings major version used at runtime to choose the matching native
# extension.
cu12 = ["cuda-bindings>=12.0.0,<13.0.0"]
cu13 = ["cuda-bindings>=13.0.0,<14.0.0"]
# Test dependencies for CUDA 12
test-cu12 = ["cuda-bench[cu12]", "pytest", "cupy-cuda12x", "numba"]
# Test dependencies for CUDA 13
test-cu13 = ["cuda-bench[cu13]", "pytest", "cupy-cuda13x", "numba"]
# Generic test dependencies (defaults to CUDA 12)
test = ["pytest", "cupy-cuda12x", "numba"]
tools = [
"colorama",
"jsondiff",
"matplotlib",
"numpy",
"pandas",
"seaborn",
"tabulate",
]
[project.scripts]
nvbench-compare = "scripts.nvbench_compare:main"
nvbench-histogram = "scripts.nvbench_histogram:main"
nvbench-json-summary = "scripts.nvbench_json_summary:main"
nvbench-walltime = "scripts.nvbench_walltime:main"
[project.urls]
Homepage = "https://github.com/NVIDIA/nvbench"
Repository = "https://github.com/NVIDIA/nvbench"
Issues = "https://github.com/NVIDIA/nvbench/issues"
[tool.scikit-build]
minimum-version = "build-system.requires"
build-dir = "build/{wheel_tag}"
[tool.scikit-build.cmake]
version = ">=3.30.4"
args = []
build-type = "Release"
source-dir = "."
[tool.scikit-build.ninja]
version = ">=1.11"
make-fallback = true
[tool.scikit-build.metadata.version]
provider = "scikit_build_core.metadata.setuptools_scm"
[tool.setuptools_scm]
root = ".."
git_describe_command = ["git", "describe", "--tags", "--match", "python-*"]
tag_regex = "^python-(?P<version>.*)$"
fallback_version = "0.0.0"
[tool.scikit-build.wheel.packages]
"cuda" = "cuda"
"cuda/bench" = "cuda/bench"
"cuda/bench/results" = "cuda/bench/results"
"scripts" = "scripts"