Skip to content

Commit d2978aa

Browse files
authored
Improve speed of init functions in cybind-generated bindings (#1009)
1 parent 5fb83a1 commit d2978aa

5 files changed

Lines changed: 39 additions & 13 deletions

File tree

cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,8 @@ cdef void* load_library() except* with gil:
108108
return <void*>handle
109109

110110

111-
cdef int _check_or_init_cufile() except -1 nogil:
111+
cdef int __check_or_init_cufile() except -1 nogil:
112112
global __py_cufile_init
113-
if __py_cufile_init:
114-
return 0
115113

116114
cdef void* handle = NULL
117115

@@ -422,6 +420,13 @@ cdef int _check_or_init_cufile() except -1 nogil:
422420
return 0
423421

424422

423+
cdef inline int _check_or_init_cufile() except -1 nogil:
424+
if __py_cufile_init:
425+
return 0
426+
427+
return __check_or_init_cufile()
428+
429+
425430
cdef dict func_ptrs = None
426431

427432

cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,8 @@ cdef void* load_library() except* with gil:
7777
return <void*>handle
7878

7979

80-
cdef int _check_or_init_nvjitlink() except -1 nogil:
80+
cdef int __check_or_init_nvjitlink() except -1 nogil:
8181
global __py_nvjitlink_init
82-
if __py_nvjitlink_init:
83-
return 0
8482

8583
cdef void* handle = NULL
8684

@@ -188,6 +186,12 @@ cdef int _check_or_init_nvjitlink() except -1 nogil:
188186
return 0
189187

190188

189+
cdef inline int _check_or_init_nvjitlink() except -1 nogil:
190+
if __py_nvjitlink_init:
191+
return 0
192+
193+
return __check_or_init_nvjitlink()
194+
191195
cdef dict func_ptrs = None
192196

193197

cuda_bindings/cuda/bindings/_internal/nvjitlink_windows.pyx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ cdef void* __nvJitLinkGetInfoLog = NULL
9393
cdef void* __nvJitLinkVersion = NULL
9494

9595

96-
cdef int _check_or_init_nvjitlink() except -1 nogil:
96+
cdef int __check_or_init_nvjitlink() except -1 nogil:
9797
global __py_nvjitlink_init
9898
if __py_nvjitlink_init:
9999
return 0
@@ -149,6 +149,13 @@ cdef int _check_or_init_nvjitlink() except -1 nogil:
149149
return 0
150150

151151

152+
cdef inline int _check_or_init_nvjitlink() except -1 nogil:
153+
if __py_nvjitlink_init:
154+
return 0
155+
156+
return __check_or_init_nvjitlink()
157+
158+
152159
cdef dict func_ptrs = None
153160

154161

cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,8 @@ cdef void* load_library() except* with gil:
7676
return <void*>handle
7777

7878

79-
cdef int _check_or_init_nvvm() except -1 nogil:
79+
cdef int __check_or_init_nvvm() except -1 nogil:
8080
global __py_nvvm_init
81-
if __py_nvvm_init:
82-
return 0
8381

8482
cdef void* handle = NULL
8583

@@ -180,6 +178,13 @@ cdef int _check_or_init_nvvm() except -1 nogil:
180178
return 0
181179

182180

181+
cdef inline int _check_or_init_nvvm() except -1 nogil:
182+
if __py_nvvm_init:
183+
return 0
184+
185+
return __check_or_init_nvvm()
186+
187+
183188
cdef dict func_ptrs = None
184189

185190

cuda_bindings/cuda/bindings/_internal/nvvm_windows.pyx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,8 @@ cdef void* __nvvmGetProgramLogSize = NULL
9292
cdef void* __nvvmGetProgramLog = NULL
9393

9494

95-
cdef int _check_or_init_nvvm() except -1 nogil:
95+
cdef int __check_or_init_nvvm() except -1 nogil:
9696
global __py_nvvm_init
97-
if __py_nvvm_init:
98-
return 0
9997

10098
with gil, __symbol_lock:
10199
# Load library
@@ -145,6 +143,13 @@ cdef int _check_or_init_nvvm() except -1 nogil:
145143
return 0
146144

147145

146+
cdef inline int _check_or_init_nvvm() except -1 nogil:
147+
if __py_nvvm_init:
148+
return 0
149+
150+
return __check_or_init_nvvm()
151+
152+
148153
cdef dict func_ptrs = None
149154

150155

0 commit comments

Comments
 (0)