mirror of
https://github.com/NVIDIA/nvbench.git
synced 2026-07-07 15:47:08 +00:00
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
98 lines
3.0 KiB
TOML
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"
|