Files
nvbench/python/pyproject.toml
Oleksandr Pavlyk 4a22923721 Add BenchmarkResult JSON results namespace and summary CLI
Move NVBench JSON result parsing into cuda.bench.results with explicit
BenchmarkResult, BenchmarkResultDevice, BenchmarkResultSummary,
SubBenchmarkResult, and SubBenchmarkState types. Remove the result reader
from the top-level cuda.bench namespace and require construction through
BenchmarkResult.from_json() or BenchmarkResult.empty().

Preserve bulk sample/frequency parsing and estimator helpers while making
summaries rich objects that retain tag/name/hint/hide/description metadata.

Add nvbench-json-summary to render NVBench JSON output as an NVBench-style
markdown summary table, including axis formatting, device sections, hidden
summary filtering, and summary hint formatting.

Update packaging, type stubs, and tests for the new namespace, renamed
classes, Python 3.10-compatible annotations, and summary-table generation.
2026-05-12 09:58:30 -05:00

94 lines
2.6 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"
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]
# CUDA 12.x dependencies
cu12 = ["cuda-bindings>=12.0.0,<13.0.0"]
# CUDA 13.x dependencies
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"