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

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 

7  

8  

9# <<<< PREAMBLE CONTENT >>>> 

10  

11cdef extern from "<dlfcn.h>": 

12 void* _cyb_dlsym "dlsym"(void*, const char*) nogil 

13 const void * _cyb_RTLD_DEFAULT "RTLD_DEFAULT" 

14  

15from libc.stdint cimport intptr_t as _cyb_intptr_t 

16  

17import threading as _cyb_threading 

18  

19cdef bint _cyb___py_nvvm_init = False 

20cdef dict _cyb_func_ptrs = None 

21cdef object _cyb_symbol_lock = _cyb_threading.Lock() 

22  

23# <<<< END OF PREAMBLE CONTENT >>>> 

24  

25from libc.stdint cimport uintptr_t 

26  

27from .utils import FunctionNotFoundError, NotSupportedError 

28from cuda.pathfinder import load_nvidia_dynamic_lib 

29  

30  

31############################################################################### 

32# Wrapper init 

33############################################################################### 

34  

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 

49  

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 

55  

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') 

62  

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') 

69  

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') 

76  

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') 

83  

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') 

90  

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') 

97  

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

104  

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') 

111  

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') 

118  

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') 

125  

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') 

132  

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') 

139  

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') 

146  

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') 

153  

154 _cyb___py_nvvm_init = True 

155 return 0 

156  

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

160  

161 return _init_nvvm() 

162  

163  

164cpdef dict _inspect_function_pointers(): 1apqrst

165 global _cyb_func_ptrs 

166 if _cyb_func_ptrs is not None: 

167 return _cyb_func_ptrs 

168  

169 _check_or_init_nvvm() 

170 cdef dict data = {} 

171 global __nvvmGetErrorString 

172 data["__nvvmGetErrorString"] = <_cyb_intptr_t>__nvvmGetErrorString 

173  

174 global __nvvmVersion 

175 data["__nvvmVersion"] = <_cyb_intptr_t>__nvvmVersion 

176  

177 global __nvvmIRVersion 

178 data["__nvvmIRVersion"] = <_cyb_intptr_t>__nvvmIRVersion 

179  

180 global __nvvmCreateProgram 

181 data["__nvvmCreateProgram"] = <_cyb_intptr_t>__nvvmCreateProgram 

182  

183 global __nvvmDestroyProgram 

184 data["__nvvmDestroyProgram"] = <_cyb_intptr_t>__nvvmDestroyProgram 

185  

186 global __nvvmAddModuleToProgram 

187 data["__nvvmAddModuleToProgram"] = <_cyb_intptr_t>__nvvmAddModuleToProgram 

188  

189 global __nvvmLazyAddModuleToProgram 

190 data["__nvvmLazyAddModuleToProgram"] = <_cyb_intptr_t>__nvvmLazyAddModuleToProgram 1a4

191  

192 global __nvvmCompileProgram 

193 data["__nvvmCompileProgram"] = <_cyb_intptr_t>__nvvmCompileProgram 1a4

194  

195 global __nvvmVerifyProgram 

196 data["__nvvmVerifyProgram"] = <_cyb_intptr_t>__nvvmVerifyProgram 

197  

198 global __nvvmGetCompiledResultSize 

199 data["__nvvmGetCompiledResultSize"] = <_cyb_intptr_t>__nvvmGetCompiledResultSize 1a56789!#$%'()*+,-./:pqrst

200  

201 global __nvvmGetCompiledResult 

202 data["__nvvmGetCompiledResult"] = <_cyb_intptr_t>__nvvmGetCompiledResult 

203  

204 global __nvvmGetProgramLogSize 

205 data["__nvvmGetProgramLogSize"] = <_cyb_intptr_t>__nvvmGetProgramLogSize 

206  

207 global __nvvmGetProgramLog 

208 data["__nvvmGetProgramLog"] = <_cyb_intptr_t>__nvvmGetProgramLog 

209  

210 global __nvvmLLVMVersion 

211 data["__nvvmLLVMVersion"] = <_cyb_intptr_t>__nvvmLLVMVersion 

212 _cyb_func_ptrs = data 

213 return data 1aYZjklmnoWXbcdefghi0NwOPQRSTpqrst

214  

215  

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

221  

222  

223  

224  

225cdef void* load_library() except* with gil: 

226 cdef uintptr_t handle = load_nvidia_dynamic_lib("nvvm")._handle_uint 

227 return <void*>handle 

228  

229  

230############################################################################### 

231# Wrapper functions 

232############################################################################### 

233  

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) 

242  

243  

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) 

252  

253  

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) 

262  

263  

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) 

272  

273  

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) 

282  

283  

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) 

292  

293  

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) 

302  

303  

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) 

312  

313  

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) 

322  

323  

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) 

332  

333  

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) 

342  

343  

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) 

352  

353  

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) 

362  

363  

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)