Skip to content

Commit 6469028

Browse files
committed
cuda.core: rename Event.uses_blocking_sync to is_blocking_sync (#1945)
Adopt the is_-prefix convention used everywhere else (is_ipc_enabled, is_timing_enabled, is_nonblocking) and eliminate the lone uses_- form. Keep the _sync suffix so the name disambiguates from Stream's separate "blocking" concept and stays close to the underlying CU_EVENT_BLOCKING_SYNC driver flag. EventOptions.blocking_sync is unchanged. Made-with: Cursor
1 parent 813d3d9 commit 6469028

9 files changed

Lines changed: 38 additions & 38 deletions

File tree

cuda_core/cuda/core/_cpp/resource_handles.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ namespace {
354354
struct EventBox {
355355
CUevent resource;
356356
bool timing_enabled;
357-
bool uses_blocking_sync;
357+
bool is_blocking_sync;
358358
bool ipc_enabled;
359359
int device_id;
360360
ContextHandle h_context;
@@ -372,8 +372,8 @@ bool get_event_timing_enabled(const EventHandle& h) noexcept {
372372
return h ? get_box(h)->timing_enabled : false;
373373
}
374374

375-
bool get_event_uses_blocking_sync(const EventHandle& h) noexcept {
376-
return h ? get_box(h)->uses_blocking_sync : false;
375+
bool get_event_is_blocking_sync(const EventHandle& h) noexcept {
376+
return h ? get_box(h)->is_blocking_sync : false;
377377
}
378378

379379
bool get_event_ipc_enabled(const EventHandle& h) noexcept {
@@ -392,7 +392,7 @@ ContextHandle get_event_context(const EventHandle& h) noexcept {
392392
static HandleRegistry<CUevent, EventHandle> event_registry;
393393

394394
EventHandle create_event_handle(const ContextHandle& h_ctx, unsigned int flags,
395-
bool timing_enabled, bool uses_blocking_sync,
395+
bool timing_enabled, bool is_blocking_sync,
396396
bool ipc_enabled, int device_id) {
397397
GILReleaseGuard gil;
398398
CUevent event;
@@ -401,7 +401,7 @@ EventHandle create_event_handle(const ContextHandle& h_ctx, unsigned int flags,
401401
}
402402

403403
auto box = std::shared_ptr<const EventBox>(
404-
new EventBox{event, timing_enabled, uses_blocking_sync, ipc_enabled, device_id, h_ctx},
404+
new EventBox{event, timing_enabled, is_blocking_sync, ipc_enabled, device_id, h_ctx},
405405
[h_ctx](const EventBox* b) {
406406
event_registry.unregister_handle(b->resource);
407407
GILReleaseGuard gil;
@@ -427,15 +427,15 @@ EventHandle create_event_handle_ref(CUevent event) {
427427
}
428428

429429
EventHandle create_event_handle_ipc(const CUipcEventHandle& ipc_handle,
430-
bool uses_blocking_sync) {
430+
bool is_blocking_sync) {
431431
GILReleaseGuard gil;
432432
CUevent event;
433433
if (CUDA_SUCCESS != (err = p_cuIpcOpenEventHandle(&event, ipc_handle))) {
434434
return {};
435435
}
436436

437437
auto box = std::shared_ptr<const EventBox>(
438-
new EventBox{event, false, uses_blocking_sync, true, -1, {}},
438+
new EventBox{event, false, is_blocking_sync, true, -1, {}},
439439
[](const EventBox* b) {
440440
event_registry.unregister_handle(b->resource);
441441
GILReleaseGuard gil;

cuda_core/cuda/core/_cpp/resource_handles.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ StreamHandle get_per_thread_stream();
211211
// When the last reference is released, cuEventDestroy is called automatically.
212212
// Returns empty handle on error (caller must check).
213213
EventHandle create_event_handle(const ContextHandle& h_ctx, unsigned int flags,
214-
bool timing_enabled, bool uses_blocking_sync,
214+
bool timing_enabled, bool is_blocking_sync,
215215
bool ipc_enabled, int device_id);
216216

217217
// Create an owning event handle without context dependency.
@@ -225,7 +225,7 @@ EventHandle create_event_handle_noctx(unsigned int flags);
225225
// When the last reference is released, cuEventDestroy is called automatically.
226226
// Returns empty handle on error (caller must check).
227227
EventHandle create_event_handle_ipc(const CUipcEventHandle& ipc_handle,
228-
bool uses_blocking_sync);
228+
bool is_blocking_sync);
229229

230230
// Create a non-owning event handle (references existing event).
231231
// Use for events that are managed by the CUDA graph or another owner.
@@ -235,7 +235,7 @@ EventHandle create_event_handle_ref(CUevent event);
235235

236236
// Event metadata accessors (read from EventBox via pointer arithmetic)
237237
bool get_event_timing_enabled(const EventHandle& h) noexcept;
238-
bool get_event_uses_blocking_sync(const EventHandle& h) noexcept;
238+
bool get_event_is_blocking_sync(const EventHandle& h) noexcept;
239239
bool get_event_ipc_enabled(const EventHandle& h) noexcept;
240240
int get_event_device_id(const EventHandle& h) noexcept;
241241
ContextHandle get_event_context(const EventHandle& h) noexcept;

cuda_core/cuda/core/_event.pyx

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ from cuda.core._resource_handles cimport (
1414
create_event_handle,
1515
create_event_handle_ipc,
1616
get_event_timing_enabled,
17-
get_event_uses_blocking_sync,
17+
get_event_is_blocking_sync,
1818
get_event_ipc_enabled,
1919
get_event_device_id,
2020
get_event_context,
@@ -101,15 +101,15 @@ cdef class Event:
101101
cdef EventOptions opts = check_or_create_options(EventOptions, options, "Event options")
102102
cdef unsigned int flags = 0x0
103103
cdef bint timing_enabled = True
104-
cdef bint uses_blocking_sync = False
104+
cdef bint is_blocking_sync = False
105105
cdef bint ipc_enabled = False
106106
self._ipc_descriptor = None
107107
if not opts.timing_enabled:
108108
flags |= cydriver.CUevent_flags.CU_EVENT_DISABLE_TIMING
109109
timing_enabled = False
110110
if opts.blocking_sync:
111111
flags |= cydriver.CUevent_flags.CU_EVENT_BLOCKING_SYNC
112-
uses_blocking_sync = True
112+
is_blocking_sync = True
113113
if opts.ipc_enabled:
114114
if is_free:
115115
raise TypeError(
@@ -120,7 +120,7 @@ cdef class Event:
120120
if timing_enabled:
121121
raise TypeError("IPC-enabled events cannot use timing.")
122122
cdef EventHandle h_event = create_event_handle(
123-
h_context, flags, timing_enabled, uses_blocking_sync, ipc_enabled, device_id)
123+
h_context, flags, timing_enabled, is_blocking_sync, ipc_enabled, device_id)
124124
if not h_event:
125125
raise RuntimeError("Failed to create CUDA event")
126126
self._h_event = h_event
@@ -208,7 +208,7 @@ cdef class Event:
208208
with nogil:
209209
HANDLE_RETURN(cydriver.cuIpcGetEventHandle(&data, as_cu(self._h_event)))
210210
cdef bytes data_b = cpython.PyBytes_FromStringAndSize(<char*>(data.reserved), sizeof(data.reserved))
211-
self._ipc_descriptor = IPCEventDescriptor._init(data_b, get_event_uses_blocking_sync(self._h_event))
211+
self._ipc_descriptor = IPCEventDescriptor._init(data_b, get_event_is_blocking_sync(self._h_event))
212212
return self._ipc_descriptor
213213

214214
@classmethod
@@ -217,7 +217,7 @@ cdef class Event:
217217
cdef cydriver.CUipcEventHandle data
218218
memcpy(data.reserved, <const void*><const char*>(ipc_descriptor._reserved), sizeof(data.reserved))
219219
cdef Event self = Event.__new__(cls)
220-
cdef EventHandle h_event = create_event_handle_ipc(data, ipc_descriptor._uses_blocking_sync)
220+
cdef EventHandle h_event = create_event_handle_ipc(data, ipc_descriptor._is_blocking_sync)
221221
if not h_event:
222222
raise RuntimeError("Failed to open IPC event handle")
223223
self._h_event = h_event
@@ -235,11 +235,11 @@ cdef class Event:
235235
return get_event_timing_enabled(self._h_event)
236236

237237
@property
238-
def uses_blocking_sync(self) -> bool:
238+
def is_blocking_sync(self) -> bool:
239239
"""Return True if the event uses blocking synchronization (the CPU
240240
thread blocks on :meth:`sync` instead of busy-waiting), otherwise False.
241241
"""
242-
return get_event_uses_blocking_sync(self._h_event)
242+
return get_event_is_blocking_sync(self._h_event)
243243

244244
def sync(self):
245245
"""Synchronize until the event completes.
@@ -305,24 +305,24 @@ cdef class IPCEventDescriptor:
305305

306306
cdef:
307307
bytes _reserved
308-
bint _uses_blocking_sync
308+
bint _is_blocking_sync
309309

310310
def __init__(self, *arg, **kwargs):
311311
raise RuntimeError("IPCEventDescriptor objects cannot be instantiated directly. Please use Event APIs.")
312312

313313
@staticmethod
314-
def _init(reserved: bytes, uses_blocking_sync: cython.bint):
314+
def _init(reserved: bytes, is_blocking_sync: cython.bint):
315315
cdef IPCEventDescriptor self = IPCEventDescriptor.__new__(IPCEventDescriptor)
316316
self._reserved = reserved
317-
self._uses_blocking_sync = uses_blocking_sync
317+
self._is_blocking_sync = is_blocking_sync
318318
return self
319319

320320
def __eq__(self, IPCEventDescriptor rhs):
321-
# No need to check self._uses_blocking_sync.
321+
# No need to check self._is_blocking_sync.
322322
return self._reserved == rhs._reserved
323323

324324
def __reduce__(self):
325-
return IPCEventDescriptor._init, (self._reserved, self._uses_blocking_sync)
325+
return IPCEventDescriptor._init, (self._reserved, self._is_blocking_sync)
326326

327327

328328
def _reduce_event(event):

cuda_core/cuda/core/_resource_handles.pxd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,16 @@ cdef StreamHandle get_per_thread_stream() except+ nogil
121121
# Event handles
122122
cdef EventHandle create_event_handle(
123123
const ContextHandle& h_ctx, unsigned int flags,
124-
bint timing_enabled, bint uses_blocking_sync,
124+
bint timing_enabled, bint is_blocking_sync,
125125
bint ipc_enabled, int device_id) except+ nogil
126126
cdef EventHandle create_event_handle_noctx(unsigned int flags) except+ nogil
127127
cdef EventHandle create_event_handle_ref(cydriver.CUevent event) except+ nogil
128128
cdef EventHandle create_event_handle_ipc(
129-
const cydriver.CUipcEventHandle& ipc_handle, bint uses_blocking_sync) except+ nogil
129+
const cydriver.CUipcEventHandle& ipc_handle, bint is_blocking_sync) except+ nogil
130130

131131
# Event metadata getters
132132
cdef bint get_event_timing_enabled(const EventHandle& h) noexcept nogil
133-
cdef bint get_event_uses_blocking_sync(const EventHandle& h) noexcept nogil
133+
cdef bint get_event_is_blocking_sync(const EventHandle& h) noexcept nogil
134134
cdef bint get_event_ipc_enabled(const EventHandle& h) noexcept nogil
135135
cdef int get_event_device_id(const EventHandle& h) noexcept nogil
136136
cdef ContextHandle get_event_context(const EventHandle& h) noexcept nogil

cuda_core/cuda/core/_resource_handles.pyx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,19 @@ cdef extern from "_cpp/resource_handles.hpp" namespace "cuda_core":
7272
# Event handles (note: _create_event_handle* are internal due to C++ overloading)
7373
EventHandle create_event_handle "cuda_core::create_event_handle" (
7474
const ContextHandle& h_ctx, unsigned int flags,
75-
bint timing_enabled, bint uses_blocking_sync,
75+
bint timing_enabled, bint is_blocking_sync,
7676
bint ipc_enabled, int device_id) except+ nogil
7777
EventHandle create_event_handle_noctx "cuda_core::create_event_handle_noctx" (
7878
unsigned int flags) except+ nogil
7979
EventHandle create_event_handle_ref "cuda_core::create_event_handle_ref" (
8080
cydriver.CUevent event) except+ nogil
8181
EventHandle create_event_handle_ipc "cuda_core::create_event_handle_ipc" (
82-
const cydriver.CUipcEventHandle& ipc_handle, bint uses_blocking_sync) except+ nogil
82+
const cydriver.CUipcEventHandle& ipc_handle, bint is_blocking_sync) except+ nogil
8383

8484
# Event metadata getters
8585
bint get_event_timing_enabled "cuda_core::get_event_timing_enabled" (
8686
const EventHandle& h) noexcept nogil
87-
bint get_event_uses_blocking_sync "cuda_core::get_event_uses_blocking_sync" (
87+
bint get_event_is_blocking_sync "cuda_core::get_event_is_blocking_sync" (
8888
const EventHandle& h) noexcept nogil
8989
bint get_event_ipc_enabled "cuda_core::get_event_ipc_enabled" (
9090
const EventHandle& h) noexcept nogil

cuda_core/docs/source/release/1.0.0-notes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Breaking changes
4747
- ``LaunchConfig.cooperative_launch`` -> :attr:`LaunchConfig.is_cooperative`
4848
(also renames the constructor keyword argument).
4949
- ``Event.is_timing_disabled`` -> :attr:`Event.is_timing_enabled`.
50-
- ``Event.is_sync_busy_waited`` -> :attr:`Event.uses_blocking_sync`.
50+
- ``Event.is_sync_busy_waited`` -> :attr:`Event.is_blocking_sync`.
5151
- ``EventOptions.enable_timing`` -> ``EventOptions.timing_enabled``
5252
and ``EventOptions.busy_waited_sync`` -> ``EventOptions.blocking_sync``.
5353

cuda_core/tests/graph/test_graph_definition_lifetime.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ def test_event_record_node_preserves_metadata(init_cuda):
211211

212212
reconstructed = node.event
213213
assert reconstructed.is_timing_enabled is True
214-
assert reconstructed.uses_blocking_sync is True
214+
assert reconstructed.is_blocking_sync is True
215215
assert reconstructed.is_ipc_enabled is False
216216
assert reconstructed.device is not None
217217

@@ -226,7 +226,7 @@ def test_event_wait_node_preserves_metadata(init_cuda):
226226

227227
reconstructed = node.event
228228
assert reconstructed.is_timing_enabled is False
229-
assert reconstructed.uses_blocking_sync is False
229+
assert reconstructed.is_blocking_sync is False
230230
assert reconstructed.device is not None
231231

232232

@@ -243,7 +243,7 @@ def test_event_metadata_survives_gc(init_cuda):
243243

244244
retrieved = node.event
245245
assert retrieved.is_timing_enabled is True
246-
assert retrieved.uses_blocking_sync is True
246+
assert retrieved.is_blocking_sync is True
247247
assert retrieved.is_done is True
248248

249249

cuda_core/tests/memory_ipc/test_event_ipc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def test_main(self, ipc_device, blocking_sync, use_options_cls, use_option_kw):
157157
assert props[0] == e.ipc_descriptor
158158
assert props[1] == e.is_ipc_enabled
159159
assert props[2] == e.is_timing_enabled
160-
assert props[3] == e.uses_blocking_sync
160+
assert props[3] == e.is_blocking_sync
161161
assert props[4] is None
162162
assert props[5] is None
163163

@@ -176,7 +176,7 @@ def child_main(self, q_in, q_out):
176176
e.ipc_descriptor,
177177
e.is_ipc_enabled,
178178
e.is_timing_enabled,
179-
e.uses_blocking_sync,
179+
e.is_blocking_sync,
180180
e.device,
181181
e.context,
182182
)

cuda_core/tests/test_event.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@ def test_timing_success(init_cuda):
4848
assert elapsed_time_ms > 10
4949

5050

51-
def test_uses_blocking_sync(init_cuda):
51+
def test_is_blocking_sync(init_cuda):
5252
options = EventOptions(timing_enabled=False, blocking_sync=True)
5353
stream = Device().create_stream()
5454
event = stream.record(options=options)
55-
assert event.uses_blocking_sync is True
55+
assert event.is_blocking_sync is True
5656

5757
options = EventOptions(timing_enabled=False)
5858
stream = Device().create_stream()
5959
event = stream.record(options=options)
60-
assert event.uses_blocking_sync is False
60+
assert event.is_blocking_sync is False
6161

6262

6363
def test_sync(init_cuda):

0 commit comments

Comments
 (0)