pyopencl 2026.1.1__cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. pyopencl/.libs/libOpenCL-34a55fe4.so.1.0.0 +0 -0
  2. pyopencl/__init__.py +1995 -0
  3. pyopencl/_cl.cpython-314t-aarch64-linux-gnu.so +0 -0
  4. pyopencl/_cl.pyi +2009 -0
  5. pyopencl/_cluda.py +57 -0
  6. pyopencl/_monkeypatch.py +1104 -0
  7. pyopencl/_mymako.py +17 -0
  8. pyopencl/algorithm.py +1454 -0
  9. pyopencl/array.py +3530 -0
  10. pyopencl/bitonic_sort.py +245 -0
  11. pyopencl/bitonic_sort_templates.py +597 -0
  12. pyopencl/cache.py +553 -0
  13. pyopencl/capture_call.py +200 -0
  14. pyopencl/characterize/__init__.py +461 -0
  15. pyopencl/characterize/performance.py +240 -0
  16. pyopencl/cl/pyopencl-airy.cl +324 -0
  17. pyopencl/cl/pyopencl-bessel-j-complex.cl +238 -0
  18. pyopencl/cl/pyopencl-bessel-j.cl +1084 -0
  19. pyopencl/cl/pyopencl-bessel-y.cl +435 -0
  20. pyopencl/cl/pyopencl-complex.h +303 -0
  21. pyopencl/cl/pyopencl-eval-tbl.cl +120 -0
  22. pyopencl/cl/pyopencl-hankel-complex.cl +444 -0
  23. pyopencl/cl/pyopencl-random123/array.h +325 -0
  24. pyopencl/cl/pyopencl-random123/openclfeatures.h +93 -0
  25. pyopencl/cl/pyopencl-random123/philox.cl +486 -0
  26. pyopencl/cl/pyopencl-random123/threefry.cl +864 -0
  27. pyopencl/clmath.py +281 -0
  28. pyopencl/clrandom.py +412 -0
  29. pyopencl/cltypes.py +217 -0
  30. pyopencl/compyte/.gitignore +21 -0
  31. pyopencl/compyte/__init__.py +0 -0
  32. pyopencl/compyte/array.py +211 -0
  33. pyopencl/compyte/dtypes.py +314 -0
  34. pyopencl/compyte/pyproject.toml +49 -0
  35. pyopencl/elementwise.py +1288 -0
  36. pyopencl/invoker.py +417 -0
  37. pyopencl/ipython_ext.py +70 -0
  38. pyopencl/py.typed +0 -0
  39. pyopencl/reduction.py +829 -0
  40. pyopencl/scan.py +1921 -0
  41. pyopencl/tools.py +1680 -0
  42. pyopencl/typing.py +61 -0
  43. pyopencl/version.py +11 -0
  44. pyopencl-2026.1.1.dist-info/METADATA +108 -0
  45. pyopencl-2026.1.1.dist-info/RECORD +47 -0
  46. pyopencl-2026.1.1.dist-info/WHEEL +6 -0
  47. pyopencl-2026.1.1.dist-info/licenses/LICENSE +104 -0
pyopencl/_cl.pyi ADDED
@@ -0,0 +1,2009 @@
1
+ __copyright__ = "Copyright (C) 2025 University of Illinois Board of Trustees"
2
+
3
+ __license__ = """
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+ """
22
+
23
+ from collections.abc import Callable, Hashable, Sequence
24
+ from enum import IntEnum, auto
25
+ from typing import TYPE_CHECKING, Generic, Literal, overload
26
+
27
+ import numpy as np
28
+ from numpy.typing import NDArray
29
+ from typing_extensions import override
30
+
31
+ import pyopencl._monkeypatch
32
+ from pyopencl.typing import DTypeT, HasBufferInterface, KernelArg, SVMInnerT, WaitList
33
+
34
+ if TYPE_CHECKING:
35
+ from pyopencl import Program
36
+
37
+ class _ErrorRecord:
38
+ def __init__(self, msg: str, code: int, routine: str) -> None: ...
39
+ def routine(self) -> str: ...
40
+ def code(self) -> int: ...
41
+ def what(self) -> str: ...
42
+ def is_out_of_memory(self) -> bool: ...
43
+
44
+ class Error(Exception):
45
+ code: int
46
+ routine: str
47
+ what: _ErrorRecord
48
+
49
+ __str__ = pyopencl._monkeypatch.error_str
50
+
51
+ class MemoryError(Error):
52
+ pass
53
+
54
+ class LogicError(Error):
55
+ pass
56
+
57
+ class RuntimeError(Error):
58
+ pass
59
+
60
+ class status_code(IntEnum): # noqa: N801
61
+ SUCCESS = auto()
62
+ DEVICE_NOT_FOUND = auto()
63
+ DEVICE_NOT_AVAILABLE = auto()
64
+ COMPILER_NOT_AVAILABLE = auto()
65
+ MEM_OBJECT_ALLOCATION_FAILURE = auto()
66
+ OUT_OF_RESOURCES = auto()
67
+ OUT_OF_HOST_MEMORY = auto()
68
+ PROFILING_INFO_NOT_AVAILABLE = auto()
69
+ MEM_COPY_OVERLAP = auto()
70
+ IMAGE_FORMAT_MISMATCH = auto()
71
+ IMAGE_FORMAT_NOT_SUPPORTED = auto()
72
+ BUILD_PROGRAM_FAILURE = auto()
73
+ MAP_FAILURE = auto()
74
+ INVALID_VALUE = auto()
75
+ INVALID_DEVICE_TYPE = auto()
76
+ INVALID_PLATFORM = auto()
77
+ INVALID_DEVICE = auto()
78
+ INVALID_CONTEXT = auto()
79
+ INVALID_QUEUE_PROPERTIES = auto()
80
+ INVALID_COMMAND_QUEUE = auto()
81
+ INVALID_HOST_PTR = auto()
82
+ INVALID_MEM_OBJECT = auto()
83
+ INVALID_IMAGE_FORMAT_DESCRIPTOR = auto()
84
+ INVALID_IMAGE_SIZE = auto()
85
+ INVALID_SAMPLER = auto()
86
+ INVALID_BINARY = auto()
87
+ INVALID_BUILD_OPTIONS = auto()
88
+ INVALID_PROGRAM = auto()
89
+ INVALID_PROGRAM_EXECUTABLE = auto()
90
+ INVALID_KERNEL_NAME = auto()
91
+ INVALID_KERNEL_DEFINITION = auto()
92
+ INVALID_KERNEL = auto()
93
+ INVALID_ARG_INDEX = auto()
94
+ INVALID_ARG_VALUE = auto()
95
+ INVALID_ARG_SIZE = auto()
96
+ INVALID_KERNEL_ARGS = auto()
97
+ INVALID_WORK_DIMENSION = auto()
98
+ INVALID_WORK_GROUP_SIZE = auto()
99
+ INVALID_WORK_ITEM_SIZE = auto()
100
+ INVALID_GLOBAL_OFFSET = auto()
101
+ INVALID_EVENT_WAIT_LIST = auto()
102
+ INVALID_EVENT = auto()
103
+ INVALID_OPERATION = auto()
104
+ INVALID_GL_OBJECT = auto()
105
+ INVALID_BUFFER_SIZE = auto()
106
+ INVALID_MIP_LEVEL = auto()
107
+ PLATFORM_NOT_FOUND_KHR = auto()
108
+ MISALIGNED_SUB_BUFFER_OFFSET = auto()
109
+ EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST = auto()
110
+ INVALID_GLOBAL_WORK_SIZE = auto()
111
+ COMPILE_PROGRAM_FAILURE = auto()
112
+ LINKER_NOT_AVAILABLE = auto()
113
+ LINK_PROGRAM_FAILURE = auto()
114
+ DEVICE_PARTITION_FAILED = auto()
115
+ KERNEL_ARG_INFO_NOT_AVAILABLE = auto()
116
+ INVALID_IMAGE_DESCRIPTOR = auto()
117
+ INVALID_COMPILER_OPTIONS = auto()
118
+ INVALID_LINKER_OPTIONS = auto()
119
+ INVALID_DEVICE_PARTITION_COUNT = auto()
120
+ INVALID_PIPE_SIZE = auto()
121
+ INVALID_DEVICE_QUEUE = auto()
122
+ INVALID_SPEC_ID = auto()
123
+ MAX_SIZE_RESTRICTION_EXCEEDED = auto()
124
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
125
+
126
+ class platform_info(IntEnum): # noqa: N801
127
+ PROFILE = auto()
128
+ VERSION = auto()
129
+ NAME = auto()
130
+ VENDOR = auto()
131
+ EXTENSIONS = auto()
132
+ HOST_TIMER_RESOLUTION = auto()
133
+ NUMERIC_VERSION = auto()
134
+ EXTENSIONS_WITH_VERSION = auto()
135
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
136
+
137
+ class device_type(IntEnum): # noqa: N801
138
+ DEFAULT = auto()
139
+ CPU = auto()
140
+ GPU = auto()
141
+ ACCELERATOR = auto()
142
+ CUSTOM = auto()
143
+ ALL = auto()
144
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
145
+
146
+ class device_info(IntEnum): # noqa: N801
147
+ TYPE = auto()
148
+ VENDOR_ID = auto()
149
+ MAX_COMPUTE_UNITS = auto()
150
+ MAX_WORK_ITEM_DIMENSIONS = auto()
151
+ MAX_WORK_GROUP_SIZE = auto()
152
+ MAX_WORK_ITEM_SIZES = auto()
153
+ PREFERRED_VECTOR_WIDTH_CHAR = auto()
154
+ PREFERRED_VECTOR_WIDTH_SHORT = auto()
155
+ PREFERRED_VECTOR_WIDTH_INT = auto()
156
+ PREFERRED_VECTOR_WIDTH_LONG = auto()
157
+ PREFERRED_VECTOR_WIDTH_FLOAT = auto()
158
+ PREFERRED_VECTOR_WIDTH_DOUBLE = auto()
159
+ MAX_CLOCK_FREQUENCY = auto()
160
+ ADDRESS_BITS = auto()
161
+ MAX_READ_IMAGE_ARGS = auto()
162
+ MAX_WRITE_IMAGE_ARGS = auto()
163
+ MAX_MEM_ALLOC_SIZE = auto()
164
+ IMAGE2D_MAX_WIDTH = auto()
165
+ IMAGE2D_MAX_HEIGHT = auto()
166
+ IMAGE3D_MAX_WIDTH = auto()
167
+ IMAGE3D_MAX_HEIGHT = auto()
168
+ IMAGE3D_MAX_DEPTH = auto()
169
+ IMAGE_SUPPORT = auto()
170
+ MAX_PARAMETER_SIZE = auto()
171
+ MAX_SAMPLERS = auto()
172
+ MEM_BASE_ADDR_ALIGN = auto()
173
+ MIN_DATA_TYPE_ALIGN_SIZE = auto()
174
+ SINGLE_FP_CONFIG = auto()
175
+ DOUBLE_FP_CONFIG = auto()
176
+ HALF_FP_CONFIG = auto()
177
+ GLOBAL_MEM_CACHE_TYPE = auto()
178
+ GLOBAL_MEM_CACHELINE_SIZE = auto()
179
+ GLOBAL_MEM_CACHE_SIZE = auto()
180
+ GLOBAL_MEM_SIZE = auto()
181
+ MAX_CONSTANT_BUFFER_SIZE = auto()
182
+ MAX_CONSTANT_ARGS = auto()
183
+ LOCAL_MEM_TYPE = auto()
184
+ LOCAL_MEM_SIZE = auto()
185
+ ERROR_CORRECTION_SUPPORT = auto()
186
+ PROFILING_TIMER_RESOLUTION = auto()
187
+ ENDIAN_LITTLE = auto()
188
+ AVAILABLE = auto()
189
+ COMPILER_AVAILABLE = auto()
190
+ EXECUTION_CAPABILITIES = auto()
191
+ QUEUE_PROPERTIES = auto()
192
+ QUEUE_ON_HOST_PROPERTIES = auto()
193
+ NAME = auto()
194
+ VENDOR = auto()
195
+ DRIVER_VERSION = auto()
196
+ VERSION = auto()
197
+ PROFILE = auto()
198
+ EXTENSIONS = auto()
199
+ PLATFORM = auto()
200
+ PREFERRED_VECTOR_WIDTH_HALF = auto()
201
+ HOST_UNIFIED_MEMORY = auto()
202
+ NATIVE_VECTOR_WIDTH_CHAR = auto()
203
+ NATIVE_VECTOR_WIDTH_SHORT = auto()
204
+ NATIVE_VECTOR_WIDTH_INT = auto()
205
+ NATIVE_VECTOR_WIDTH_LONG = auto()
206
+ NATIVE_VECTOR_WIDTH_FLOAT = auto()
207
+ NATIVE_VECTOR_WIDTH_DOUBLE = auto()
208
+ NATIVE_VECTOR_WIDTH_HALF = auto()
209
+ OPENCL_C_VERSION = auto()
210
+ COMPUTE_CAPABILITY_MAJOR_NV = auto()
211
+ COMPUTE_CAPABILITY_MINOR_NV = auto()
212
+ REGISTERS_PER_BLOCK_NV = auto()
213
+ WARP_SIZE_NV = auto()
214
+ GPU_OVERLAP_NV = auto()
215
+ KERNEL_EXEC_TIMEOUT_NV = auto()
216
+ INTEGRATED_MEMORY_NV = auto()
217
+ ATTRIBUTE_ASYNC_ENGINE_COUNT_NV = auto()
218
+ PCI_BUS_ID_NV = auto()
219
+ PCI_SLOT_ID_NV = auto()
220
+ PCI_DOMAIN_ID_NV = auto()
221
+ PROFILING_TIMER_OFFSET_AMD = auto()
222
+ TOPOLOGY_AMD = auto()
223
+ BOARD_NAME_AMD = auto()
224
+ GLOBAL_FREE_MEMORY_AMD = auto()
225
+ SIMD_PER_COMPUTE_UNIT_AMD = auto()
226
+ SIMD_WIDTH_AMD = auto()
227
+ SIMD_INSTRUCTION_WIDTH_AMD = auto()
228
+ WAVEFRONT_WIDTH_AMD = auto()
229
+ GLOBAL_MEM_CHANNELS_AMD = auto()
230
+ GLOBAL_MEM_CHANNEL_BANKS_AMD = auto()
231
+ GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD = auto()
232
+ LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD = auto()
233
+ LOCAL_MEM_BANKS_AMD = auto()
234
+ THREAD_TRACE_SUPPORTED_AMD = auto()
235
+ GFXIP_MAJOR_AMD = auto()
236
+ GFXIP_MINOR_AMD = auto()
237
+ AVAILABLE_ASYNC_QUEUES_AMD = auto()
238
+ PREFERRED_WORK_GROUP_SIZE_AMD = auto()
239
+ MAX_WORK_GROUP_SIZE_AMD = auto()
240
+ PREFERRED_CONSTANT_BUFFER_SIZE_AMD = auto()
241
+ PCIE_ID_AMD = auto()
242
+ MAX_ATOMIC_COUNTERS_EXT = auto()
243
+ LINKER_AVAILABLE = auto()
244
+ BUILT_IN_KERNELS = auto()
245
+ IMAGE_MAX_BUFFER_SIZE = auto()
246
+ IMAGE_MAX_ARRAY_SIZE = auto()
247
+ PARENT_DEVICE = auto()
248
+ PARTITION_MAX_SUB_DEVICES = auto()
249
+ PARTITION_PROPERTIES = auto()
250
+ PARTITION_AFFINITY_DOMAIN = auto()
251
+ PARTITION_TYPE = auto()
252
+ REFERENCE_COUNT = auto()
253
+ PREFERRED_INTEROP_USER_SYNC = auto()
254
+ PRINTF_BUFFER_SIZE = auto()
255
+ IMAGE_PITCH_ALIGNMENT = auto()
256
+ IMAGE_BASE_ADDRESS_ALIGNMENT = auto()
257
+ MAX_READ_WRITE_IMAGE_ARGS = auto()
258
+ MAX_GLOBAL_VARIABLE_SIZE = auto()
259
+ QUEUE_ON_DEVICE_PROPERTIES = auto()
260
+ QUEUE_ON_DEVICE_PREFERRED_SIZE = auto()
261
+ QUEUE_ON_DEVICE_MAX_SIZE = auto()
262
+ MAX_ON_DEVICE_QUEUES = auto()
263
+ MAX_ON_DEVICE_EVENTS = auto()
264
+ SVM_CAPABILITIES = auto()
265
+ GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE = auto()
266
+ MAX_PIPE_ARGS = auto()
267
+ PIPE_MAX_ACTIVE_RESERVATIONS = auto()
268
+ PIPE_MAX_PACKET_SIZE = auto()
269
+ PREFERRED_PLATFORM_ATOMIC_ALIGNMENT = auto()
270
+ PREFERRED_GLOBAL_ATOMIC_ALIGNMENT = auto()
271
+ PREFERRED_LOCAL_ATOMIC_ALIGNMENT = auto()
272
+ IL_VERSION = auto()
273
+ MAX_NUM_SUB_GROUPS = auto()
274
+ SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS = auto()
275
+ NUMERIC_VERSION = auto()
276
+ EXTENSIONS_WITH_VERSION = auto()
277
+ ILS_WITH_VERSION = auto()
278
+ BUILT_IN_KERNELS_WITH_VERSION = auto()
279
+ ATOMIC_MEMORY_CAPABILITIES = auto()
280
+ ATOMIC_FENCE_CAPABILITIES = auto()
281
+ NON_UNIFORM_WORK_GROUP_SUPPORT = auto()
282
+ OPENCL_C_ALL_VERSIONS = auto()
283
+ PREFERRED_WORK_GROUP_SIZE_MULTIPLE = auto()
284
+ WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT = auto()
285
+ GENERIC_ADDRESS_SPACE_SUPPORT = auto()
286
+ OPENCL_C_FEATURES = auto()
287
+ DEVICE_ENQUEUE_CAPABILITIES = auto()
288
+ PIPE_SUPPORT = auto()
289
+ ME_VERSION_INTEL = auto()
290
+ EXT_MEM_PADDING_IN_BYTES_QCOM = auto()
291
+ PAGE_SIZE_QCOM = auto()
292
+ SPIR_VERSIONS = auto()
293
+ SIMULTANEOUS_INTEROPS_INTEL = auto()
294
+ NUM_SIMULTANEOUS_INTEROPS_INTEL = auto()
295
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
296
+
297
+ class device_topology_type_amd(IntEnum): # noqa: N801
298
+ PCIE = auto()
299
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
300
+
301
+ class device_fp_config(IntEnum): # noqa: N801
302
+ DENORM = auto()
303
+ INF_NAN = auto()
304
+ ROUND_TO_NEAREST = auto()
305
+ ROUND_TO_ZERO = auto()
306
+ ROUND_TO_INF = auto()
307
+ FMA = auto()
308
+ SOFT_FLOAT = auto()
309
+ CORRECTLY_ROUNDED_DIVIDE_SQRT = auto()
310
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
311
+
312
+ class device_mem_cache_type(IntEnum): # noqa: N801
313
+ NONE = auto()
314
+ READ_ONLY_CACHE = auto()
315
+ READ_WRITE_CACHE = auto()
316
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
317
+
318
+ class device_local_mem_type(IntEnum): # noqa: N801
319
+ LOCAL = auto()
320
+ GLOBAL = auto()
321
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
322
+
323
+ class device_exec_capabilities(IntEnum): # noqa: N801
324
+ KERNEL = auto()
325
+ NATIVE_KERNEL = auto()
326
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
327
+
328
+ class device_svm_capabilities(IntEnum): # noqa: N801
329
+ COARSE_GRAIN_BUFFER = auto()
330
+ FINE_GRAIN_BUFFER = auto()
331
+ FINE_GRAIN_SYSTEM = auto()
332
+ ATOMICS = auto()
333
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
334
+
335
+ class command_queue_properties(IntEnum): # noqa: N801
336
+ _zero = 0
337
+ OUT_OF_ORDER_EXEC_MODE_ENABLE = auto()
338
+ PROFILING_ENABLE = auto()
339
+ ON_DEVICE = auto()
340
+ ON_DEVICE_DEFAULT = auto()
341
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
342
+
343
+ class context_info(IntEnum): # noqa: N801
344
+ REFERENCE_COUNT = auto()
345
+ DEVICES = auto()
346
+ PROPERTIES = auto()
347
+ NUM_DEVICES = auto()
348
+ INTEROP_USER_SYNC = auto()
349
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
350
+
351
+ class gl_context_info(IntEnum): # noqa: N801
352
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
353
+
354
+ class context_properties(IntEnum): # noqa: N801
355
+ PLATFORM = auto()
356
+ OFFLINE_DEVICES_AMD = auto()
357
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
358
+
359
+ class command_queue_info(IntEnum): # noqa: N801
360
+ CONTEXT = auto()
361
+ DEVICE = auto()
362
+ REFERENCE_COUNT = auto()
363
+ PROPERTIES = auto()
364
+ PROPERTIES_ARRAY = auto()
365
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
366
+
367
+ class queue_properties(IntEnum): # noqa: N801
368
+ PROPERTIES = auto()
369
+ SIZE = auto()
370
+ DEVICE_DEFAULT = auto()
371
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
372
+
373
+ class mem_flags(IntEnum): # noqa: N801
374
+ READ_WRITE = auto()
375
+ WRITE_ONLY = auto()
376
+ READ_ONLY = auto()
377
+ USE_HOST_PTR = auto()
378
+ ALLOC_HOST_PTR = auto()
379
+ COPY_HOST_PTR = auto()
380
+ USE_PERSISTENT_MEM_AMD = auto()
381
+ HOST_WRITE_ONLY = auto()
382
+ HOST_READ_ONLY = auto()
383
+ HOST_NO_ACCESS = auto()
384
+ KERNEL_READ_AND_WRITE = auto()
385
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
386
+
387
+ class svm_mem_flags(IntEnum): # noqa: N801
388
+ READ_WRITE = auto()
389
+ WRITE_ONLY = auto()
390
+ READ_ONLY = auto()
391
+ SVM_FINE_GRAIN_BUFFER = auto()
392
+ SVM_ATOMICS = auto()
393
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
394
+
395
+ class channel_order(IntEnum): # noqa: N801
396
+ R = auto()
397
+ A = auto()
398
+ RG = auto()
399
+ RA = auto()
400
+ RGB = auto()
401
+ RGBA = auto()
402
+ BGRA = auto()
403
+ INTENSITY = auto()
404
+ LUMINANCE = auto()
405
+ Rx = auto()
406
+ RGx = auto()
407
+ RGBx = auto()
408
+ sRGB = auto() # noqa: N815
409
+ sRGBx = auto() # noqa: N815
410
+ sRGBA = auto() # noqa: N815
411
+ sBGRA = auto() # noqa: N815
412
+ ABGR = auto()
413
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
414
+
415
+ class channel_type(IntEnum): # noqa: N801
416
+ SNORM_INT8 = auto()
417
+ SNORM_INT16 = auto()
418
+ UNORM_INT8 = auto()
419
+ UNORM_INT16 = auto()
420
+ UNORM_SHORT_565 = auto()
421
+ UNORM_SHORT_555 = auto()
422
+ UNORM_INT_101010 = auto()
423
+ SIGNED_INT8 = auto()
424
+ SIGNED_INT16 = auto()
425
+ SIGNED_INT32 = auto()
426
+ UNSIGNED_INT8 = auto()
427
+ UNSIGNED_INT16 = auto()
428
+ UNSIGNED_INT32 = auto()
429
+ HALF_FLOAT = auto()
430
+ FLOAT = auto()
431
+ UNORM_INT_101010_2 = auto()
432
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
433
+
434
+ class mem_object_type(IntEnum): # noqa: N801
435
+ BUFFER = auto()
436
+ IMAGE2D = auto()
437
+ IMAGE3D = auto()
438
+ IMAGE2D_ARRAY = auto()
439
+ IMAGE1D = auto()
440
+ IMAGE1D_ARRAY = auto()
441
+ IMAGE1D_BUFFER = auto()
442
+ PIPE = auto()
443
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
444
+
445
+ class mem_info(IntEnum): # noqa: N801
446
+ TYPE = auto()
447
+ FLAGS = auto()
448
+ SIZE = auto()
449
+ HOST_PTR = auto()
450
+ MAP_COUNT = auto()
451
+ REFERENCE_COUNT = auto()
452
+ CONTEXT = auto()
453
+ ASSOCIATED_MEMOBJECT = auto()
454
+ OFFSET = auto()
455
+ USES_SVM_POINTER = auto()
456
+ PROPERTIES = auto()
457
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
458
+
459
+ class image_info(IntEnum): # noqa: N801
460
+ FORMAT = auto()
461
+ ELEMENT_SIZE = auto()
462
+ ROW_PITCH = auto()
463
+ SLICE_PITCH = auto()
464
+ WIDTH = auto()
465
+ HEIGHT = auto()
466
+ DEPTH = auto()
467
+ ARRAY_SIZE = auto()
468
+ BUFFER = auto()
469
+ NUM_MIP_LEVELS = auto()
470
+ NUM_SAMPLES = auto()
471
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
472
+
473
+ class pipe_info(IntEnum): # noqa: N801
474
+ PACKET_SIZE = auto()
475
+ MAX_PACKETS = auto()
476
+ PROPERTIES = auto()
477
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
478
+
479
+ class pipe_properties(IntEnum): # noqa: N801
480
+ PACKET_SIZE = auto()
481
+ MAX_PACKETS = auto()
482
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
483
+
484
+ class addressing_mode(IntEnum): # noqa: N801
485
+ NONE = auto()
486
+ CLAMP_TO_EDGE = auto()
487
+ CLAMP = auto()
488
+ REPEAT = auto()
489
+ MIRRORED_REPEAT = auto()
490
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
491
+
492
+ class filter_mode(IntEnum): # noqa: N801
493
+ NEAREST = auto()
494
+ LINEAR = auto()
495
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
496
+
497
+ class sampler_info(IntEnum): # noqa: N801
498
+ REFERENCE_COUNT = auto()
499
+ CONTEXT = auto()
500
+ NORMALIZED_COORDS = auto()
501
+ ADDRESSING_MODE = auto()
502
+ FILTER_MODE = auto()
503
+ MIP_FILTER_MODE = auto()
504
+ LOD_MIN = auto()
505
+ LOD_MAX = auto()
506
+ PROPERTIES = auto()
507
+ MIP_FILTER_MODE_KHR = auto()
508
+ LOD_MIN_KHR = auto()
509
+ LOD_MAX_KHR = auto()
510
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
511
+
512
+ class sampler_properties(IntEnum): # noqa: N801
513
+ NORMALIZED_COORDS = auto()
514
+ ADDRESSING_MODE = auto()
515
+ FILTER_MODE = auto()
516
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
517
+
518
+ class map_flags(IntEnum): # noqa: N801
519
+ READ = auto()
520
+ WRITE = auto()
521
+ WRITE_INVALIDATE_REGION = auto()
522
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
523
+
524
+ class program_info(IntEnum): # noqa: N801
525
+ REFERENCE_COUNT = auto()
526
+ CONTEXT = auto()
527
+ NUM_DEVICES = auto()
528
+ DEVICES = auto()
529
+ SOURCE = auto()
530
+ BINARY_SIZES = auto()
531
+ BINARIES = auto()
532
+ NUM_KERNELS = auto()
533
+ KERNEL_NAMES = auto()
534
+ IL = auto()
535
+ SCOPE_GLOBAL_CTORS_PRESENT = auto()
536
+ SCOPE_GLOBAL_DTORS_PRESENT = auto()
537
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
538
+
539
+ class program_build_info(IntEnum): # noqa: N801
540
+ STATUS = auto()
541
+ OPTIONS = auto()
542
+ LOG = auto()
543
+ BINARY_TYPE = auto()
544
+ GLOBAL_VARIABLE_TOTAL_SIZE = auto()
545
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
546
+
547
+ class program_binary_type(IntEnum): # noqa: N801
548
+ NONE = auto()
549
+ COMPILED_OBJECT = auto()
550
+ LIBRARY = auto()
551
+ EXECUTABLE = auto()
552
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
553
+
554
+ class kernel_info(IntEnum): # noqa: N801
555
+ FUNCTION_NAME = auto()
556
+ NUM_ARGS = auto()
557
+ REFERENCE_COUNT = auto()
558
+ CONTEXT = auto()
559
+ PROGRAM = auto()
560
+ ATTRIBUTES = auto()
561
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
562
+
563
+ class kernel_arg_info(IntEnum): # noqa: N801
564
+ ADDRESS_QUALIFIER = auto()
565
+ ACCESS_QUALIFIER = auto()
566
+ TYPE_NAME = auto()
567
+ TYPE_QUALIFIER = auto()
568
+ NAME = auto()
569
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
570
+
571
+ class kernel_arg_address_qualifier(IntEnum): # noqa: N801
572
+ GLOBAL = auto()
573
+ LOCAL = auto()
574
+ CONSTANT = auto()
575
+ PRIVATE = auto()
576
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
577
+
578
+ class kernel_arg_access_qualifier(IntEnum): # noqa: N801
579
+ READ_ONLY = auto()
580
+ WRITE_ONLY = auto()
581
+ READ_WRITE = auto()
582
+ NONE = auto()
583
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
584
+
585
+ class kernel_arg_type_qualifier(IntEnum): # noqa: N801
586
+ NONE = auto()
587
+ CONST = auto()
588
+ RESTRICT = auto()
589
+ VOLATILE = auto()
590
+ PIPE = auto()
591
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
592
+
593
+ class kernel_work_group_info(IntEnum): # noqa: N801
594
+ WORK_GROUP_SIZE = 0x11B0
595
+ COMPILE_WORK_GROUP_SIZE = 0x11B1
596
+ LOCAL_MEM_SIZE = 0x11B2
597
+ PREFERRED_WORK_GROUP_SIZE_MULTIPLE = 0x11B3
598
+ PRIVATE_MEM_SIZE = 0x11B4
599
+ GLOBAL_WORK_SIZE = 0x11B5
600
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
601
+
602
+ class kernel_sub_group_info(IntEnum): # noqa: N801
603
+ MAX_SUB_GROUP_SIZE_FOR_NDRANGE = auto()
604
+ SUB_GROUP_COUNT_FOR_NDRANGE = auto()
605
+ LOCAL_SIZE_FOR_SUB_GROUP_COUNT = auto()
606
+ MAX_NUM_SUB_GROUPS = auto()
607
+ COMPILE_NUM_SUB_GROUPS = auto()
608
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
609
+
610
+ class event_info(IntEnum): # noqa: N801
611
+ COMMAND_QUEUE = auto()
612
+ COMMAND_TYPE = auto()
613
+ REFERENCE_COUNT = auto()
614
+ COMMAND_EXECUTION_STATUS = auto()
615
+ CONTEXT = auto()
616
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
617
+
618
+ class command_type(IntEnum): # noqa: N801
619
+ NDRANGE_KERNEL = auto()
620
+ TASK = auto()
621
+ NATIVE_KERNEL = auto()
622
+ READ_BUFFER = auto()
623
+ WRITE_BUFFER = auto()
624
+ COPY_BUFFER = auto()
625
+ READ_IMAGE = auto()
626
+ WRITE_IMAGE = auto()
627
+ COPY_IMAGE = auto()
628
+ COPY_IMAGE_TO_BUFFER = auto()
629
+ COPY_BUFFER_TO_IMAGE = auto()
630
+ MAP_BUFFER = auto()
631
+ MAP_IMAGE = auto()
632
+ UNMAP_MEM_OBJECT = auto()
633
+ MARKER = auto()
634
+ ACQUIRE_GL_OBJECTS = auto()
635
+ RELEASE_GL_OBJECTS = auto()
636
+ READ_BUFFER_RECT = auto()
637
+ WRITE_BUFFER_RECT = auto()
638
+ COPY_BUFFER_RECT = auto()
639
+ USER = auto()
640
+ BARRIER = auto()
641
+ MIGRATE_MEM_OBJECTS = auto()
642
+ FILL_BUFFER = auto()
643
+ FILL_IMAGE = auto()
644
+ SVM_FREE = auto()
645
+ SVM_MEMCPY = auto()
646
+ SVM_MEMFILL = auto()
647
+ SVM_MAP = auto()
648
+ SVM_UNMAP = auto()
649
+ SVM_MIGRATE_MEM = auto()
650
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
651
+
652
+ class command_execution_status(IntEnum): # noqa: N801
653
+ COMPLETE = auto()
654
+ RUNNING = auto()
655
+ SUBMITTED = auto()
656
+ QUEUED = auto()
657
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
658
+
659
+ class profiling_info(IntEnum): # noqa: N801
660
+ QUEUED = auto()
661
+ SUBMIT = auto()
662
+ START = auto()
663
+ END = auto()
664
+ COMPLETE = auto()
665
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
666
+
667
+ class mem_migration_flags(IntEnum): # noqa: N801
668
+ HOST = auto()
669
+ CONTENT_UNDEFINED = auto()
670
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
671
+
672
+ class device_partition_property(IntEnum): # noqa: N801
673
+ EQUALLY = auto()
674
+ BY_COUNTS = auto()
675
+ BY_COUNTS_LIST_END = auto()
676
+ BY_AFFINITY_DOMAIN = auto()
677
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
678
+
679
+ class device_affinity_domain(IntEnum): # noqa: N801
680
+ NUMA = auto()
681
+ L4_CACHE = auto()
682
+ L3_CACHE = auto()
683
+ L2_CACHE = auto()
684
+ L1_CACHE = auto()
685
+ NEXT_PARTITIONABLE = auto()
686
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
687
+
688
+ class device_atomic_capabilities(IntEnum): # noqa: N801
689
+ ORDER_RELAXED = auto()
690
+ ORDER_ACQ_REL = auto()
691
+ ORDER_SEQ_CST = auto()
692
+ SCOPE_WORK_ITEM = auto()
693
+ SCOPE_WORK_GROUP = auto()
694
+ SCOPE_DEVICE = auto()
695
+ SCOPE_ALL_DEVICES = auto()
696
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
697
+
698
+ class device_device_enqueue_capabilities(IntEnum): # noqa: N801
699
+ SUPPORTED = auto()
700
+ REPLACEABLE_DEFAULT = auto()
701
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
702
+
703
+ class version_bits(IntEnum): # noqa: N801
704
+ MAJOR_BITS = auto()
705
+ MINOR_BITS = auto()
706
+ PATCH_BITS = auto()
707
+ MAJOR_MASK = auto()
708
+ MINOR_MASK = auto()
709
+ PATCH_MASK = auto()
710
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
711
+
712
+ class khronos_vendor_id(IntEnum): # noqa: N801
713
+ CODEPLAY = auto()
714
+
715
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
716
+
717
+ class gl_object_type(IntEnum): # noqa: N801
718
+ BUFFER = auto()
719
+ TEXTURE2D = auto()
720
+ TEXTURE3D = auto()
721
+ RENDERBUFFER = auto()
722
+
723
+ to_string = pyopencl._monkeypatch.to_string
724
+
725
+ class gl_texture_info(IntEnum): # noqa: N801
726
+ TEXTURE_TARGET = auto()
727
+ MIPMAP_LEVEL = auto()
728
+
729
+ to_string = pyopencl._monkeypatch.to_string
730
+
731
+ class NameVersion:
732
+ def __init__(self, version: int = 0, name: str = "") -> None: ...
733
+
734
+ @property
735
+ def version(self) -> int: ...
736
+
737
+ @version.setter
738
+ def version(self, arg: int, /) -> None: ...
739
+
740
+ @property
741
+ def name(self) -> str: ...
742
+
743
+ @name.setter
744
+ def name(self, arg: str, /) -> None: ...
745
+
746
+ class DeviceTopologyAmd:
747
+ def __init__(self, bus: int = 0, device: int = 0, function: int = 0) -> None: ...
748
+
749
+ @property
750
+ def type(self) -> int: ...
751
+
752
+ @type.setter
753
+ def type(self, arg: int, /) -> None: ...
754
+
755
+ @property
756
+ def bus(self) -> int: ...
757
+
758
+ @bus.setter
759
+ def bus(self, arg: int, /) -> None: ...
760
+
761
+ @property
762
+ def device(self) -> int: ...
763
+
764
+ @device.setter
765
+ def device(self, arg: int, /) -> None: ...
766
+
767
+ @property
768
+ def function(self) -> int: ...
769
+
770
+ @function.setter
771
+ def function(self, arg: int, /) -> None: ...
772
+
773
+ def get_cl_header_version() -> tuple[int, int]: ...
774
+
775
+ def get_platforms() -> list[Platform]: ...
776
+
777
+ class Platform:
778
+ def get_info(self, arg: platform_info, /) -> object: ...
779
+
780
+ def get_devices(self, device_type: int = 4294967295) -> list[Device]: ...
781
+
782
+ @override
783
+ def __hash__(self) -> int: ...
784
+
785
+ @overload
786
+ def __eq__(self, arg: Platform, /) -> bool: ...
787
+
788
+ @overload
789
+ def __eq__(self, obj: object | None) -> bool: ...
790
+
791
+ @staticmethod
792
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Platform: ...
793
+
794
+ @property
795
+ def int_ptr(self) -> int: ...
796
+
797
+ __repr__ = pyopencl._monkeypatch.platform_repr
798
+
799
+ _get_cl_version = pyopencl._monkeypatch.generic_get_cl_version
800
+
801
+ profile: str
802
+ version: str
803
+ name: str
804
+ vendor: str
805
+ extensions: str
806
+ host_timer_resolution: int
807
+ numeric_version: int
808
+ extensions_with_version: Sequence[NameVersion]
809
+
810
+ class Device:
811
+ def get_info(self, arg: device_info, /) -> object: ...
812
+
813
+ @overload
814
+ def __eq__(self, arg: Device, /) -> bool: ...
815
+
816
+ @overload
817
+ def __eq__(self, obj: object | None) -> bool: ...
818
+
819
+ @override
820
+ def __hash__(self) -> int: ...
821
+
822
+ def create_sub_devices(self,
823
+ arg: Sequence[device_partition_property],
824
+ /) -> list[Device]: ...
825
+
826
+ @staticmethod
827
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Device: ...
828
+
829
+ @property
830
+ def int_ptr(self) -> int: ...
831
+
832
+ def device_and_host_timer(self) -> tuple[int, int]: ...
833
+
834
+ def host_timer(self) -> int: ...
835
+
836
+ _get_cl_version = pyopencl._monkeypatch.generic_get_cl_version
837
+
838
+ __repr__ = pyopencl._monkeypatch.device_repr
839
+
840
+ @property
841
+ def hashable_model_and_version_identifier(self) -> Hashable: ...
842
+
843
+ type: device_type
844
+ vendor_id: int
845
+ max_compute_units: int
846
+ max_work_item_dimensions: int
847
+ max_work_group_size: int
848
+ max_work_item_sizes: Sequence[int]
849
+ preferred_vector_width_char: int
850
+ preferred_vector_width_short: int
851
+ preferred_vector_width_int: int
852
+ preferred_vector_width_long: int
853
+ preferred_vector_width_float: int
854
+ preferred_vector_width_double: int
855
+ max_clock_frequency: int
856
+ address_bits: int
857
+ max_read_image_args: int
858
+ max_write_image_args: int
859
+ max_mem_alloc_size: int
860
+ image2d_max_width: int
861
+ image2d_max_height: int
862
+ image3d_max_width: int
863
+ image3d_max_height: int
864
+ image3d_max_depth: int
865
+ image_support: bool
866
+ max_parameter_size: int
867
+ max_samplers: int
868
+ mem_base_addr_align: int
869
+ min_data_type_align_size: int
870
+ single_fp_config: int
871
+ double_fp_config: int
872
+ half_fp_config: int
873
+ global_mem_cache_type: device_mem_cache_type
874
+ global_mem_cacheline_size: int
875
+ global_mem_cache_size: int
876
+ global_mem_size: int
877
+ max_constant_buffer_size: int
878
+ max_constant_args: int
879
+ local_mem_type: device_local_mem_type
880
+ local_mem_size: int
881
+ error_correction_support: bool
882
+ profiling_timer_resolution: int
883
+ endian_little: bool
884
+ available: bool
885
+ compiler_available: bool
886
+ execution_capabilities: int
887
+ queue_properties: int
888
+ queue_on_host_properties: int
889
+ name: str
890
+ vendor: str
891
+ driver_version: str
892
+ version: str
893
+ profile: str
894
+ extensions: str
895
+ platform: Platform
896
+ preferred_vector_width_half: int
897
+ host_unified_memory: bool
898
+ native_vector_width_char: int
899
+ native_vector_width_short: int
900
+ native_vector_width_int: int
901
+ native_vector_width_long: int
902
+ native_vector_width_float: int
903
+ native_vector_width_double: int
904
+ native_vector_width_half: int
905
+ opencl_c_version: str
906
+ compute_capability_major_nv: int
907
+ compute_capability_minor_nv: int
908
+ registers_per_block_nv: int
909
+ warp_size_nv: int
910
+ gpu_overlap_nv: bool
911
+ kernel_exec_timeout_nv: bool
912
+ integrated_memory_nv: bool
913
+ attribute_async_engine_count_nv: int
914
+ pci_bus_id_nv: int
915
+ pci_slot_id_nv: int
916
+ pci_domain_id_nv: int
917
+ profiling_timer_offset_amd: int
918
+ topology_amd: DeviceTopologyAmd
919
+ board_name_amd: str
920
+ global_free_memory_amd: int
921
+ simd_per_compute_unit_amd: int
922
+ simd_width_amd: int
923
+ simd_instruction_width_amd: int
924
+ wavefront_width_amd: int
925
+ global_mem_channels_amd: int
926
+ global_mem_channel_banks_amd: int
927
+ global_mem_channel_bank_width_amd: int
928
+ local_mem_size_per_compute_unit_amd: int
929
+ local_mem_banks_amd: int
930
+ thread_trace_supported_amd: int
931
+ gfxip_major_amd: int
932
+ gfxip_minor_amd: int
933
+ available_async_queues_amd: int
934
+ # preferred_work_group_size_amd
935
+ # max_work_group_size_amd
936
+ # preferred_constant_buffer_size_amd
937
+ # pcie_id_amd
938
+ max_atomic_counters_ext: int
939
+ linker_available: bool
940
+ built_in_kernels: str
941
+ image_max_buffer_size: int
942
+ image_max_array_size: int
943
+ parent_device: Device
944
+ partition_max_sub_devices: int
945
+ partition_properties: int
946
+ partition_affinity_domain: device_affinity_domain
947
+ partition_type: device_partition_property
948
+ reference_count: int
949
+ preferred_interop_user_sync: bool
950
+ printf_buffer_size: int
951
+ # image_pitch_alignment
952
+ # image_base_address_alignment
953
+ max_read_write_image_args: int
954
+ max_global_variable_size: int
955
+ queue_on_device_properties: command_queue_properties
956
+ queue_on_device_preferred_size: int
957
+ queue_on_device_max_size: int
958
+ max_on_device_queues: int
959
+ max_on_device_events: int
960
+ svm_capabilities: device_svm_capabilities
961
+ global_variable_preferred_total_size: int
962
+ max_pipe_args: int
963
+ pipe_max_active_reservations: int
964
+ pipe_max_packet_size: int
965
+ preferred_platform_atomic_alignment: int
966
+ preferred_global_atomic_alignment: int
967
+ preferred_local_atomic_alignment: int
968
+ il_version: int
969
+ max_num_sub_groups: int
970
+ sub_group_independent_forward_progress: bool
971
+ numeric_version: int
972
+ extensions_with_version: Sequence[NameVersion]
973
+ ils_with_version: Sequence[NameVersion]
974
+ built_in_kernels_with_version: Sequence[NameVersion]
975
+ atomic_memory_capabilities: device_atomic_capabilities
976
+ atomic_fence_capabilities: device_atomic_capabilities
977
+ non_uniform_work_group_support: bool
978
+ opencl_c_all_versions: Sequence[NameVersion]
979
+ preferred_work_group_size_multiple: int
980
+ work_group_collective_functions_support: bool
981
+ generic_address_space_support: bool
982
+ opencl_c_features: Sequence[NameVersion]
983
+ device_enqueue_capabilities: device_device_enqueue_capabilities
984
+ pipe_support: bool
985
+ me_version_intel: int
986
+ ext_mem_padding_in_bytes_qcom: int
987
+ page_size_qcom: int
988
+ spir_versions: str
989
+ simultaneous_interops_intel: Sequence[Device]
990
+ num_simultaneous_interops_intel: int
991
+
992
+ class Context:
993
+ def __init__(self,
994
+ devices: Sequence[Device] | None = None,
995
+ properties: Sequence[context_properties] | None = None,
996
+ dev_type: device_type | None = None
997
+ ) -> None: ...
998
+
999
+ def get_info(self, arg: context_info, /) -> object: ...
1000
+
1001
+ @overload
1002
+ def __eq__(self, arg: Context, /) -> bool: ...
1003
+
1004
+ @overload
1005
+ def __eq__(self, obj: object | None) -> bool: ...
1006
+
1007
+ @override
1008
+ def __hash__(self) -> int: ...
1009
+
1010
+ @staticmethod
1011
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Context: ...
1012
+
1013
+ @property
1014
+ def int_ptr(self) -> int: ...
1015
+
1016
+ def set_default_device_command_queue(self,
1017
+ device: Device,
1018
+ queue: CommandQueue,
1019
+ /) -> None: ...
1020
+
1021
+ _get_cl_version = pyopencl._monkeypatch.context_get_cl_version
1022
+
1023
+ __repr__ = pyopencl._monkeypatch.context_repr
1024
+
1025
+ reference_count: int
1026
+ devices: Sequence[Device]
1027
+ properties: Sequence[int]
1028
+ num_devices: int
1029
+ # interop_user_sync:
1030
+
1031
+ class CommandQueue:
1032
+ def __init__(self,
1033
+ context: Context,
1034
+ device: Device | None = None,
1035
+ properties: command_queue_properties = command_queue_properties._zero
1036
+ ) -> None: ...
1037
+
1038
+ def _finalize(self) -> None: ...
1039
+
1040
+ def get_info(self, arg: command_queue_info, /) -> object: ...
1041
+
1042
+ def flush(self) -> None: ...
1043
+
1044
+ def finish(self) -> None: ...
1045
+
1046
+ @overload
1047
+ def __eq__(self, arg: CommandQueue, /) -> bool: ...
1048
+
1049
+ @overload
1050
+ def __eq__(self, obj: object | None) -> bool: ...
1051
+
1052
+ @override
1053
+ def __hash__(self) -> int: ...
1054
+
1055
+ @staticmethod
1056
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> CommandQueue: ...
1057
+
1058
+ @property
1059
+ def int_ptr(self) -> int: ...
1060
+
1061
+ _get_cl_version = pyopencl._monkeypatch.command_queue_get_cl_version
1062
+
1063
+ __enter__ = pyopencl._monkeypatch.command_queue_enter
1064
+
1065
+ __exit__ = pyopencl._monkeypatch.command_queue_exit
1066
+
1067
+ context: Context
1068
+ device: Device
1069
+
1070
+ reference_count: int
1071
+ properties: command_queue_properties
1072
+ properties_array: Sequence[command_queue_properties]
1073
+
1074
+ class Event:
1075
+ def get_info(self, arg: event_info, /) -> object: ...
1076
+
1077
+ def get_profiling_info(self, arg: int, /) -> object: ...
1078
+
1079
+ def wait(self) -> None: ...
1080
+
1081
+ @overload
1082
+ def __eq__(self, arg: Event, /) -> bool: ...
1083
+
1084
+ @overload
1085
+ def __eq__(self, obj: object | None) -> bool: ...
1086
+
1087
+ @override
1088
+ def __hash__(self) -> int: ...
1089
+
1090
+ @staticmethod
1091
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Event: ...
1092
+
1093
+ @property
1094
+ def int_ptr(self) -> int: ...
1095
+
1096
+ def set_callback(self,
1097
+ arg0: int,
1098
+ arg1: Callable[[command_execution_status], None],
1099
+ /) -> None: ...
1100
+
1101
+ command_queue: CommandQueue
1102
+ command_type: command_type
1103
+ reference_count: int
1104
+ command_execution_status: command_execution_status
1105
+ profile: pyopencl._monkeypatch.ProfilingInfoGetter
1106
+
1107
+ class NannyEvent(Event):
1108
+ def get_ward(self) -> object: ...
1109
+
1110
+ def wait_for_events(arg: Sequence[Event], /) -> None: ...
1111
+
1112
+ def _enqueue_marker_with_wait_list(
1113
+ queue: CommandQueue,
1114
+ wait_for: WaitList = None) -> Event: ...
1115
+
1116
+ def _enqueue_marker(queue: CommandQueue) -> Event: ...
1117
+
1118
+ def _enqueue_wait_for_events(
1119
+ queue: CommandQueue,
1120
+ wait_for: WaitList = None) -> None: ...
1121
+
1122
+ def _enqueue_barrier_with_wait_list(
1123
+ queue: CommandQueue,
1124
+ wait_for: WaitList = None) -> Event: ...
1125
+
1126
+ def _enqueue_barrier(queue: CommandQueue) -> None: ...
1127
+
1128
+ class UserEvent(Event):
1129
+ def __init__(self, context: Context) -> None: ...
1130
+
1131
+ def set_status(self, arg: int, /) -> None: ...
1132
+
1133
+ class MemoryObjectHolder:
1134
+ def get_info(self, arg: mem_info, /) -> object: ...
1135
+
1136
+ def get_host_array(self,
1137
+ shape: tuple[int, ...],
1138
+ dtype: DTypeT,
1139
+ order: Literal["C"] | Literal["F"] = "C"
1140
+ ) -> np.ndarray[tuple[int, ...], DTypeT]: ...
1141
+
1142
+ @overload
1143
+ def __eq__(self, arg: MemoryObjectHolder, /) -> bool: ...
1144
+
1145
+ @overload
1146
+ def __eq__(self, obj: object | None) -> bool: ...
1147
+
1148
+ @override
1149
+ def __hash__(self) -> int: ...
1150
+
1151
+ @property
1152
+ def int_ptr(self) -> int: ...
1153
+
1154
+ type: int
1155
+ flags: int
1156
+ size: int
1157
+ # FIXME
1158
+ # host_ptr
1159
+ map_count: int
1160
+ reference_count: int
1161
+ context: Context
1162
+ # associated_memobject
1163
+ offset: int
1164
+ uses_svm_pointer: bool
1165
+ properties: int
1166
+
1167
+ class MemoryObject(MemoryObjectHolder):
1168
+ def release(self) -> None: ...
1169
+
1170
+ @property
1171
+ def hostbuf(self) -> object: ...
1172
+
1173
+ @staticmethod
1174
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> object: ...
1175
+
1176
+ def enqueue_migrate_mem_objects(
1177
+ queue: CommandQueue,
1178
+ mem_objects: Sequence[MemoryObjectHolder],
1179
+ flags: int = 0,
1180
+ wait_for: WaitList = None
1181
+ ) -> Event: ...
1182
+
1183
+ class Buffer(MemoryObject):
1184
+ def __init__(
1185
+ self,
1186
+ context: Context,
1187
+ flags: int,
1188
+ size: int = 0,
1189
+ hostbuf: HasBufferInterface | None = None
1190
+ ) -> None: ...
1191
+
1192
+ def get_sub_region(self, origin: int, size: int, flags: int = 0) -> Buffer: ...
1193
+
1194
+ def __getitem__(self, arg: slice, /) -> Buffer: ...
1195
+
1196
+ def _enqueue_read_buffer(
1197
+ queue: CommandQueue,
1198
+ mem: MemoryObjectHolder,
1199
+ hostbuf: HasBufferInterface,
1200
+ src_offset: int = 0,
1201
+ wait_for: WaitList = None,
1202
+ is_blocking: bool = True
1203
+ ) -> Event: ...
1204
+
1205
+ def _enqueue_write_buffer(
1206
+ queue: CommandQueue,
1207
+ mem: MemoryObjectHolder,
1208
+ hostbuf: HasBufferInterface,
1209
+ dst_offset: int = 0,
1210
+ wait_for: WaitList = None,
1211
+ is_blocking: bool = True
1212
+ ) -> Event: ...
1213
+
1214
+ def _enqueue_copy_buffer(
1215
+ queue: CommandQueue,
1216
+ src: MemoryObjectHolder,
1217
+ dst: MemoryObjectHolder,
1218
+ byte_count: int = -1,
1219
+ src_offset: int = 0,
1220
+ dst_offset: int = 0,
1221
+ wait_for: WaitList = None
1222
+ ) -> Event: ...
1223
+
1224
+ def _enqueue_read_buffer_rect(
1225
+ queue: CommandQueue,
1226
+ mem: MemoryObjectHolder,
1227
+ hostbuf: HasBufferInterface,
1228
+ buffer_origin: tuple[int, ...],
1229
+ host_origin: tuple[int, ...],
1230
+ region: tuple[int, ...],
1231
+ buffer_pitches: tuple[int, ...] | None = None,
1232
+ host_pitches: tuple[int, ...] | None = None,
1233
+ wait_for: WaitList = None,
1234
+ is_blocking: bool = True
1235
+ ) -> Event: ...
1236
+
1237
+ def _enqueue_write_buffer_rect(
1238
+ queue: CommandQueue,
1239
+ mem: MemoryObjectHolder,
1240
+ hostbuf: HasBufferInterface,
1241
+ buffer_origin: tuple[int, ...],
1242
+ host_origin: tuple[int, ...],
1243
+ region: object,
1244
+ buffer_pitches: tuple[int, ...] | None = None,
1245
+ host_pitches: tuple[int, ...] | None = None,
1246
+ wait_for: WaitList = None,
1247
+ is_blocking: bool = True
1248
+ ) -> Event: ...
1249
+
1250
+ def _enqueue_copy_buffer_rect(
1251
+ queue: CommandQueue,
1252
+ src: MemoryObjectHolder,
1253
+ dst: MemoryObjectHolder,
1254
+ src_origin: tuple[int, ...],
1255
+ dst_origin: tuple[int, ...],
1256
+ region: object,
1257
+ src_pitches: tuple[int, ...] | None = None,
1258
+ dst_pitches: tuple[int, ...] | None = None,
1259
+ wait_for: WaitList = None
1260
+ ) -> Event: ...
1261
+
1262
+ def _enqueue_fill_buffer(
1263
+ queue: CommandQueue,
1264
+ mem: MemoryObjectHolder,
1265
+ pattern: object,
1266
+ offset: int,
1267
+ size: int,
1268
+ wait_for: WaitList = None
1269
+ ) -> Event: ...
1270
+
1271
+ def enqueue_copy_buffer_p2p_amd(
1272
+ platform: Platform,
1273
+ queue: CommandQueue,
1274
+ src: MemoryObjectHolder,
1275
+ dst: MemoryObjectHolder,
1276
+ byte_count: int | None = None,
1277
+ wait_for: WaitList = None
1278
+ ) -> Event: ...
1279
+
1280
+ class ImageDescriptor:
1281
+ def __init__(self) -> None: ...
1282
+
1283
+ @property
1284
+ def image_type(self) -> mem_object_type: ...
1285
+
1286
+ @image_type.setter
1287
+ def image_type(self, arg: mem_object_type, /) -> None: ...
1288
+
1289
+ @property
1290
+ def shape(self) -> tuple[int, int, int]: ...
1291
+
1292
+ @shape.setter
1293
+ def shape(self, arg: tuple[int, int, int], /) -> None: ...
1294
+
1295
+ @property
1296
+ def array_size(self) -> int: ...
1297
+
1298
+ @array_size.setter
1299
+ def array_size(self, arg: int, /) -> None: ...
1300
+
1301
+ @property
1302
+ def pitches(self) -> object: ...
1303
+
1304
+ @pitches.setter
1305
+ def pitches(self, arg: tuple[int, int], /) -> None: ...
1306
+
1307
+ @property
1308
+ def num_mip_levels(self) -> int: ...
1309
+
1310
+ @num_mip_levels.setter
1311
+ def num_mip_levels(self, arg: int, /) -> None: ...
1312
+
1313
+ @property
1314
+ def num_samples(self) -> int: ...
1315
+
1316
+ @num_samples.setter
1317
+ def num_samples(self, arg: int, /) -> None: ...
1318
+
1319
+ @property
1320
+ def buffer(self) -> object: ...
1321
+
1322
+ @buffer.setter
1323
+ def buffer(self, buffer: MemoryObject | None) -> None: ...
1324
+
1325
+ class Image(MemoryObject):
1326
+ # monkeypatched, but apparently pyright doesn't like monkeypatched __init__
1327
+ def __init__(self,
1328
+ context: Context,
1329
+ flags: mem_flags,
1330
+ format: ImageFormat,
1331
+ shape: tuple[int, ...] | None = None,
1332
+ pitches: tuple[int, ...] | None = None,
1333
+
1334
+ hostbuf: HasBufferInterface | None = None,
1335
+ is_array: bool = False,
1336
+ buffer: Buffer | None = None,
1337
+ *,
1338
+ desc: ImageDescriptor | None = None,
1339
+ _through_create_image: bool = False,
1340
+ ) -> None: ...
1341
+
1342
+ @overload
1343
+ @staticmethod
1344
+ def _custom_init(
1345
+ h: Image,
1346
+ context: Context,
1347
+ flags: int,
1348
+ format: ImageFormat,
1349
+ shape: tuple[int, ...] | None = None,
1350
+ pitches: tuple[int, ...] | None = None,
1351
+ hostbuf: object | None = None
1352
+ ) -> None: ...
1353
+
1354
+ @overload
1355
+ @staticmethod
1356
+ def _custom_init(
1357
+ h: Image,
1358
+ context: Context,
1359
+ flags: int,
1360
+ format: ImageFormat,
1361
+ desc: ImageDescriptor,
1362
+ hostbuf: object | None = None
1363
+ ) -> None: ...
1364
+
1365
+ def get_image_info(self, arg: image_info, /) -> object: ...
1366
+
1367
+ format: ImageFormat
1368
+ element_size: int
1369
+ row_pitch: int
1370
+ slice_pitch: int
1371
+ width: int
1372
+ height: int
1373
+ depth: int
1374
+ array_size: int
1375
+ buffer: Buffer
1376
+ num_mip_levels: int
1377
+ num_samples: int
1378
+
1379
+ class ImageFormat:
1380
+ def __init__(self, arg0: int, arg1: int, /) -> None: ...
1381
+
1382
+ @property
1383
+ def channel_order(self) -> int: ...
1384
+
1385
+ @channel_order.setter
1386
+ def channel_order(self, arg: int, /) -> None: ...
1387
+
1388
+ @property
1389
+ def channel_data_type(self) -> int: ...
1390
+
1391
+ @channel_data_type.setter
1392
+ def channel_data_type(self, arg: int, /) -> None: ...
1393
+
1394
+ @property
1395
+ def channel_count(self) -> int: ...
1396
+
1397
+ @property
1398
+ def dtype_size(self) -> int: ...
1399
+
1400
+ @property
1401
+ def itemsize(self) -> int: ...
1402
+
1403
+ __repr__ = pyopencl._monkeypatch.image_format_repr
1404
+
1405
+ __eq__ = pyopencl._monkeypatch.image_format_eq
1406
+
1407
+ __ne__ = pyopencl._monkeypatch.image_format_ne
1408
+
1409
+ __hash__ = pyopencl._monkeypatch.image_format_hash
1410
+
1411
+ def get_supported_image_formats(
1412
+ context: Context,
1413
+ arg1: mem_flags,
1414
+ arg2: mem_object_type,
1415
+ /) -> Sequence[ImageFormat]: ...
1416
+
1417
+ def _enqueue_read_image(
1418
+ queue: CommandQueue,
1419
+ mem: Image,
1420
+ origin: tuple[int, ...],
1421
+ region: tuple[int, ...],
1422
+ hostbuf: HasBufferInterface,
1423
+ row_pitch: int = 0,
1424
+ slice_pitch: int = 0,
1425
+ wait_for: WaitList = None,
1426
+ is_blocking: bool = True
1427
+ ) -> Event: ...
1428
+
1429
+ def _enqueue_write_image(
1430
+ queue: CommandQueue,
1431
+ mem: Image,
1432
+ origin: tuple[int, ...],
1433
+ region: tuple[int, ...],
1434
+ hostbuf: HasBufferInterface,
1435
+ row_pitch: int = 0,
1436
+ slice_pitch: int = 0,
1437
+ wait_for: WaitList = None,
1438
+ is_blocking: bool = True
1439
+ ) -> Event: ...
1440
+
1441
+ def _enqueue_copy_image(
1442
+ queue: CommandQueue,
1443
+ src: MemoryObjectHolder,
1444
+ dest: MemoryObjectHolder,
1445
+ src_origin: tuple[int, ...],
1446
+ dest_origin: tuple[int, ...],
1447
+ region: tuple[int, ...],
1448
+ wait_for: WaitList = None
1449
+ ) -> Event: ...
1450
+
1451
+ def _enqueue_copy_image_to_buffer(
1452
+ queue: CommandQueue,
1453
+ src: MemoryObjectHolder,
1454
+ dest: MemoryObjectHolder,
1455
+ origin: tuple[int, ...],
1456
+ region: tuple[int, ...],
1457
+ offset: int,
1458
+ wait_for: WaitList = None
1459
+ ) -> Event: ...
1460
+
1461
+ def _enqueue_copy_buffer_to_image(
1462
+ queue: CommandQueue,
1463
+ src: MemoryObjectHolder,
1464
+ dest: MemoryObjectHolder,
1465
+ offset: int,
1466
+ origin: tuple[int, ...],
1467
+ region: tuple[int, ...],
1468
+ wait_for: WaitList = None
1469
+ ) -> Event: ...
1470
+
1471
+ def enqueue_fill_image(
1472
+ queue: CommandQueue,
1473
+ mem: MemoryObjectHolder,
1474
+ color: HasBufferInterface,
1475
+ origin: tuple[int, ...],
1476
+ region: tuple[int, ...],
1477
+ wait_for: WaitList = None
1478
+ ) -> Event: ...
1479
+
1480
+ class Pipe(MemoryObject):
1481
+ def __init__(self,
1482
+ context: Context,
1483
+ flags: int,
1484
+ packet_size: int,
1485
+ max_packets: int,
1486
+ properties: Sequence[pipe_properties] = ()
1487
+ ) -> None: ...
1488
+
1489
+ def get_pipe_info(self, arg: pipe_info, /) -> object: ...
1490
+
1491
+ packet_size: int
1492
+ max_packets: int
1493
+ # FIXME
1494
+ # properties:
1495
+
1496
+ class MemoryMap:
1497
+ def release(self,
1498
+ queue: CommandQueue | None = None,
1499
+ wait_for: WaitList = None
1500
+ ) -> Event: ...
1501
+
1502
+ __enter__ = pyopencl._monkeypatch.memory_map_enter
1503
+
1504
+ __exit__ = pyopencl._monkeypatch.memory_map_exit
1505
+
1506
+ def enqueue_map_buffer(
1507
+ queue: CommandQueue,
1508
+ buf: MemoryObjectHolder,
1509
+ flags: map_flags,
1510
+ offset: int,
1511
+ shape: tuple[int, ...],
1512
+ dtype: DTypeT,
1513
+ order: Literal["C"] | Literal["F"] = "C",
1514
+ strides: tuple[int, ...] | None = None,
1515
+ wait_for: WaitList = None,
1516
+ is_blocking: bool = True
1517
+ ) -> np.ndarray[tuple[int, ...], DTypeT]: ...
1518
+
1519
+ def enqueue_map_image(
1520
+ queue: CommandQueue,
1521
+ img: MemoryObjectHolder,
1522
+ flags: int,
1523
+ origin: tuple[int, ...],
1524
+ region: tuple[int, ...],
1525
+ shape: tuple[int, ...],
1526
+ dtype: DTypeT,
1527
+ order: Literal["C"] | Literal["F"] = "C",
1528
+ strides: tuple[int, ...] | None = None,
1529
+ wait_for: WaitList = None,
1530
+ is_blocking: bool = True
1531
+ ) -> tuple[np.ndarray[tuple[int, ...], DTypeT], Event, int, int]: ...
1532
+
1533
+ class SVMPointer:
1534
+ @property
1535
+ def svm_ptr(self) -> int: ...
1536
+
1537
+ @property
1538
+ def size(self) -> int | None: ...
1539
+
1540
+ @property
1541
+ def buf(self) -> NDArray[np.uint8]: ...
1542
+
1543
+ map = pyopencl._monkeypatch.svmptr_map
1544
+
1545
+ map_ro = pyopencl._monkeypatch.svmptr_map_ro
1546
+
1547
+ map_rw = pyopencl._monkeypatch.svmptr_map_rw
1548
+
1549
+ _enqueue_unmap = pyopencl._monkeypatch.svmptr__enqueue_unmap
1550
+
1551
+ as_buffer = pyopencl._monkeypatch.svmptr_as_buffer
1552
+
1553
+ class SVM(SVMPointer, Generic[SVMInnerT]):
1554
+ def __init__(self, arg: SVMInnerT, /) -> None: ...
1555
+
1556
+ @property
1557
+ def mem(self) -> SVMInnerT: ...
1558
+
1559
+ map = pyopencl._monkeypatch.svm_map
1560
+
1561
+ map_ro = pyopencl._monkeypatch.svm_map_ro
1562
+
1563
+ map_rw = pyopencl._monkeypatch.svm_map_rw
1564
+
1565
+ _enqueue_unmap = pyopencl._monkeypatch.svm__enqueue_unmap
1566
+
1567
+ class SVMAllocation(SVMPointer):
1568
+ def __init__(self,
1569
+ context: Context,
1570
+ size: int,
1571
+ alignment: int,
1572
+ flags: int,
1573
+ queue: CommandQueue | None = None
1574
+ ) -> None: ...
1575
+
1576
+ def release(self) -> None: ...
1577
+
1578
+ def enqueue_release(self,
1579
+ queue: CommandQueue | None = None,
1580
+ wait_for: WaitList = None
1581
+ ) -> Event: ...
1582
+
1583
+ @overload
1584
+ def __eq__(self, arg: SVMAllocation, /) -> bool: ...
1585
+
1586
+ @overload
1587
+ def __eq__(self, obj: object | None) -> bool: ...
1588
+
1589
+ @override
1590
+ def __hash__(self) -> int: ...
1591
+
1592
+ def bind_to_queue(self, queue: CommandQueue) -> None: ...
1593
+
1594
+ def unbind_from_queue(self) -> None: ...
1595
+
1596
+ @property
1597
+ def _queue(self) -> object: ...
1598
+
1599
+ def _enqueue_svm_memcpy(
1600
+ queue: CommandQueue,
1601
+ is_blocking: int,
1602
+ dst: SVMPointer,
1603
+ src: SVMPointer,
1604
+ wait_for: WaitList = None,
1605
+ byte_count: object | None = None
1606
+ ) -> Event: ...
1607
+
1608
+ def _enqueue_svm_memfill(
1609
+ queue: CommandQueue,
1610
+ dst: SVMPointer,
1611
+ pattern: object,
1612
+ byte_count: object | None = None,
1613
+ wait_for: WaitList = None
1614
+ ) -> Event: ...
1615
+
1616
+ def _enqueue_svm_map(
1617
+ queue: CommandQueue,
1618
+ is_blocking: int,
1619
+ flags: int,
1620
+ svm: SVMPointer,
1621
+ wait_for: WaitList = None,
1622
+ size: object | None = None
1623
+ ) -> Event: ...
1624
+
1625
+ def _enqueue_svm_unmap(
1626
+ queue: CommandQueue,
1627
+ svm: SVMPointer,
1628
+ wait_for: WaitList = None
1629
+ ) -> Event: ...
1630
+
1631
+ def _enqueue_svm_migrate_mem(
1632
+ queue: CommandQueue,
1633
+ svms: Sequence[SVMPointer],
1634
+ flags: int | None = None,
1635
+ wait_for: WaitList = None
1636
+ ) -> Event: ...
1637
+
1638
+ class Sampler:
1639
+ @overload
1640
+ def __init__(self, arg0: Context, arg1: Sequence[int], /) -> None: ...
1641
+
1642
+ @overload
1643
+ def __init__(self, arg0: Context, arg1: bool, arg2: int, arg3: int, /) -> None: ...
1644
+
1645
+ def get_info(self, arg: sampler_info, /) -> object: ...
1646
+
1647
+ @overload
1648
+ def __eq__(self, arg: Sampler, /) -> bool: ...
1649
+
1650
+ @overload
1651
+ def __eq__(self, obj: object | None) -> bool: ...
1652
+
1653
+ @override
1654
+ def __hash__(self) -> int: ...
1655
+
1656
+ @staticmethod
1657
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Sampler: ...
1658
+
1659
+ @property
1660
+ def int_ptr(self) -> int: ...
1661
+
1662
+ reference_count: int
1663
+ context: Context
1664
+ normalized_coords: bool
1665
+ addressing_mode: addressing_mode
1666
+ filter_mode: filter_mode
1667
+ mip_filter_mode: filter_mode
1668
+ lod_min: float
1669
+ lod_max: float
1670
+ properties: Sequence[sampler_properties]
1671
+ mip_filter_mode_khr: filter_mode
1672
+ lod_min_khr: float
1673
+ lod_max_khr: float
1674
+
1675
+ class program_kind(IntEnum): # noqa: N801
1676
+ UNKNOWN = auto()
1677
+ SOURCE = auto()
1678
+ BINARY = auto()
1679
+ IL = auto()
1680
+
1681
+ to_string = classmethod(pyopencl._monkeypatch.to_string)
1682
+
1683
+ def unload_platform_compiler(arg: Platform, /) -> None: ...
1684
+
1685
+ class Kernel:
1686
+ def __init__(self, arg0: _Program | Program, arg1: str, /) -> None: ...
1687
+
1688
+ get_info = pyopencl._monkeypatch.kernel_get_info
1689
+
1690
+ get_work_group_info = pyopencl._monkeypatch.kernel_get_work_group_info
1691
+
1692
+ def clone(self) -> Kernel: ...
1693
+
1694
+ def set_arg(self, arg0: int, arg1: KernelArg, /) -> None: ...
1695
+
1696
+ def get_arg_info(self, index: int, param_name: kernel_arg_info, /) -> object: ...
1697
+
1698
+ @overload
1699
+ def __eq__(self, arg: Kernel, /) -> bool: ...
1700
+
1701
+ @overload
1702
+ def __eq__(self, obj: object | None) -> bool: ...
1703
+
1704
+ @override
1705
+ def __hash__(self) -> int: ...
1706
+
1707
+ @staticmethod
1708
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> Kernel: ...
1709
+
1710
+ @property
1711
+ def int_ptr(self) -> int: ...
1712
+
1713
+ def get_sub_group_info(self,
1714
+ device: Device,
1715
+ param: int,
1716
+ input_value: Sequence[int] | int | None = None
1717
+ ) -> object: ...
1718
+
1719
+ def __call__(self,
1720
+ queue: CommandQueue,
1721
+ global_work_size: tuple[int, ...],
1722
+ local_work_size: tuple[int, ...] | None,
1723
+ *args: KernelArg,
1724
+ wait_for: WaitList = None,
1725
+ g_times_l: bool = False,
1726
+ allow_empty_ndrange: bool = False,
1727
+ global_offset: tuple[int, ...] | None = None,
1728
+ ) -> Event: ...
1729
+
1730
+ def set_args(self, *args: KernelArg) -> None: ...
1731
+
1732
+ set_scalar_arg_dtypes = pyopencl._monkeypatch.kernel_set_arg_types
1733
+
1734
+ set_arg_types = pyopencl._monkeypatch.kernel_set_arg_types
1735
+
1736
+ capture_call = pyopencl._monkeypatch.kernel_capture_call
1737
+
1738
+ function_name: str
1739
+ num_args: int
1740
+ reference_count: int
1741
+ context: Context
1742
+ program: _Program
1743
+ attributes: str
1744
+
1745
+ class LocalMemory:
1746
+ def __init__(self, size: int) -> None: ...
1747
+
1748
+ @property
1749
+ def size(self) -> int: ...
1750
+
1751
+ def enqueue_nd_range_kernel(
1752
+ queue: CommandQueue,
1753
+ kernel: Kernel,
1754
+ global_work_size: tuple[int, ...],
1755
+ local_work_size: tuple[int, ...] | None,
1756
+ global_offset: tuple[int, ...] | None = None,
1757
+ wait_for: WaitList = None,
1758
+ *,
1759
+ g_times_l: bool = False,
1760
+ allow_empty_ndrange: bool = False
1761
+ ) -> Event: ...
1762
+
1763
+ def have_gl() -> bool: ...
1764
+
1765
+ class GLBuffer(MemoryObject):
1766
+ def __init__(self, context: Context, flags: int, bufobj: int) -> None: ...
1767
+
1768
+ def get_gl_object_info(self) -> tuple[gl_object_type, int]: ...
1769
+
1770
+ class GLRenderBuffer(MemoryObject):
1771
+ def __init__(self, context: Context, flags: int, bufobj: int) -> None: ...
1772
+
1773
+ def get_gl_object_info(self) -> tuple[gl_object_type, int]: ...
1774
+
1775
+ class GLTexture(Image):
1776
+ def __init__(
1777
+ self,
1778
+ context: Context,
1779
+ flags: int,
1780
+ texture_target: int,
1781
+ miplevel: int,
1782
+ texture: int,
1783
+ dims: int
1784
+ ) -> None: ...
1785
+
1786
+ def get_gl_object_info(self) -> tuple[gl_object_type, int]: ...
1787
+
1788
+ def get_gl_texture_info(self, arg: gl_texture_info, /) -> int: ...
1789
+
1790
+ def enqueue_acquire_gl_objects(
1791
+ queue: CommandQueue,
1792
+ mem_objects: object,
1793
+ wait_for: WaitList = None) -> Event: ...
1794
+
1795
+ def enqueue_release_gl_objects(
1796
+ queue: CommandQueue,
1797
+ mem_objects: object,
1798
+ wait_for: WaitList = None) -> Event: ...
1799
+
1800
+ def get_gl_context_info_khr(
1801
+ properties: object,
1802
+ param_name: int,
1803
+ platform: object | None = None) -> object: ...
1804
+
1805
+ def bitlog2(arg: int, /) -> int: ...
1806
+
1807
+ class AllocatorBase:
1808
+ def __call__(self, size: int) -> Buffer: ...
1809
+
1810
+ class DeferredAllocator(AllocatorBase):
1811
+ @overload
1812
+ def __init__(self, arg: Context, /) -> None: ...
1813
+
1814
+ @overload
1815
+ def __init__(self, queue: Context, mem_flags: int) -> None: ...
1816
+
1817
+ class ImmediateAllocator(AllocatorBase):
1818
+ @overload
1819
+ def __init__(self, arg: CommandQueue, /) -> None: ...
1820
+
1821
+ @overload
1822
+ def __init__(self, queue: CommandQueue, mem_flags: int) -> None: ...
1823
+
1824
+ class PooledBuffer(MemoryObjectHolder):
1825
+ def release(self) -> None: ...
1826
+
1827
+ def bind_to_queue(self, arg: CommandQueue, /) -> None: ...
1828
+
1829
+ def unbind_from_queue(self) -> None: ...
1830
+
1831
+ class MemoryPool:
1832
+ def __init__(self,
1833
+ allocator: AllocatorBase,
1834
+ leading_bits_in_bin_id: int = 4
1835
+ ) -> None: ...
1836
+
1837
+ def allocate(self, size: int) -> PooledBuffer: ...
1838
+
1839
+ def __call__(self, size: int) -> PooledBuffer: ...
1840
+
1841
+ @property
1842
+ def held_blocks(self) -> int: ...
1843
+
1844
+ @property
1845
+ def active_blocks(self) -> int: ...
1846
+
1847
+ @property
1848
+ def managed_bytes(self) -> int: ...
1849
+
1850
+ @property
1851
+ def active_bytes(self) -> int: ...
1852
+
1853
+ def bin_number(self, arg: int, /) -> int: ...
1854
+
1855
+ def alloc_size(self, arg: int, /) -> int: ...
1856
+
1857
+ def free_held(self) -> None: ...
1858
+
1859
+ def stop_holding(self) -> None: ...
1860
+
1861
+ class SVMAllocator:
1862
+ def __init__(self,
1863
+ context: Context,
1864
+ alignment: int = 0,
1865
+ flags: int = 1,
1866
+ queue: CommandQueue | None = None
1867
+ ) -> None: ...
1868
+
1869
+ def __call__(self, size: int) -> SVMAllocation: ...
1870
+
1871
+ class PooledSVM(SVMPointer):
1872
+ def release(self) -> None: ...
1873
+
1874
+ def enqueue_release(self) -> None: ...
1875
+
1876
+ @override
1877
+ def __eq__(self, arg: PooledSVM, /) -> bool: ...
1878
+
1879
+ @override
1880
+ def __hash__(self) -> int: ...
1881
+
1882
+ def bind_to_queue(self, arg: CommandQueue, /) -> None: ...
1883
+
1884
+ def unbind_from_queue(self) -> None: ...
1885
+
1886
+ class SVMPool:
1887
+ def __init__(self,
1888
+ allocator: SVMAllocator,
1889
+ leading_bits_in_bin_id: int = 4
1890
+ ) -> None: ...
1891
+
1892
+ def __call__(self, size: int) -> PooledSVM: ...
1893
+
1894
+ @property
1895
+ def held_blocks(self) -> int: ...
1896
+
1897
+ @property
1898
+ def active_blocks(self) -> int: ...
1899
+
1900
+ @property
1901
+ def managed_bytes(self) -> int: ...
1902
+
1903
+ @property
1904
+ def active_bytes(self) -> int: ...
1905
+
1906
+ def bin_number(self, arg: int, /) -> int: ...
1907
+
1908
+ def alloc_size(self, arg: int, /) -> int: ...
1909
+
1910
+ def free_held(self) -> None: ...
1911
+
1912
+ def stop_holding(self) -> None: ...
1913
+
1914
+ class _Program:
1915
+ @overload
1916
+ def __init__(self, arg1: Context, arg2: str | bytes) -> None: ...
1917
+
1918
+ @overload
1919
+ def __init__(
1920
+ self,
1921
+ arg1: Context,
1922
+ arg2: Sequence[Device],
1923
+ arg3: Sequence[bytes]
1924
+ ) -> None: ...
1925
+
1926
+ @staticmethod
1927
+ def create_with_built_in_kernels(
1928
+ context: Context,
1929
+ devices: Sequence[Device],
1930
+ kernel_names: str) -> _Program: ...
1931
+
1932
+ def kind(self) -> program_kind: ...
1933
+
1934
+ def get_info(self, arg: program_info, /) -> object: ...
1935
+
1936
+ def get_build_info(self, arg0: Device, arg1: int, /) -> object: ...
1937
+
1938
+ def _build(self,
1939
+ options: bytes = b"",
1940
+ devices: Sequence[Device] | None = None
1941
+ ) -> None: ...
1942
+
1943
+ def compile(self,
1944
+ options: bytes = b"",
1945
+ devices: Sequence[Device] | None = None,
1946
+ headers: object = []
1947
+ ) -> None: ...
1948
+
1949
+ @staticmethod
1950
+ def link(
1951
+ context: Context,
1952
+ programs: object,
1953
+ options: bytes = b"",
1954
+ devices: Sequence[Device] | None = None
1955
+ ) -> _Program: ...
1956
+
1957
+ def set_specialization_constant(self, spec_id: int, buffer: object) -> None: ...
1958
+
1959
+ @overload
1960
+ def __eq__(self, arg: _Program, /) -> bool: ...
1961
+
1962
+ @overload
1963
+ def __eq__(self, obj: object | None) -> bool: ...
1964
+
1965
+ @override
1966
+ def __hash__(self) -> int: ...
1967
+
1968
+ def all_kernels(self) -> Sequence[Kernel]: ...
1969
+
1970
+ @staticmethod
1971
+ def from_int_ptr(int_ptr_value: int, retain: bool = True) -> _Program: ...
1972
+
1973
+ @property
1974
+ def int_ptr(self) -> int: ...
1975
+
1976
+ _get_build_logs = pyopencl._monkeypatch.program_get_build_logs
1977
+
1978
+ build = pyopencl._monkeypatch.program_build
1979
+
1980
+ def _create_program_with_il(arg0: Context, arg1: bytes, /) -> _Program: ...
1981
+
1982
+ class _TestMemoryPool:
1983
+ def __init__(self, leading_bits_in_bin_id: int = 4) -> None: ...
1984
+
1985
+ def allocate(self, arg: int, /) -> object: ...
1986
+
1987
+ @property
1988
+ def held_blocks(self) -> int: ...
1989
+
1990
+ @property
1991
+ def active_blocks(self) -> int: ...
1992
+
1993
+ @property
1994
+ def managed_bytes(self) -> int: ...
1995
+
1996
+ @property
1997
+ def active_bytes(self) -> int: ...
1998
+
1999
+ def bin_number(self, arg: int, /) -> int: ...
2000
+
2001
+ def alloc_size(self, arg: int, /) -> int: ...
2002
+
2003
+ def free_held(self) -> None: ...
2004
+
2005
+ def stop_holding(self) -> None: ...
2006
+
2007
+ def _set_trace(self, arg: bool, /) -> None: ...
2008
+
2009
+ def get_apple_cgl_share_group() -> context_properties: ...