Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
01f33cd
build: use cuda.pathfinder.get_cuda_path_or_home in build hooks
rwgk Mar 24, 2026
0fc4597
chore: update stale pixi package version to 1.5.0
rwgk Mar 24, 2026
3d422de
build: raise actionable error when cuda-pathfinder not found on sys.path
rwgk Mar 25, 2026
73e840e
Merge branch 'main' into pathfinder_in_build-system_requires
rwgk Mar 25, 2026
6892ae0
build: replace inline docstring with reference to issue #1824
rwgk Mar 25, 2026
5a06d6f
Merge branch 'main' into pathfinder_in_build-system_requires
rwgk Mar 31, 2026
b779d0d
build: narrow except to only catch cuda.pathfinder-not-found
rwgk Mar 31, 2026
6facaa5
build: use importlib.metadata to locate cuda-pathfinder instead of sc…
rwgk Mar 31, 2026
f1ef076
build: produce actionable error when cuda namespace is entirely absent
rwgk Mar 31, 2026
3cb0313
build: diagnostic for importlib.metadata locate_file in PEP 517 builds
rwgk Mar 31, 2026
a9995ac
Revert "build: diagnostic for importlib.metadata locate_file in PEP 5…
rwgk Mar 31, 2026
cb5ffbb
build: revert to sys.path scan, importlib.metadata finds wrong dist-info
rwgk Mar 31, 2026
a8ae9ce
Merge branch 'main' into pathfinder_in_build-system_requires
rwgk Apr 8, 2026
62d334e
Revert changes to cuda-pathfinder runtime dependency pinning.
rwgk Apr 8, 2026
937ff7f
Exclude broken cuda-toolkit patch releases from dependency specs.
rwgk Apr 9, 2026
96e1b69
Revert "Exclude broken cuda-toolkit patch releases from dependency sp…
rwgk Apr 9, 2026
c5cb510
Move cuda_bindings to a src/ layout
mdboom Apr 9, 2026
d6a5936
Merge remote-tracking branch 'upstream/main' into cuda-bindings-src-l…
mdboom Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 34 additions & 34 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,45 +12,45 @@ __pycache__/
.benchmarks/
*.cpp
!*_impl.cpp
!cuda_bindings/cuda/bindings/_lib/param_packer.cpp
!cuda_bindings/cuda/bindings/_bindings/loader.cpp
!cuda_bindings/src/cuda/bindings/_lib/param_packer.cpp
!cuda_bindings/src/cuda/bindings/_bindings/loader.cpp
cache_driver
cache_runtime
cache_nvrtc
cuda_bindings/cuda/bindings/_lib/utils.pxi
cuda_bindings/src/cuda/bindings/_lib/utils.pxi

# CUDA Python specific (auto-generated)
cuda_bindings/cuda/bindings/_bindings/cydriver.pxd
cuda_bindings/cuda/bindings/_bindings/cydriver.pyx
cuda_bindings/cuda/bindings/_bindings/cyruntime.pxd
cuda_bindings/cuda/bindings/_bindings/cyruntime.pyx
cuda_bindings/cuda/bindings/_bindings/cyruntime_ptds.pxd
cuda_bindings/cuda/bindings/_bindings/cyruntime_ptds.pyx
cuda_bindings/cuda/bindings/_bindings/cynvrtc.pxd
cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx
cuda_bindings/cuda/bindings/_internal/_nvml.pyx
cuda_bindings/cuda/bindings/_internal/cufile.pyx
cuda_bindings/cuda/bindings/_internal/nvfatbin.pyx
cuda_bindings/cuda/bindings/_internal/nvjitlink.pyx
cuda_bindings/cuda/bindings/_internal/nvml.pyx
cuda_bindings/cuda/bindings/_internal/nvvm.pyx
cuda_bindings/cuda/bindings/_lib/utils.pxd
cuda_bindings/cuda/bindings/_lib/utils.pyx
cuda_bindings/cuda/bindings/cydriver.pxd
cuda_bindings/cuda/bindings/cydriver.pyx
cuda_bindings/cuda/bindings/cyruntime.pxd
cuda_bindings/cuda/bindings/cyruntime.pyx
cuda_bindings/cuda/bindings/cyruntime_functions.pxi
cuda_bindings/cuda/bindings/cyruntime_types.pxi
cuda_bindings/cuda/bindings/cynvrtc.pxd
cuda_bindings/cuda/bindings/cynvrtc.pyx
cuda_bindings/cuda/bindings/driver.pxd
cuda_bindings/cuda/bindings/driver.pyx
cuda_bindings/cuda/bindings/runtime.pxd
cuda_bindings/cuda/bindings/runtime.pyx
cuda_bindings/cuda/bindings/nvrtc.pxd
cuda_bindings/cuda/bindings/nvrtc.pyx
cuda_bindings/cuda/bindings/utils/_get_handle.pyx
cuda_bindings/src/cuda/bindings/_bindings/cydriver.pxd
cuda_bindings/src/cuda/bindings/_bindings/cydriver.pyx
cuda_bindings/src/cuda/bindings/_bindings/cyruntime.pxd
cuda_bindings/src/cuda/bindings/_bindings/cyruntime.pyx
cuda_bindings/src/cuda/bindings/_bindings/cyruntime_ptds.pxd
cuda_bindings/src/cuda/bindings/_bindings/cyruntime_ptds.pyx
cuda_bindings/src/cuda/bindings/_bindings/cynvrtc.pxd
cuda_bindings/src/cuda/bindings/_bindings/cynvrtc.pyx
cuda_bindings/src/cuda/bindings/_internal/_nvml.pyx
cuda_bindings/src/cuda/bindings/_internal/cufile.pyx
cuda_bindings/src/cuda/bindings/_internal/nvfatbin.pyx
cuda_bindings/src/cuda/bindings/_internal/nvjitlink.pyx
cuda_bindings/src/cuda/bindings/_internal/nvml.pyx
cuda_bindings/src/cuda/bindings/_internal/nvvm.pyx
cuda_bindings/src/cuda/bindings/_lib/utils.pxd
cuda_bindings/src/cuda/bindings/_lib/utils.pyx
cuda_bindings/src/cuda/bindings/cydriver.pxd
cuda_bindings/src/cuda/bindings/cydriver.pyx
cuda_bindings/src/cuda/bindings/cyruntime.pxd
cuda_bindings/src/cuda/bindings/cyruntime.pyx
cuda_bindings/src/cuda/bindings/cyruntime_functions.pxi
cuda_bindings/src/cuda/bindings/cyruntime_types.pxi
cuda_bindings/src/cuda/bindings/cynvrtc.pxd
cuda_bindings/src/cuda/bindings/cynvrtc.pyx
cuda_bindings/src/cuda/bindings/driver.pxd
cuda_bindings/src/cuda/bindings/driver.pyx
cuda_bindings/src/cuda/bindings/runtime.pxd
cuda_bindings/src/cuda/bindings/runtime.pyx
cuda_bindings/src/cuda/bindings/nvrtc.pxd
cuda_bindings/src/cuda/bindings/nvrtc.pyx
cuda_bindings/src/cuda/bindings/utils/_get_handle.pyx

# Version files from setuptools_scm
_version.py
Expand Down
8 changes: 4 additions & 4 deletions cuda_bindings/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

recursive-include cuda/ *.pyx *.pxd *.pxi *.pyx.in *.pxd.in *.pxi.in *.h
recursive-include src/cuda/ *.pyx *.pxd *.pxi *.pyx.in *.pxd.in *.pxi.in *.h
# at least with setuptools 75.0.0 this folder was added erroneously
# to the payload, causing file copying to the build environment failed
exclude cuda/bindings cuda?bindings
exclude cuda/bindings/_bindings cuda?bindings?_bindings
exclude src/cuda/bindings src?cuda?bindings
exclude src/cuda/bindings/_bindings src?cuda?bindings?_bindings
69 changes: 22 additions & 47 deletions cuda_bindings/build_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,40 +33,10 @@
_extensions = None


# Please keep in sync with the copy in cuda_core/build_hooks.py.
def _import_get_cuda_path_or_home():
"""Import get_cuda_path_or_home, working around PEP 517 namespace shadowing.

See https://github.com/NVIDIA/cuda-python/issues/1824 for why this helper is needed.
"""
try:
import cuda.pathfinder
except ModuleNotFoundError as exc:
if exc.name not in ("cuda", "cuda.pathfinder"):
raise
try:
import cuda
except ModuleNotFoundError:
cuda = None

for p in sys.path:
sp_cuda = os.path.join(p, "cuda")
if os.path.isdir(os.path.join(sp_cuda, "pathfinder")):
cuda.__path__ = list(cuda.__path__) + [sp_cuda]
break
else:
raise ModuleNotFoundError(
"cuda-pathfinder is not installed in the build environment. "
"Ensure 'cuda-pathfinder>=1.5' is in build-system.requires."
)
import cuda.pathfinder

return cuda.pathfinder.get_cuda_path_or_home


@functools.cache
def _get_cuda_path() -> str:
get_cuda_path_or_home = _import_get_cuda_path_or_home()
from cuda.pathfinder import get_cuda_path_or_home

cuda_path = get_cuda_path_or_home()
if not cuda_path:
raise RuntimeError("Environment variable CUDA_PATH or CUDA_HOME is not set")
Expand Down Expand Up @@ -266,7 +236,7 @@ def _generate_output(infile, template_vars):


def _rename_architecture_specific_files():
path = os.path.join("cuda", "bindings", "_internal")
path = os.path.join("src", "cuda", "bindings", "_internal")
if sys.platform == "linux":
src_files = glob.glob(os.path.join(path, "*_linux.pyx"))
elif sys.platform == "win32":
Expand All @@ -290,7 +260,10 @@ def _prep_extensions(sources, libraries, include_dirs, library_dirs, extra_compi
libraries = libraries if libraries else []
exts = []
for pyx in files:
mod_name = pyx.replace(".pyx", "").replace(os.sep, ".").replace("/", ".")
mod_path = pyx.replace(".pyx", "").replace(os.sep, "/")
if mod_path.startswith("src/"):
mod_path = mod_path[len("src/") :]
mod_name = mod_path.replace("/", ".")
exts.append(
Extension(
mod_name,
Expand Down Expand Up @@ -346,12 +319,12 @@ def _build_cuda_bindings(strip=False):

# Generate code from .in templates
path_list = [
os.path.join("cuda"),
os.path.join("cuda", "bindings"),
os.path.join("cuda", "bindings", "_bindings"),
os.path.join("cuda", "bindings", "_internal"),
os.path.join("cuda", "bindings", "_lib"),
os.path.join("cuda", "bindings", "utils"),
os.path.join("src", "cuda"),
os.path.join("src", "cuda", "bindings"),
os.path.join("src", "cuda", "bindings", "_bindings"),
os.path.join("src", "cuda", "bindings", "_internal"),
os.path.join("src", "cuda", "bindings", "_lib"),
os.path.join("src", "cuda", "bindings", "utils"),
]
input_files = []
for path in path_list:
Expand All @@ -375,6 +348,7 @@ def _build_cuda_bindings(strip=False):
# Prepare compile/link arguments
include_dirs = [
os.path.dirname(sysconfig.get_path("include")),
"src",
] + include_path_list
library_dirs = [sysconfig.get_path("platlib"), os.path.join(os.sys.prefix, "lib")]
cudalib_subdirs = [r"lib\x64"] if sys.platform == "win32" else ["lib64", "lib"]
Expand Down Expand Up @@ -415,21 +389,21 @@ def _cleanup_dst_files():
# Build extension list
extensions = []
static_runtime_libraries = ["cudart_static", "rt"] if sys.platform == "linux" else ["cudart_static"]
cuda_bindings_files = glob.glob("cuda/bindings/*.pyx")
cuda_bindings_files = glob.glob("src/cuda/bindings/*.pyx")
if sys.platform == "win32":
cuda_bindings_files = [f for f in cuda_bindings_files if "cufile" not in f]
sources_list = [
# private
(["cuda/bindings/_bindings/cydriver.pyx", "cuda/bindings/_bindings/loader.cpp"], None),
(["cuda/bindings/_bindings/cynvrtc.pyx"], None),
(["cuda/bindings/_bindings/cyruntime.pyx"], static_runtime_libraries),
(["cuda/bindings/_bindings/cyruntime_ptds.pyx"], static_runtime_libraries),
(["src/cuda/bindings/_bindings/cydriver.pyx", "src/cuda/bindings/_bindings/loader.cpp"], None),
(["src/cuda/bindings/_bindings/cynvrtc.pyx"], None),
(["src/cuda/bindings/_bindings/cyruntime.pyx"], static_runtime_libraries),
(["src/cuda/bindings/_bindings/cyruntime_ptds.pyx"], static_runtime_libraries),
# utils
(["cuda/bindings/utils/*.pyx"], None),
(["src/cuda/bindings/utils/*.pyx"], None),
# public
*(([f], None) for f in cuda_bindings_files),
# internal files used by generated bindings
(["cuda/bindings/_internal/utils.pyx"], None),
(["src/cuda/bindings/_internal/utils.pyx"], None),
*(([f], None) for f in dst_files if f.endswith(".pyx")),
]

Expand All @@ -446,6 +420,7 @@ def _cleanup_dst_files():
_extensions = cythonize(
extensions,
nthreads=nthreads,
include_path=["src"],
build_dir="." if compile_for_coverage else "build/cython",
compiler_directives=cython_directives,
**extra_cythonize_kwargs,
Expand Down
3 changes: 2 additions & 1 deletion cuda_bindings/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Repository = "https://github.com/NVIDIA/cuda-python"
Documentation = "https://nvidia.github.io/cuda-python/"

[tool.setuptools.packages.find]
where = ["src"]
include = ["cuda*"]

[tool.setuptools]
Expand Down Expand Up @@ -92,7 +93,7 @@ xfail_strict = true

[tool.setuptools_scm]
root = ".."
version_file = "cuda/bindings/_version.py"
version_file = "src/cuda/bindings/_version.py"
# Preserve a/b pre-release suffixes, but intentionally strip rc suffixes.
tag_regex = "^(?P<version>v\\d+\\.\\d+\\.\\d+(?:[ab]\\d+)?)"
git_describe_command = ["git", "describe", "--dirty", "--tags", "--long", "--match", "v*[0-9]*"]
1 change: 1 addition & 0 deletions cuda_bindings/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ def finalize_options(self):

setup(
ext_modules=build_hooks._extensions,
package_dir={"": "src"},
cmdclass={
"build_ext": build_ext,
"build_py": build_py,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

from cuda.bindings import utils
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2458,4 +2458,3 @@ cdef CUresult _cuGraphicsVDPAURegisterVideoSurface(CUgraphicsResource* pCudaReso

cdef CUresult _cuGraphicsVDPAURegisterOutputSurface(CUgraphicsResource* pCudaResource, VdpOutputSurface vdpSurface, unsigned int flags) except ?CUDA_ERROR_NOT_FOUND nogil
{{endif}}

Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,3 @@ cdef nvrtcResult _nvrtcGetTileIRSize(nvrtcProgram prog, size_t* TileIRSizeRet) e

cdef nvrtcResult _nvrtcGetTileIR(nvrtcProgram prog, char* TileIR) except ?NVRTC_ERROR_INVALID_INPUT nogil
{{endif}}

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

#include <stdio.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
//
// Please refer to the NVIDIA end user license agreement (EULA) associated
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

cdef extern from "loader.h":
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

cimport cuda.bindings.cyruntime as cyruntime
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

# These graphics API are the reimplemented version of what's supported by CUDA Runtime.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

cdef extern from "<dlfcn.h>" nogil:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

// Please refer to the NVIDIA end user license agreement (EULA) associated
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

# Include "param_packer.h" so its contents get compiled into every
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ cdef struct _HelperInputVoidPtrStruct:
Py_buffer _pybuffer

cdef class _HelperInputVoidPtr:
cdef _HelperInputVoidPtrStruct _helper
cdef _HelperInputVoidPtrStruct _helper
cdef void* _cptr

cdef void * _helper_input_void_ptr(ptr, _HelperInputVoidPtrStruct *buffer)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,13 @@ cdef class _HelperInputVoidPtr:

@property
def cptr(self):
return <void_ptr>self._cptr
return <void_ptr>self._cptr


cdef void * _helper_input_void_ptr(ptr, _HelperInputVoidPtrStruct *helper):
helper[0]._pybuffer.buf = NULL
try:
return <void *><void_ptr>ptr
return <void *><void_ptr>ptr
except:
if ptr is None:
return NULL
Expand Down Expand Up @@ -633,7 +633,7 @@ cdef class _HelperCUcoredumpSettings:
{{if 'CU_COREDUMP_ENABLE_USER_TRIGGER' in found_values}}cydriver.CUcoredumpSettings_enum.CU_COREDUMP_ENABLE_USER_TRIGGER,{{endif}}):
if self._is_getter == False:
self._bool = init_value

self._cptr = <void*>&self._bool
self._size = 1
else:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE

from libc.stddef cimport wchar_t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5409,4 +5409,4 @@ cdef enum: CU_DEVICE_INVALID = -2

cdef enum: MAX_PLANES = 3

cdef enum: CUDA_EGL_INFINITE_TIMEOUT = 4294967295
cdef enum: CUDA_EGL_INFINITE_TIMEOUT = 4294967295
Original file line number Diff line number Diff line change
Expand Up @@ -160,4 +160,3 @@ cdef nvrtcResult nvrtcGetTileIRSize(nvrtcProgram prog, size_t* TileIRSizeRet) ex

cdef nvrtcResult nvrtcGetTileIR(nvrtcProgram prog, char* TileIR) except ?NVRTC_ERROR_INVALID_INPUT nogil
{{endif}}

Original file line number Diff line number Diff line change
Expand Up @@ -2086,4 +2086,4 @@ cdef enum: CUDART_VERSION = 13020

cdef enum: __CUDART_API_VERSION = 13020

cdef enum: CUDA_EGL_MAX_PLANES = 3
cdef enum: CUDA_EGL_MAX_PLANES = 3
Original file line number Diff line number Diff line change
Expand Up @@ -1610,4 +1610,3 @@ cdef extern from "cuda_profiler_api.h":
cudaError_t cudaProfilerStop() nogil

{{endif}}

Loading
Loading