Coverage for cuda/bindings/_internal/nvvm.pyx: 78.40%
213 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-19 01:12 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-19 01:12 +0000
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2#
3# SPDX-License-Identifier: Apache-2.0
4#
5# This code was automatically generated across versions from 12.0.1 to 13.3.0. Do not modify it directly.
6# CYTHON-BINDINGS-GENERATED-DO-NOT-MODIFY-THIS-FILE: format=1; content-sha256=786a789c534d0bdda803be738a4f76f2db47bf188708dac946b41aec6c6aa4a4
9# <<<< PREAMBLE CONTENT >>>>
11cdef extern from "<dlfcn.h>":
12 void* _cyb_dlsym "dlsym"(void*, const char*) nogil
13 const void * _cyb_RTLD_DEFAULT "RTLD_DEFAULT"
15from libc.stdint cimport intptr_t as _cyb_intptr_t
17import threading as _cyb_threading
19cdef bint _cyb___py_nvvm_init = False
20cdef dict _cyb_func_ptrs = None
21cdef object _cyb_symbol_lock = _cyb_threading.Lock()
23# <<<< END OF PREAMBLE CONTENT >>>>
25from libc.stdint cimport uintptr_t
27from .utils import FunctionNotFoundError, NotSupportedError
28from cuda.pathfinder import load_nvidia_dynamic_lib
31###############################################################################
32# Wrapper init
33###############################################################################
35cdef void* __nvvmGetErrorString = NULL
36cdef void* __nvvmVersion = NULL
37cdef void* __nvvmIRVersion = NULL
38cdef void* __nvvmCreateProgram = NULL
39cdef void* __nvvmDestroyProgram = NULL
40cdef void* __nvvmAddModuleToProgram = NULL
41cdef void* __nvvmLazyAddModuleToProgram = NULL
42cdef void* __nvvmCompileProgram = NULL
43cdef void* __nvvmVerifyProgram = NULL
44cdef void* __nvvmGetCompiledResultSize = NULL
45cdef void* __nvvmGetCompiledResult = NULL
46cdef void* __nvvmGetProgramLogSize = NULL
47cdef void* __nvvmGetProgramLog = NULL
48cdef void* __nvvmLLVMVersion = NULL
50cdef int _init_nvvm() except -1 nogil:
51 global _cyb___py_nvvm_init
52 cdef void* handle = NULL
53 with gil, _cyb_symbol_lock:
54 if _cyb___py_nvvm_init: return 0
56 global __nvvmGetErrorString
57 __nvvmGetErrorString = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmGetErrorString')
58 if __nvvmGetErrorString == NULL:
59 if handle == NULL:
60 handle = load_library()
61 __nvvmGetErrorString = _cyb_dlsym(handle, 'nvvmGetErrorString')
63 global __nvvmVersion
64 __nvvmVersion = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmVersion')
65 if __nvvmVersion == NULL:
66 if handle == NULL:
67 handle = load_library()
68 __nvvmVersion = _cyb_dlsym(handle, 'nvvmVersion')
70 global __nvvmIRVersion
71 __nvvmIRVersion = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmIRVersion')
72 if __nvvmIRVersion == NULL:
73 if handle == NULL:
74 handle = load_library()
75 __nvvmIRVersion = _cyb_dlsym(handle, 'nvvmIRVersion')
77 global __nvvmCreateProgram
78 __nvvmCreateProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmCreateProgram')
79 if __nvvmCreateProgram == NULL:
80 if handle == NULL:
81 handle = load_library()
82 __nvvmCreateProgram = _cyb_dlsym(handle, 'nvvmCreateProgram')
84 global __nvvmDestroyProgram
85 __nvvmDestroyProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmDestroyProgram')
86 if __nvvmDestroyProgram == NULL:
87 if handle == NULL:
88 handle = load_library()
89 __nvvmDestroyProgram = _cyb_dlsym(handle, 'nvvmDestroyProgram')
91 global __nvvmAddModuleToProgram
92 __nvvmAddModuleToProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmAddModuleToProgram')
93 if __nvvmAddModuleToProgram == NULL:
94 if handle == NULL:
95 handle = load_library()
96 __nvvmAddModuleToProgram = _cyb_dlsym(handle, 'nvvmAddModuleToProgram')
98 global __nvvmLazyAddModuleToProgram
99 __nvvmLazyAddModuleToProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmLazyAddModuleToProgram')
100 if __nvvmLazyAddModuleToProgram == NULL:
101 if handle == NULL:
102 handle = load_library() 1aYZj5k6l7m8noWXb9c!d#e$f%g'h(i)0Nw{*34O+P,Q-R.S/T:pqrst
103 __nvvmLazyAddModuleToProgram = _cyb_dlsym(handle, 'nvvmLazyAddModuleToProgram') 1YZj5k6l7m8noWXb9c!d#e$f%g'h(i)0Nw{*34O+P,Q-R.S/T:pqrst
105 global __nvvmCompileProgram
106 __nvvmCompileProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmCompileProgram')
107 if __nvvmCompileProgram == NULL:
108 if handle == NULL:
109 handle = load_library()
110 __nvvmCompileProgram = _cyb_dlsym(handle, 'nvvmCompileProgram')
112 global __nvvmVerifyProgram
113 __nvvmVerifyProgram = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmVerifyProgram')
114 if __nvvmVerifyProgram == NULL:
115 if handle == NULL:
116 handle = load_library()
117 __nvvmVerifyProgram = _cyb_dlsym(handle, 'nvvmVerifyProgram')
119 global __nvvmGetCompiledResultSize
120 __nvvmGetCompiledResultSize = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmGetCompiledResultSize')
121 if __nvvmGetCompiledResultSize == NULL:
122 if handle == NULL:
123 handle = load_library()
124 __nvvmGetCompiledResultSize = _cyb_dlsym(handle, 'nvvmGetCompiledResultSize')
126 global __nvvmGetCompiledResult
127 __nvvmGetCompiledResult = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmGetCompiledResult')
128 if __nvvmGetCompiledResult == NULL:
129 if handle == NULL:
130 handle = load_library()
131 __nvvmGetCompiledResult = _cyb_dlsym(handle, 'nvvmGetCompiledResult')
133 global __nvvmGetProgramLogSize
134 __nvvmGetProgramLogSize = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmGetProgramLogSize')
135 if __nvvmGetProgramLogSize == NULL:
136 if handle == NULL:
137 handle = load_library()
138 __nvvmGetProgramLogSize = _cyb_dlsym(handle, 'nvvmGetProgramLogSize')
140 global __nvvmGetProgramLog
141 __nvvmGetProgramLog = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmGetProgramLog')
142 if __nvvmGetProgramLog == NULL:
143 if handle == NULL:
144 handle = load_library()
145 __nvvmGetProgramLog = _cyb_dlsym(handle, 'nvvmGetProgramLog')
147 global __nvvmLLVMVersion
148 __nvvmLLVMVersion = _cyb_dlsym(_cyb_RTLD_DEFAULT, 'nvvmLLVMVersion')
149 if __nvvmLLVMVersion == NULL:
150 if handle == NULL:
151 handle = load_library()
152 __nvvmLLVMVersion = _cyb_dlsym(handle, 'nvvmLLVMVersion')
154 _cyb___py_nvvm_init = True
155 return 0
157cdef inline int _check_or_init_nvvm() except -1 nogil:
158 if _cyb___py_nvvm_init: 2a | Y Z j 5 k 6 l 7 m 8 n o W X b 9 c ! d # e $ f % g ' h ( i ) 0 N w { * 3 4 O + P , Q - R . S / T : ; } x ~ y ab1 U 2 V z A bbB C D E F G H I J K L M u v = ? @ [ ] ^ _ ` p q r s t
159 return 0 2a | Y Z j 5 k 6 l 7 m 8 n o W X b 9 c ! d # e $ f % g ' h ( i ) 0 N w { * 3 4 O + P , Q - R . S / T : ; } x ~ y ab1 U 2 V z A bbB C D E F G H I J K L M u v = ? @ [ ] ^ _ ` p q r s t
161 return _init_nvvm()
164cpdef dict _inspect_function_pointers(): 1apqrst
165 global _cyb_func_ptrs
166 if _cyb_func_ptrs is not None:
167 return _cyb_func_ptrs
169 _check_or_init_nvvm()
170 cdef dict data = {}
171 global __nvvmGetErrorString
172 data["__nvvmGetErrorString"] = <_cyb_intptr_t>__nvvmGetErrorString
174 global __nvvmVersion
175 data["__nvvmVersion"] = <_cyb_intptr_t>__nvvmVersion
177 global __nvvmIRVersion
178 data["__nvvmIRVersion"] = <_cyb_intptr_t>__nvvmIRVersion
180 global __nvvmCreateProgram
181 data["__nvvmCreateProgram"] = <_cyb_intptr_t>__nvvmCreateProgram
183 global __nvvmDestroyProgram
184 data["__nvvmDestroyProgram"] = <_cyb_intptr_t>__nvvmDestroyProgram
186 global __nvvmAddModuleToProgram
187 data["__nvvmAddModuleToProgram"] = <_cyb_intptr_t>__nvvmAddModuleToProgram
189 global __nvvmLazyAddModuleToProgram
190 data["__nvvmLazyAddModuleToProgram"] = <_cyb_intptr_t>__nvvmLazyAddModuleToProgram 1a4
192 global __nvvmCompileProgram
193 data["__nvvmCompileProgram"] = <_cyb_intptr_t>__nvvmCompileProgram 1a4
195 global __nvvmVerifyProgram
196 data["__nvvmVerifyProgram"] = <_cyb_intptr_t>__nvvmVerifyProgram
198 global __nvvmGetCompiledResultSize
199 data["__nvvmGetCompiledResultSize"] = <_cyb_intptr_t>__nvvmGetCompiledResultSize 1a56789!#$%'()*+,-./:pqrst
201 global __nvvmGetCompiledResult
202 data["__nvvmGetCompiledResult"] = <_cyb_intptr_t>__nvvmGetCompiledResult
204 global __nvvmGetProgramLogSize
205 data["__nvvmGetProgramLogSize"] = <_cyb_intptr_t>__nvvmGetProgramLogSize
207 global __nvvmGetProgramLog
208 data["__nvvmGetProgramLog"] = <_cyb_intptr_t>__nvvmGetProgramLog
210 global __nvvmLLVMVersion
211 data["__nvvmLLVMVersion"] = <_cyb_intptr_t>__nvvmLLVMVersion
212 _cyb_func_ptrs = data
213 return data 1aYZjklmnoWXbcdefghi0NwOPQRSTpqrst
216cpdef _inspect_function_pointer(str name):
217 global _cyb_func_ptrs
218 if _cyb_func_ptrs is None: 1apqrst
219 _cyb_func_ptrs = _inspect_function_pointers() 1aYZjklmnoWXbcdefghi0NwOPQRSTpqrst
220 return _cyb_func_ptrs[name] 1aYZjklmnoWXbcdefghi0NwOPQRSTpqrst
225cdef void* load_library() except* with gil:
226 cdef uintptr_t handle = load_nvidia_dynamic_lib("nvvm")._handle_uint
227 return <void*>handle
230###############################################################################
231# Wrapper functions
232###############################################################################
234cdef const char* _nvvmGetErrorString(nvvmResult result) except?NULL nogil:
235 global __nvvmGetErrorString
236 _check_or_init_nvvm() 1{
237 if __nvvmGetErrorString == NULL: 1a{
238 with gil:
239 raise FunctionNotFoundError("function nvvmGetErrorString is not found")
240 return (<const char* (*)(nvvmResult) noexcept nogil>__nvvmGetErrorString)( 1{
241 result)
244cdef nvvmResult _nvvmVersion(int* major, int* minor) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
245 global __nvvmVersion
246 _check_or_init_nvvm() 1a4=?@[]^_`
247 if __nvvmVersion == NULL: 1a4=?@[]^_`
248 with gil:
249 raise FunctionNotFoundError("function nvvmVersion is not found") 1jlnWbcdefghipqrst
250 return (<nvvmResult (*)(int*, int*) noexcept nogil>__nvvmVersion)( 1ajlnWbcdefghi4=?@[]^_`pqrst
251 major, minor)
254cdef nvvmResult _nvvmIRVersion(int* majorIR, int* minorIR, int* majorDbg, int* minorDbg) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
255 global __nvvmIRVersion
256 _check_or_init_nvvm() 2a 5 6 7 8 9 ! # $ % ' ( ) * + , - . / : ~ abbbu v = ? @ [ ] ^ _ ` p q r s t
257 if __nvvmIRVersion == NULL: 2a 5 6 7 8 9 ! # $ % ' ( ) * + , - . / : ~ abbbu v = ? @ [ ] ^ _ ` p q r s t
258 with gil:
259 raise FunctionNotFoundError("function nvvmIRVersion is not found") 1kmoXOPQRST
260 return (<nvvmResult (*)(int*, int*, int*, int*) noexcept nogil>__nvvmIRVersion)( 2a 5 k 6 7 m 8 o X 9 ! # $ % ' ( ) * O + P , Q - R . S / T : ~ abbbu v = ? @ [ ] ^ _ ` p q r s t
261 majorIR, minorIR, majorDbg, minorDbg)
264cdef nvvmResult _nvvmCreateProgram(nvvmProgram* prog) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
265 global __nvvmCreateProgram
266 _check_or_init_nvvm() 1aYZjklmnoWXbcdefghi0NwOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
267 if __nvvmCreateProgram == NULL: 1aYZjklmnoWXbcdefghi0NwOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
268 with gil:
269 raise FunctionNotFoundError("function nvvmCreateProgram is not found") 1bcdefghiN
270 return (<nvvmResult (*)(nvvmProgram*) noexcept nogil>__nvvmCreateProgram)( 1aYZjklmnoWXbcdefghi0NwOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
271 prog)
274cdef nvvmResult _nvvmDestroyProgram(nvvmProgram* prog) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
275 global __nvvmDestroyProgram
276 _check_or_init_nvvm() 1a|YZjklmnoWXbcdefghi0NwOPQRST}xy1U2zABCDEFGHIJKLMuvpqrst
277 if __nvvmDestroyProgram == NULL: 1a|YZjklmnoWXbcdefghi0NwOPQRST}xy1U2zABCDEFGHIJKLMuvpqrst
278 with gil:
279 raise FunctionNotFoundError("function nvvmDestroyProgram is not found") 1bcdefghiN
280 return (<nvvmResult (*)(nvvmProgram*) noexcept nogil>__nvvmDestroyProgram)( 1a|YZjklmnoWXbcdefghi0NwOPQRST}xy1U2zABCDEFGHIJKLMuvpqrst
281 prog)
284cdef nvvmResult _nvvmAddModuleToProgram(nvvmProgram prog, const char* buffer, size_t size, const char* name) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
285 global __nvvmAddModuleToProgram
286 _check_or_init_nvvm() 1ajklmnobcdefghiOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
287 if __nvvmAddModuleToProgram == NULL: 1ajklmnobcdefghiOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
288 with gil:
289 raise FunctionNotFoundError("function nvvmAddModuleToProgram is not found") 1jklmnobcdefghiw
290 return (<nvvmResult (*)(nvvmProgram, const char*, size_t, const char*) noexcept nogil>__nvvmAddModuleToProgram)( 1ajklmnobcdefghiwOPQRST;xy1U2VzABCDEFGHIJKLMuvpqrst
291 prog, buffer, size, name)
294cdef nvvmResult _nvvmLazyAddModuleToProgram(nvvmProgram prog, const char* buffer, size_t size, const char* name) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
295 global __nvvmLazyAddModuleToProgram
296 _check_or_init_nvvm()
297 if __nvvmLazyAddModuleToProgram == NULL:
298 with gil:
299 raise FunctionNotFoundError("function nvvmLazyAddModuleToProgram is not found") 1jklmnobcdefghiw
300 return (<nvvmResult (*)(nvvmProgram, const char*, size_t, const char*) noexcept nogil>__nvvmLazyAddModuleToProgram)( 1jklmnobcdefghiw
301 prog, buffer, size, name)
304cdef nvvmResult _nvvmCompileProgram(nvvmProgram prog, int numOptions, const char** options) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
305 global __nvvmCompileProgram
306 _check_or_init_nvvm() 1ajlnWbcdefghixyVzABCDEFGHIJKLMuvpqrst
307 if __nvvmCompileProgram == NULL: 1ajlnWbcdefghixyVzABCDEFGHIJKLMuvpqrst
308 with gil:
309 raise FunctionNotFoundError("function nvvmCompileProgram is not found") 13
310 return (<nvvmResult (*)(nvvmProgram, int, const char**) noexcept nogil>__nvvmCompileProgram)( 1ajlnWbcdefghi3xyVzABCDEFGHIJKLMuvpqrst
311 prog, numOptions, options)
314cdef nvvmResult _nvvmVerifyProgram(nvvmProgram prog, int numOptions, const char** options) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
315 global __nvvmVerifyProgram
316 _check_or_init_nvvm() 1kmoXOPQRSTxyUVzABCDEFGHIJKLMuv
317 if __nvvmVerifyProgram == NULL: 1kmoXOPQRSTxyUVzABCDEFGHIJKLMuv
318 with gil:
319 raise FunctionNotFoundError("function nvvmVerifyProgram is not found")
320 return (<nvvmResult (*)(nvvmProgram, int, const char**) noexcept nogil>__nvvmVerifyProgram)( 1kmoXOPQRSTxyUVzABCDEFGHIJKLMuv
321 prog, numOptions, options)
324cdef nvvmResult _nvvmGetCompiledResultSize(nvvmProgram prog, size_t* bufferSizeRet) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
325 global __nvvmGetCompiledResultSize
326 _check_or_init_nvvm() 1bcdefghiNxyVzABCDEFGHIJKLMuv
327 if __nvvmGetCompiledResultSize == NULL: 1bcdefghiNxyVzABCDEFGHIJKLMuv
328 with gil:
329 raise FunctionNotFoundError("function nvvmGetCompiledResultSize is not found")
330 return (<nvvmResult (*)(nvvmProgram, size_t*) noexcept nogil>__nvvmGetCompiledResultSize)( 1bcdefghiNxyVzABCDEFGHIJKLMuv
331 prog, bufferSizeRet)
334cdef nvvmResult _nvvmGetCompiledResult(nvvmProgram prog, char* buffer) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
335 global __nvvmGetCompiledResult
336 _check_or_init_nvvm() 1bcdefghiNxyVzABCDEFGHIJKLMuv
337 if __nvvmGetCompiledResult == NULL: 1bcdefghiNxyVzABCDEFGHIJKLMuv
338 with gil:
339 raise FunctionNotFoundError("function nvvmGetCompiledResult is not found")
340 return (<nvvmResult (*)(nvvmProgram, char*) noexcept nogil>__nvvmGetCompiledResult)( 1bcdefghiNxyVzABCDEFGHIJKLMuv
341 prog, buffer)
344cdef nvvmResult _nvvmGetProgramLogSize(nvvmProgram prog, size_t* bufferSizeRet) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
345 global __nvvmGetProgramLogSize
346 _check_or_init_nvvm() 1jklmnobcdefghiwU
347 if __nvvmGetProgramLogSize == NULL: 1jklmnobcdefghiwU
348 with gil:
349 raise FunctionNotFoundError("function nvvmGetProgramLogSize is not found")
350 return (<nvvmResult (*)(nvvmProgram, size_t*) noexcept nogil>__nvvmGetProgramLogSize)( 1jklmnobcdefghiwU
351 prog, bufferSizeRet)
354cdef nvvmResult _nvvmGetProgramLog(nvvmProgram prog, char* buffer) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
355 global __nvvmGetProgramLog
356 _check_or_init_nvvm() 1jklmnobcdefghiwU
357 if __nvvmGetProgramLog == NULL: 1jklmnobcdefghiwU
358 with gil:
359 raise FunctionNotFoundError("function nvvmGetProgramLog is not found")
360 return (<nvvmResult (*)(nvvmProgram, char*) noexcept nogil>__nvvmGetProgramLog)( 1jklmnobcdefghiwU
361 prog, buffer)
364cdef nvvmResult _nvvmLLVMVersion(const char* arch, int* major) except?_NVVMRESULT_INTERNAL_LOADING_ERROR nogil:
365 global __nvvmLLVMVersion
366 _check_or_init_nvvm() 13
367 if __nvvmLLVMVersion == NULL: 13
368 with gil:
369 raise FunctionNotFoundError("function nvvmLLVMVersion is not found")
370 return (<nvvmResult (*)(const char*, int*) noexcept nogil>__nvvmLLVMVersion)( 13
371 arch, major)