Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
40 changes: 36 additions & 4 deletions cuda_bindings/cuda/bindings/_internal/cudla_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,43 @@
# SPDX-License-Identifier: Apache-2.0

# This code was automatically generated across versions from 1.5.0 to 13.3.0. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=a7e70bc7234821ae1f02306321604d7605aee20e0fde536def5edd52263be5de
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=052aecd587e459179f49158c93f43cde9e327476eedfb5be12e98520f7401d94


# <<<< PREAMBLE CONTENT >>>>

cdef extern from * nogil:
"""
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static __forceinline int atomic_int_load(int *p) {
int v = *(int volatile *)p; _ReadBarrier(); return v;
}
static __forceinline void atomic_int_store(int *p, int v) {
_WriteBarrier(); *(int volatile *)p = v;
}
#elif defined(__cplusplus)
/* GCC/Clang __atomic builtins work in any C++ standard without headers */
static inline int atomic_int_load(int *p) {
return __atomic_load_n(p, __ATOMIC_ACQUIRE);
}
static inline void atomic_int_store(int *p, int v) {
__atomic_store_n(p, v, __ATOMIC_RELEASE);
}
#else
#include <stdatomic.h>
static inline int atomic_int_load(int *p) {
return (int)atomic_load_explicit((atomic_int *)p, memory_order_acquire);
}
static inline void atomic_int_store(int *p, int v) {
atomic_store_explicit((atomic_int *)p, v, memory_order_release);
}
#endif

"""
cdef int _cyb_atomic_int_load "atomic_int_load"(int *p) nogil
cdef void _cyb_atomic_int_store "atomic_int_store"(int *p, int v) nogil

cdef extern from "<dlfcn.h>":
void* _cyb_dlsym "dlsym"(void*, const char*) nogil
const void * _cyb_RTLD_DEFAULT "RTLD_DEFAULT"
Expand All @@ -15,7 +47,7 @@ from libc.stdint cimport intptr_t as _cyb_intptr_t

import threading as _cyb_threading

cdef bint _cyb___py_cudla_init = False
cdef int _cyb___py_cudla_init = 0
cdef dict _cyb_func_ptrs = None
cdef object _cyb_symbol_lock = _cyb_threading.Lock()

Expand Down Expand Up @@ -142,11 +174,11 @@ cdef int _init_cudla() except -1 nogil:
handle = load_library()
__cudlaSetTaskTimeoutInMs = _cyb_dlsym(handle, 'cudlaSetTaskTimeoutInMs')

_cyb___py_cudla_init = True
_cyb_atomic_int_store(<int *>&_cyb___py_cudla_init, 1)
return 0

cdef inline int _check_or_init_cudla() except -1 nogil:
if _cyb___py_cudla_init:
if _cyb_atomic_int_load(<int *>&_cyb___py_cudla_init):
return 0

return _init_cudla()
Expand Down
40 changes: 36 additions & 4 deletions cuda_bindings/cuda/bindings/_internal/cudla_windows.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,43 @@
# SPDX-License-Identifier: Apache-2.0

# This code was automatically generated across versions from 1.5.0 to 13.3.0. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=2f2d196de722c29b044dff6aed4e22bd72347a0890d30c885d35780882c6800f
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=32765bada1ce206d4a0f4790d6c14563b07e79567fc4569c6a843ccb086ab620


# <<<< PREAMBLE CONTENT >>>>

cdef extern from * nogil:
"""
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static __forceinline int atomic_int_load(int *p) {
int v = *(int volatile *)p; _ReadBarrier(); return v;
}
static __forceinline void atomic_int_store(int *p, int v) {
_WriteBarrier(); *(int volatile *)p = v;
}
#elif defined(__cplusplus)
/* GCC/Clang __atomic builtins work in any C++ standard without headers */
static inline int atomic_int_load(int *p) {
return __atomic_load_n(p, __ATOMIC_ACQUIRE);
}
static inline void atomic_int_store(int *p, int v) {
__atomic_store_n(p, v, __ATOMIC_RELEASE);
}
#else
#include <stdatomic.h>
static inline int atomic_int_load(int *p) {
return (int)atomic_load_explicit((atomic_int *)p, memory_order_acquire);
}
static inline void atomic_int_store(int *p, int v) {
atomic_store_explicit((atomic_int *)p, v, memory_order_release);
}
#endif

"""
cdef int _cyb_atomic_int_load "atomic_int_load"(int *p) nogil
cdef void _cyb_atomic_int_store "atomic_int_store"(int *p, int v) nogil

cdef extern from "<windows.h>":
ctypedef void* HMODULE
void* _cyb_GetProcAddress "GetProcAddress"(HMODULE, const char*) nogil
Expand All @@ -15,7 +47,7 @@ from libc.stdint cimport intptr_t as _cyb_intptr_t

import threading as _cyb_threading

cdef bint _cyb___py_cudla_init = False
cdef int _cyb___py_cudla_init = 0
cdef dict _cyb_func_ptrs = None
cdef object _cyb_symbol_lock = _cyb_threading.Lock()

Expand Down Expand Up @@ -95,11 +127,11 @@ cdef int _init_cudla() except -1 nogil:
global __cudlaSetTaskTimeoutInMs
__cudlaSetTaskTimeoutInMs = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaSetTaskTimeoutInMs')

_cyb___py_cudla_init = True
_cyb_atomic_int_store(<int *>&_cyb___py_cudla_init, 1)
return 0

cdef inline int _check_or_init_cudla() except -1 nogil:
if _cyb___py_cudla_init:
if _cyb_atomic_int_load(<int *>&_cyb___py_cudla_init):
return 0

return _init_cudla()
Expand Down
40 changes: 36 additions & 4 deletions cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,43 @@
# SPDX-License-Identifier: Apache-2.0
#
# This code was automatically generated across versions from 12.9.1 to 13.3.0. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=ae15aefcbc4ccf2d415fb5d6436ae854690559f5561704523ba7d6f45abfc592
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=73d6889e33bb56f1e0e63be7a0ba1f176c5c09e6e1adf9c4360d23335e131260


# <<<< PREAMBLE CONTENT >>>>

cdef extern from * nogil:
"""
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static __forceinline int atomic_int_load(int *p) {
int v = *(int volatile *)p; _ReadBarrier(); return v;
}
static __forceinline void atomic_int_store(int *p, int v) {
_WriteBarrier(); *(int volatile *)p = v;
}
#elif defined(__cplusplus)
/* GCC/Clang __atomic builtins work in any C++ standard without headers */
static inline int atomic_int_load(int *p) {
return __atomic_load_n(p, __ATOMIC_ACQUIRE);
}
static inline void atomic_int_store(int *p, int v) {
__atomic_store_n(p, v, __ATOMIC_RELEASE);
}
#else
#include <stdatomic.h>
static inline int atomic_int_load(int *p) {
return (int)atomic_load_explicit((atomic_int *)p, memory_order_acquire);
}
static inline void atomic_int_store(int *p, int v) {
atomic_store_explicit((atomic_int *)p, v, memory_order_release);
}
#endif

"""
cdef int _cyb_atomic_int_load "atomic_int_load"(int *p) nogil
cdef void _cyb_atomic_int_store "atomic_int_store"(int *p, int v) nogil

cdef extern from "<dlfcn.h>":
void* _cyb_dlsym "dlsym"(void*, const char*) nogil
const void * _cyb_RTLD_DEFAULT "RTLD_DEFAULT"
Expand All @@ -17,7 +49,7 @@ from libc.stdint cimport intptr_t as _cyb_intptr_t

import threading as _cyb_threading

cdef bint _cyb___py_cufile_init = False
cdef int _cyb___py_cufile_init = 0
cdef dict _cyb_func_ptrs = None
cdef object _cyb_symbol_lock = _cyb_threading.Lock()

Expand Down Expand Up @@ -385,11 +417,11 @@ cdef int _init_cufile() except -1 nogil:
handle = load_library()
__cuFileGetParameterPosixPoolSlabArray = _cyb_dlsym(handle, 'cuFileGetParameterPosixPoolSlabArray')

_cyb___py_cufile_init = True
_cyb_atomic_int_store(<int *>&_cyb___py_cufile_init, 1)
return 0

cdef inline int _check_or_init_cufile() except -1 nogil:
if _cyb___py_cufile_init:
if _cyb_atomic_int_load(<int *>&_cyb___py_cufile_init):
return 0

return _init_cufile()
Expand Down
40 changes: 36 additions & 4 deletions cuda_bindings/cuda/bindings/_internal/driver_linux.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,43 @@
# SPDX-License-Identifier: Apache-2.0
#
# This code was automatically generated across versions from 12.9.0 to 13.3.0. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=644e8be3cdcaddb497db76bdc5912df43457a11696b5b7f710d46cba991d0d0b
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=93ad3ec4e08c2af84cb387a5321ad62c2ce683d690ad6865196771e4766eb127


# <<<< PREAMBLE CONTENT >>>>

cdef extern from * nogil:
"""
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static __forceinline int atomic_int_load(int *p) {
int v = *(int volatile *)p; _ReadBarrier(); return v;
}
static __forceinline void atomic_int_store(int *p, int v) {
_WriteBarrier(); *(int volatile *)p = v;
}
#elif defined(__cplusplus)
/* GCC/Clang __atomic builtins work in any C++ standard without headers */
static inline int atomic_int_load(int *p) {
return __atomic_load_n(p, __ATOMIC_ACQUIRE);
}
static inline void atomic_int_store(int *p, int v) {
__atomic_store_n(p, v, __ATOMIC_RELEASE);
}
#else
#include <stdatomic.h>
static inline int atomic_int_load(int *p) {
return (int)atomic_load_explicit((atomic_int *)p, memory_order_acquire);
}
static inline void atomic_int_store(int *p, int v) {
atomic_store_explicit((atomic_int *)p, v, memory_order_release);
}
#endif

"""
cdef int _cyb_atomic_int_load "atomic_int_load"(int *p) nogil
cdef void _cyb_atomic_int_store "atomic_int_store"(int *p, int v) nogil

cdef extern from "<dlfcn.h>":
void* _cyb_dlsym "dlsym"(void*, const char*) nogil

Expand All @@ -18,7 +50,7 @@ import threading as _cyb_threading

ctypedef int (*_cyb_cuGetProcAddress_v2_T)(const char *, void **, int, cuuint64_t, CUdriverProcAddressQueryResult *)except?CUDA_ERROR_NOT_FOUND nogil

cdef bint _cyb___py_driver_init = False
cdef int _cyb___py_driver_init = 0
cdef dict _cyb_func_ptrs = None
cdef object _cyb_symbol_lock = _cyb_threading.Lock()

Expand Down Expand Up @@ -2123,11 +2155,11 @@ cdef int _init_driver() except -1 nogil:
global __cuStreamBeginRecaptureToGraph
cuGetProcAddress_v2('cuStreamBeginRecaptureToGraph', <void **>&__cuStreamBeginRecaptureToGraph, 13030, ptds_mode, NULL)

_cyb___py_driver_init = True
_cyb_atomic_int_store(<int *>&_cyb___py_driver_init, 1)
return 0

cdef inline int _check_or_init_driver() except -1 nogil:
if _cyb___py_driver_init:
if _cyb_atomic_int_load(<int *>&_cyb___py_driver_init):
return 0

return _init_driver()
Expand Down
40 changes: 36 additions & 4 deletions cuda_bindings/cuda/bindings/_internal/driver_windows.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,43 @@
# SPDX-License-Identifier: Apache-2.0
#
# This code was automatically generated across versions from 12.9.0 to 13.3.0. Do not modify it directly.
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=501497a3d88840c62eda1dfb0b72fe7494ff20a208230b1f45ad2f0c11bf47a5
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=86a420a34dae5d88ef57070872a942cba79608505c6d67a2a77366185afcf6c6


# <<<< PREAMBLE CONTENT >>>>

cdef extern from * nogil:
"""
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static __forceinline int atomic_int_load(int *p) {
int v = *(int volatile *)p; _ReadBarrier(); return v;
}
static __forceinline void atomic_int_store(int *p, int v) {
_WriteBarrier(); *(int volatile *)p = v;
}
#elif defined(__cplusplus)
/* GCC/Clang __atomic builtins work in any C++ standard without headers */
static inline int atomic_int_load(int *p) {
return __atomic_load_n(p, __ATOMIC_ACQUIRE);
}
static inline void atomic_int_store(int *p, int v) {
__atomic_store_n(p, v, __ATOMIC_RELEASE);
}
#else
#include <stdatomic.h>
static inline int atomic_int_load(int *p) {
return (int)atomic_load_explicit((atomic_int *)p, memory_order_acquire);
}
static inline void atomic_int_store(int *p, int v) {
atomic_store_explicit((atomic_int *)p, v, memory_order_release);
}
#endif

"""
cdef int _cyb_atomic_int_load "atomic_int_load"(int *p) nogil
cdef void _cyb_atomic_int_store "atomic_int_store"(int *p, int v) nogil

cdef extern from "<windows.h>":
ctypedef void* HMODULE
void* _cyb_GetProcAddress "GetProcAddress"(HMODULE, const char*) nogil
Expand All @@ -19,7 +51,7 @@ import threading as _cyb_threading

ctypedef int (*_cyb_cuGetProcAddress_v2_T)(const char *, void **, int, cuuint64_t, CUdriverProcAddressQueryResult *)except?CUDA_ERROR_NOT_FOUND nogil

cdef bint _cyb___py_driver_init = False
cdef int _cyb___py_driver_init = 0
cdef dict _cyb_func_ptrs = None
cdef object _cyb_symbol_lock = _cyb_threading.Lock()

Expand Down Expand Up @@ -2126,11 +2158,11 @@ cdef int _init_driver() except -1 nogil:
global __cuStreamBeginRecaptureToGraph
cuGetProcAddress_v2('cuStreamBeginRecaptureToGraph', <void **>&__cuStreamBeginRecaptureToGraph, 13030, ptds_mode, NULL)

_cyb___py_driver_init = True
_cyb_atomic_int_store(<int *>&_cyb___py_driver_init, 1)
return 0

cdef inline int _check_or_init_driver() except -1 nogil:
if _cyb___py_driver_init:
if _cyb_atomic_int_load(<int *>&_cyb___py_driver_init):
return 0

return _init_driver()
Expand Down
Loading
Loading