Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
67 lines (56 loc) · 2.43 KB
/
Copy pathpyproject.toml
File metadata and controls
67 lines (56 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[build-system]
requires = ["setuptools>=77", "nanobind>=2.0"]
build-backend = "setuptools.build_meta"
[project]
name = "quasarq"
dynamic = ["version"]
description = "GPU stabilizer sampling"
readme = "src/binding/README.md"
requires-python = ">=3.10"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ name = "Muhammad Osama Mahmoud", email = "muh.osama25@gmail.com" }]
keywords = ["quantum", "stabilizer", "clifford", "stim", "cuda", "gpu"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: C++",
"Environment :: GPU :: NVIDIA CUDA",
"Operating System :: POSIX :: Linux",
"Topic :: Scientific/Engineering :: Physics",
]
dependencies = ["numpy"]
[project.optional-dependencies]
sinter = ["sinter", "pymatching", "stim"]
[project.urls]
Homepage = "https://github.com/muhos/QuaSARQ"
[tool.setuptools]
zip-safe = false
include-package-data = false
# The VERSION file at the repository root is the single source of the version number; the
# Makefile reads the same file to define the VERSION macro for the core.
[tool.setuptools.dynamic]
version = { file = "VERSION" }
[tool.setuptools.packages.find]
where = ["src/binding"]
include = ["quasarq"]
# Redistributable wheels. The image pairs a manylinux base with a CUDA toolkit; build it first —
# see the header of .github/docker/manylinux-cuda.Dockerfile for the exact command.
[tool.cibuildwheel]
build = "cp310-manylinux_x86_64 cp311-manylinux_x86_64 cp312-manylinux_x86_64 cp313-manylinux_x86_64"
skip = "*-musllinux_* pp*"
archs = ["x86_64"]
manylinux-x86_64-image = "quasarq-manylinux-cuda:12.9"
# NVML ships with the driver, never with the wheel, so it stays an external dependency.
repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel} --exclude libnvidia-ml.so.1"
# No GPU on a build runner, so this only proves the extension loads and finds kernel.config.
test-command = "python -c \"import quasarq; print(quasarq.version())\""
[tool.cibuildwheel.environment]
# Every major architecture from Pascal to Blackwell, lowest to highest; the last one also gets
# PTX so newer GPUs still run. Minor versions are covered by binary compatibility.
QUASARQ_CUDA_ARCH = "sm_60,sm_70,sm_75,sm_80,sm_90,sm_100,sm_120"
QUASARQ_BUILD_JOBS = "$(nproc)"
CUDA_PATH = "/usr/local/cuda"