Skip to content

Commit f63e62b

Browse files
authored
Merge branch 'main' into rwgk/pathfinder-3137-search-contract
2 parents 8864bcc + 8fa2bf7 commit f63e62b

26 files changed

Lines changed: 2407 additions & 11073 deletions

‎.github/RELEASE-core.md‎

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,24 @@ platforms as appropriate for each release.
8585
## Check (or update if needed) the dependency requirements
8686

8787
Review `cuda_core/pyproject.toml` and verify that all dependency
88-
requirements are current. The `cu12`/`cu13` extras declare the
89-
`cuda-bindings` floors; see "Bumping the cuda-bindings floor" in
90-
`cuda_core/AGENTS.md`.
88+
requirements are current.
89+
90+
The `cu12`/`cu13` extras declare the `cuda-bindings` floors. A release
91+
does not raise a floor to the newest `cuda-bindings`; see "Bumping the
92+
cuda-bindings floor" in `cuda_core/AGENTS.md`. Check the floors instead:
93+
94+
- The minor of each floor equals the minor of the toolkit pin of its
95+
major in `ci/versions.yml` (`build` for the current major, `prev_build`
96+
for the prior major). If a floor's minor is lower, the toolkit-bump
97+
window is open: move the floor before the release.
98+
- In the latest CI run on `main`, the CUDA 13 rows whose CUDA minor
99+
differs from the `build` pin (for example "CUDA 13.0.2") installed the
100+
literal floor. Their logs show `Installing bindings (source: floor)` and
101+
`cuda-bindings==<floor>`, and no "predates ... headers" line. Standard
102+
CI does not install the CUDA 12 floor: its rows use the 12.9.x backport
103+
build.
104+
- The release notes list every floor move since the last release under
105+
"Breaking Changes".
91106

92107
Update the `cuda-core` pin in `cuda_python/setup.py` to the new minor
93108
series (`cuda-core~=X.Y.0`), and plan a `cuda-python` release right after

‎cuda_bindings_13/cuda/bindings/_internal/cudla_linux.pyx‎

Lines changed: 28 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
# This code was automatically generated across versions from 1.5.0 to 13.5.0. Do not modify it directly.
5-
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=e12046de9e30b8295fe41d5061cde9687a84c9bcca32bbf6ddbcfa565fc488b5
5+
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=cb3b6b9aa1163e7e39f1bd8728002ff326c7893c6f53adc17810a4ab7ac856f2
66

77

88
# <<<< PREAMBLE CONTENT >>>>
@@ -82,102 +82,36 @@ cdef void* __cudlaGetLastError = NULL
8282
cdef void* __cudlaDestroyDevice = NULL
8383
cdef void* __cudlaSetTaskTimeoutInMs = NULL
8484

85+
cdef enum: _cyb_cudla_n_functions = 13
86+
cdef void** _cyb_cudla_slots[_cyb_cudla_n_functions]
87+
cdef const char* _cyb_cudla_names[_cyb_cudla_n_functions]
88+
_cyb_cudla_slots[0] = &__cudlaGetVersion; _cyb_cudla_names[0] = b'cudlaGetVersion'
89+
_cyb_cudla_slots[1] = &__cudlaDeviceGetCount; _cyb_cudla_names[1] = b'cudlaDeviceGetCount'
90+
_cyb_cudla_slots[2] = &__cudlaCreateDevice; _cyb_cudla_names[2] = b'cudlaCreateDevice'
91+
_cyb_cudla_slots[3] = &__cudlaMemRegister; _cyb_cudla_names[3] = b'cudlaMemRegister'
92+
_cyb_cudla_slots[4] = &__cudlaModuleLoadFromMemory; _cyb_cudla_names[4] = b'cudlaModuleLoadFromMemory'
93+
_cyb_cudla_slots[5] = &__cudlaModuleGetAttributes; _cyb_cudla_names[5] = b'cudlaModuleGetAttributes'
94+
_cyb_cudla_slots[6] = &__cudlaModuleUnload; _cyb_cudla_names[6] = b'cudlaModuleUnload'
95+
_cyb_cudla_slots[7] = &__cudlaSubmitTask; _cyb_cudla_names[7] = b'cudlaSubmitTask'
96+
_cyb_cudla_slots[8] = &__cudlaDeviceGetAttribute; _cyb_cudla_names[8] = b'cudlaDeviceGetAttribute'
97+
_cyb_cudla_slots[9] = &__cudlaMemUnregister; _cyb_cudla_names[9] = b'cudlaMemUnregister'
98+
_cyb_cudla_slots[10] = &__cudlaGetLastError; _cyb_cudla_names[10] = b'cudlaGetLastError'
99+
_cyb_cudla_slots[11] = &__cudlaDestroyDevice; _cyb_cudla_names[11] = b'cudlaDestroyDevice'
100+
_cyb_cudla_slots[12] = &__cudlaSetTaskTimeoutInMs; _cyb_cudla_names[12] = b'cudlaSetTaskTimeoutInMs'
101+
85102
cdef int _init_cudla() except -1 nogil:
86103
global _cyb___py_cudla_init
87104
cdef void* handle = NULL
105+
cdef Py_ssize_t i
88106
with gil, _cyb_symbol_lock:
89107
if _cyb___py_cudla_init: return 0
90108

91-
global __cudlaGetVersion
92-
__cudlaGetVersion = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaGetVersion')
93-
if __cudlaGetVersion == NULL:
94-
if handle == NULL:
95-
handle = load_library()
96-
__cudlaGetVersion = _cyb_dlsym(handle, 'cudlaGetVersion')
97-
98-
global __cudlaDeviceGetCount
99-
__cudlaDeviceGetCount = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaDeviceGetCount')
100-
if __cudlaDeviceGetCount == NULL:
101-
if handle == NULL:
102-
handle = load_library()
103-
__cudlaDeviceGetCount = _cyb_dlsym(handle, 'cudlaDeviceGetCount')
104-
105-
global __cudlaCreateDevice
106-
__cudlaCreateDevice = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaCreateDevice')
107-
if __cudlaCreateDevice == NULL:
108-
if handle == NULL:
109-
handle = load_library()
110-
__cudlaCreateDevice = _cyb_dlsym(handle, 'cudlaCreateDevice')
111-
112-
global __cudlaMemRegister
113-
__cudlaMemRegister = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaMemRegister')
114-
if __cudlaMemRegister == NULL:
115-
if handle == NULL:
116-
handle = load_library()
117-
__cudlaMemRegister = _cyb_dlsym(handle, 'cudlaMemRegister')
118-
119-
global __cudlaModuleLoadFromMemory
120-
__cudlaModuleLoadFromMemory = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaModuleLoadFromMemory')
121-
if __cudlaModuleLoadFromMemory == NULL:
122-
if handle == NULL:
123-
handle = load_library()
124-
__cudlaModuleLoadFromMemory = _cyb_dlsym(handle, 'cudlaModuleLoadFromMemory')
125-
126-
global __cudlaModuleGetAttributes
127-
__cudlaModuleGetAttributes = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaModuleGetAttributes')
128-
if __cudlaModuleGetAttributes == NULL:
129-
if handle == NULL:
130-
handle = load_library()
131-
__cudlaModuleGetAttributes = _cyb_dlsym(handle, 'cudlaModuleGetAttributes')
132-
133-
global __cudlaModuleUnload
134-
__cudlaModuleUnload = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaModuleUnload')
135-
if __cudlaModuleUnload == NULL:
136-
if handle == NULL:
137-
handle = load_library()
138-
__cudlaModuleUnload = _cyb_dlsym(handle, 'cudlaModuleUnload')
139-
140-
global __cudlaSubmitTask
141-
__cudlaSubmitTask = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaSubmitTask')
142-
if __cudlaSubmitTask == NULL:
143-
if handle == NULL:
144-
handle = load_library()
145-
__cudlaSubmitTask = _cyb_dlsym(handle, 'cudlaSubmitTask')
146-
147-
global __cudlaDeviceGetAttribute
148-
__cudlaDeviceGetAttribute = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaDeviceGetAttribute')
149-
if __cudlaDeviceGetAttribute == NULL:
150-
if handle == NULL:
151-
handle = load_library()
152-
__cudlaDeviceGetAttribute = _cyb_dlsym(handle, 'cudlaDeviceGetAttribute')
153-
154-
global __cudlaMemUnregister
155-
__cudlaMemUnregister = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaMemUnregister')
156-
if __cudlaMemUnregister == NULL:
157-
if handle == NULL:
158-
handle = load_library()
159-
__cudlaMemUnregister = _cyb_dlsym(handle, 'cudlaMemUnregister')
160-
161-
global __cudlaGetLastError
162-
__cudlaGetLastError = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaGetLastError')
163-
if __cudlaGetLastError == NULL:
164-
if handle == NULL:
165-
handle = load_library()
166-
__cudlaGetLastError = _cyb_dlsym(handle, 'cudlaGetLastError')
167-
168-
global __cudlaDestroyDevice
169-
__cudlaDestroyDevice = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaDestroyDevice')
170-
if __cudlaDestroyDevice == NULL:
171-
if handle == NULL:
172-
handle = load_library()
173-
__cudlaDestroyDevice = _cyb_dlsym(handle, 'cudlaDestroyDevice')
174-
175-
global __cudlaSetTaskTimeoutInMs
176-
__cudlaSetTaskTimeoutInMs = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'cudlaSetTaskTimeoutInMs')
177-
if __cudlaSetTaskTimeoutInMs == NULL:
178-
if handle == NULL:
179-
handle = load_library()
180-
__cudlaSetTaskTimeoutInMs = _cyb_dlsym(handle, 'cudlaSetTaskTimeoutInMs')
109+
for i in range(_cyb_cudla_n_functions):
110+
_cyb_cudla_slots[i][0] = _cyb_dlsym(_cyb_RTLD_DEFAULT, _cyb_cudla_names[i])
111+
if _cyb_cudla_slots[i][0] == NULL:
112+
if handle == NULL:
113+
handle = load_library()
114+
_cyb_cudla_slots[i][0] = _cyb_dlsym(handle, _cyb_cudla_names[i])
181115

182116
_cyb_atomic_int_store(<int *>&_cyb___py_cudla_init, 1)
183117
return 0
@@ -196,44 +130,9 @@ cpdef dict _inspect_function_pointers():
196130

197131
_check_or_init_cudla()
198132
cdef dict data = {}
199-
global __cudlaGetVersion
200-
data["__cudlaGetVersion"] = <intptr_t>__cudlaGetVersion
201-
202-
global __cudlaDeviceGetCount
203-
data["__cudlaDeviceGetCount"] = <intptr_t>__cudlaDeviceGetCount
204-
205-
global __cudlaCreateDevice
206-
data["__cudlaCreateDevice"] = <intptr_t>__cudlaCreateDevice
207-
208-
global __cudlaMemRegister
209-
data["__cudlaMemRegister"] = <intptr_t>__cudlaMemRegister
210-
211-
global __cudlaModuleLoadFromMemory
212-
data["__cudlaModuleLoadFromMemory"] = <intptr_t>__cudlaModuleLoadFromMemory
213-
214-
global __cudlaModuleGetAttributes
215-
data["__cudlaModuleGetAttributes"] = <intptr_t>__cudlaModuleGetAttributes
216-
217-
global __cudlaModuleUnload
218-
data["__cudlaModuleUnload"] = <intptr_t>__cudlaModuleUnload
219-
220-
global __cudlaSubmitTask
221-
data["__cudlaSubmitTask"] = <intptr_t>__cudlaSubmitTask
222-
223-
global __cudlaDeviceGetAttribute
224-
data["__cudlaDeviceGetAttribute"] = <intptr_t>__cudlaDeviceGetAttribute
225-
226-
global __cudlaMemUnregister
227-
data["__cudlaMemUnregister"] = <intptr_t>__cudlaMemUnregister
228-
229-
global __cudlaGetLastError
230-
data["__cudlaGetLastError"] = <intptr_t>__cudlaGetLastError
231-
232-
global __cudlaDestroyDevice
233-
data["__cudlaDestroyDevice"] = <intptr_t>__cudlaDestroyDevice
234-
235-
global __cudlaSetTaskTimeoutInMs
236-
data["__cudlaSetTaskTimeoutInMs"] = <intptr_t>__cudlaSetTaskTimeoutInMs
133+
cdef Py_ssize_t i
134+
for i in range(_cyb_cudla_n_functions):
135+
data['__' + _cyb_cudla_names[i].decode()] = <intptr_t>_cyb_cudla_slots[i][0]
237136
_cyb_func_ptrs = data
238137
return data
239138

‎cuda_bindings_13/cuda/bindings/_internal/cudla_windows.pyx‎

Lines changed: 24 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
# This code was automatically generated across versions from 1.5.0 to 13.5.0. Do not modify it directly.
5-
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=9df535111c371b1a39c43b944cf9245be42211d5f06b80d888ea9c4596329edc
5+
# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=aa6f8135abba7596111ca9a218e25ed73978afc7f5c88ea07cc58a63a32da4dc
66

77

88
# <<<< PREAMBLE CONTENT >>>>
@@ -85,53 +85,35 @@ cdef void* __cudlaGetLastError = NULL
8585
cdef void* __cudlaDestroyDevice = NULL
8686
cdef void* __cudlaSetTaskTimeoutInMs = NULL
8787

88+
cdef enum: _cyb_cudla_n_functions = 13
89+
cdef void** _cyb_cudla_slots[_cyb_cudla_n_functions]
90+
cdef const char* _cyb_cudla_names[_cyb_cudla_n_functions]
91+
_cyb_cudla_slots[0] = &__cudlaGetVersion; _cyb_cudla_names[0] = b'cudlaGetVersion'
92+
_cyb_cudla_slots[1] = &__cudlaDeviceGetCount; _cyb_cudla_names[1] = b'cudlaDeviceGetCount'
93+
_cyb_cudla_slots[2] = &__cudlaCreateDevice; _cyb_cudla_names[2] = b'cudlaCreateDevice'
94+
_cyb_cudla_slots[3] = &__cudlaMemRegister; _cyb_cudla_names[3] = b'cudlaMemRegister'
95+
_cyb_cudla_slots[4] = &__cudlaModuleLoadFromMemory; _cyb_cudla_names[4] = b'cudlaModuleLoadFromMemory'
96+
_cyb_cudla_slots[5] = &__cudlaModuleGetAttributes; _cyb_cudla_names[5] = b'cudlaModuleGetAttributes'
97+
_cyb_cudla_slots[6] = &__cudlaModuleUnload; _cyb_cudla_names[6] = b'cudlaModuleUnload'
98+
_cyb_cudla_slots[7] = &__cudlaSubmitTask; _cyb_cudla_names[7] = b'cudlaSubmitTask'
99+
_cyb_cudla_slots[8] = &__cudlaDeviceGetAttribute; _cyb_cudla_names[8] = b'cudlaDeviceGetAttribute'
100+
_cyb_cudla_slots[9] = &__cudlaMemUnregister; _cyb_cudla_names[9] = b'cudlaMemUnregister'
101+
_cyb_cudla_slots[10] = &__cudlaGetLastError; _cyb_cudla_names[10] = b'cudlaGetLastError'
102+
_cyb_cudla_slots[11] = &__cudlaDestroyDevice; _cyb_cudla_names[11] = b'cudlaDestroyDevice'
103+
_cyb_cudla_slots[12] = &__cudlaSetTaskTimeoutInMs; _cyb_cudla_names[12] = b'cudlaSetTaskTimeoutInMs'
104+
88105
cdef int _init_cudla() except -1 nogil:
89106
global _cyb___py_cudla_init
90107

91108
cdef int err
92109
cdef uintptr_t handle
110+
cdef Py_ssize_t i
93111
with gil, _cyb_symbol_lock:
94112
if _cyb___py_cudla_init: return 0
95113

96114
handle = load_library()
97-
global __cudlaGetVersion
98-
__cudlaGetVersion = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaGetVersion')
99-
100-
global __cudlaDeviceGetCount
101-
__cudlaDeviceGetCount = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaDeviceGetCount')
102-
103-
global __cudlaCreateDevice
104-
__cudlaCreateDevice = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaCreateDevice')
105-
106-
global __cudlaMemRegister
107-
__cudlaMemRegister = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaMemRegister')
108-
109-
global __cudlaModuleLoadFromMemory
110-
__cudlaModuleLoadFromMemory = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaModuleLoadFromMemory')
111-
112-
global __cudlaModuleGetAttributes
113-
__cudlaModuleGetAttributes = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaModuleGetAttributes')
114-
115-
global __cudlaModuleUnload
116-
__cudlaModuleUnload = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaModuleUnload')
117-
118-
global __cudlaSubmitTask
119-
__cudlaSubmitTask = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaSubmitTask')
120-
121-
global __cudlaDeviceGetAttribute
122-
__cudlaDeviceGetAttribute = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaDeviceGetAttribute')
123-
124-
global __cudlaMemUnregister
125-
__cudlaMemUnregister = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaMemUnregister')
126-
127-
global __cudlaGetLastError
128-
__cudlaGetLastError = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaGetLastError')
129-
130-
global __cudlaDestroyDevice
131-
__cudlaDestroyDevice = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaDestroyDevice')
132-
133-
global __cudlaSetTaskTimeoutInMs
134-
__cudlaSetTaskTimeoutInMs = _cyb_GetProcAddress(<HMODULE>handle, 'cudlaSetTaskTimeoutInMs')
115+
for i in range(_cyb_cudla_n_functions):
116+
_cyb_cudla_slots[i][0] = _cyb_GetProcAddress(<HMODULE>handle, _cyb_cudla_names[i])
135117

136118
_cyb_atomic_int_store(<int *>&_cyb___py_cudla_init, 1)
137119
return 0
@@ -150,44 +132,9 @@ cpdef dict _inspect_function_pointers():
150132

151133
_check_or_init_cudla()
152134
cdef dict data = {}
153-
global __cudlaGetVersion
154-
data["__cudlaGetVersion"] = <intptr_t>__cudlaGetVersion
155-
156-
global __cudlaDeviceGetCount
157-
data["__cudlaDeviceGetCount"] = <intptr_t>__cudlaDeviceGetCount
158-
159-
global __cudlaCreateDevice
160-
data["__cudlaCreateDevice"] = <intptr_t>__cudlaCreateDevice
161-
162-
global __cudlaMemRegister
163-
data["__cudlaMemRegister"] = <intptr_t>__cudlaMemRegister
164-
165-
global __cudlaModuleLoadFromMemory
166-
data["__cudlaModuleLoadFromMemory"] = <intptr_t>__cudlaModuleLoadFromMemory
167-
168-
global __cudlaModuleGetAttributes
169-
data["__cudlaModuleGetAttributes"] = <intptr_t>__cudlaModuleGetAttributes
170-
171-
global __cudlaModuleUnload
172-
data["__cudlaModuleUnload"] = <intptr_t>__cudlaModuleUnload
173-
174-
global __cudlaSubmitTask
175-
data["__cudlaSubmitTask"] = <intptr_t>__cudlaSubmitTask
176-
177-
global __cudlaDeviceGetAttribute
178-
data["__cudlaDeviceGetAttribute"] = <intptr_t>__cudlaDeviceGetAttribute
179-
180-
global __cudlaMemUnregister
181-
data["__cudlaMemUnregister"] = <intptr_t>__cudlaMemUnregister
182-
183-
global __cudlaGetLastError
184-
data["__cudlaGetLastError"] = <intptr_t>__cudlaGetLastError
185-
186-
global __cudlaDestroyDevice
187-
data["__cudlaDestroyDevice"] = <intptr_t>__cudlaDestroyDevice
188-
189-
global __cudlaSetTaskTimeoutInMs
190-
data["__cudlaSetTaskTimeoutInMs"] = <intptr_t>__cudlaSetTaskTimeoutInMs
135+
cdef Py_ssize_t i
136+
for i in range(_cyb_cudla_n_functions):
137+
data['__' + _cyb_cudla_names[i].decode()] = <intptr_t>_cyb_cudla_slots[i][0]
191138
_cyb_func_ptrs = data
192139
return data
193140

0 commit comments

Comments
 (0)