server / source /cuda /bindings /_internal /nvjitlink_linux.pyx
Harmony18090's picture
Add source batch 2/11
76f9669 verified
raw
history blame
15.3 kB
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
#
# This code was automatically generated across versions from 12.0.1 to 12.9.1. Do not modify it directly.
from libc.stdint cimport intptr_t, uintptr_t
import threading
from .utils import FunctionNotFoundError, NotSupportedError
from cuda.pathfinder import load_nvidia_dynamic_lib
###############################################################################
# Extern
###############################################################################
cdef extern from "<dlfcn.h>" nogil:
void* dlopen(const char*, int)
char* dlerror()
void* dlsym(void*, const char*)
int dlclose(void*)
enum:
RTLD_LAZY
RTLD_NOW
RTLD_GLOBAL
RTLD_LOCAL
const void* RTLD_DEFAULT 'RTLD_DEFAULT'
###############################################################################
# Wrapper init
###############################################################################
cdef object __symbol_lock = threading.Lock()
cdef bint __py_nvjitlink_init = False
cdef void* __cuDriverGetVersion = NULL
cdef void* __nvJitLinkCreate = NULL
cdef void* __nvJitLinkDestroy = NULL
cdef void* __nvJitLinkAddData = NULL
cdef void* __nvJitLinkAddFile = NULL
cdef void* __nvJitLinkComplete = NULL
cdef void* __nvJitLinkGetLinkedCubinSize = NULL
cdef void* __nvJitLinkGetLinkedCubin = NULL
cdef void* __nvJitLinkGetLinkedPtxSize = NULL
cdef void* __nvJitLinkGetLinkedPtx = NULL
cdef void* __nvJitLinkGetErrorLogSize = NULL
cdef void* __nvJitLinkGetErrorLog = NULL
cdef void* __nvJitLinkGetInfoLogSize = NULL
cdef void* __nvJitLinkGetInfoLog = NULL
cdef void* __nvJitLinkVersion = NULL
cdef void* load_library() except* with gil:
cdef uintptr_t handle = load_nvidia_dynamic_lib("nvJitLink")._handle_uint
return <void*>handle
cdef int __check_or_init_nvjitlink() except -1 nogil:
global __py_nvjitlink_init
cdef void* handle = NULL
with gil, __symbol_lock:
# Load function
global __nvJitLinkCreate
__nvJitLinkCreate = dlsym(RTLD_DEFAULT, 'nvJitLinkCreate')
if __nvJitLinkCreate == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkCreate = dlsym(handle, 'nvJitLinkCreate')
global __nvJitLinkDestroy
__nvJitLinkDestroy = dlsym(RTLD_DEFAULT, 'nvJitLinkDestroy')
if __nvJitLinkDestroy == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkDestroy = dlsym(handle, 'nvJitLinkDestroy')
global __nvJitLinkAddData
__nvJitLinkAddData = dlsym(RTLD_DEFAULT, 'nvJitLinkAddData')
if __nvJitLinkAddData == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkAddData = dlsym(handle, 'nvJitLinkAddData')
global __nvJitLinkAddFile
__nvJitLinkAddFile = dlsym(RTLD_DEFAULT, 'nvJitLinkAddFile')
if __nvJitLinkAddFile == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkAddFile = dlsym(handle, 'nvJitLinkAddFile')
global __nvJitLinkComplete
__nvJitLinkComplete = dlsym(RTLD_DEFAULT, 'nvJitLinkComplete')
if __nvJitLinkComplete == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkComplete = dlsym(handle, 'nvJitLinkComplete')
global __nvJitLinkGetLinkedCubinSize
__nvJitLinkGetLinkedCubinSize = dlsym(RTLD_DEFAULT, 'nvJitLinkGetLinkedCubinSize')
if __nvJitLinkGetLinkedCubinSize == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetLinkedCubinSize = dlsym(handle, 'nvJitLinkGetLinkedCubinSize')
global __nvJitLinkGetLinkedCubin
__nvJitLinkGetLinkedCubin = dlsym(RTLD_DEFAULT, 'nvJitLinkGetLinkedCubin')
if __nvJitLinkGetLinkedCubin == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetLinkedCubin = dlsym(handle, 'nvJitLinkGetLinkedCubin')
global __nvJitLinkGetLinkedPtxSize
__nvJitLinkGetLinkedPtxSize = dlsym(RTLD_DEFAULT, 'nvJitLinkGetLinkedPtxSize')
if __nvJitLinkGetLinkedPtxSize == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetLinkedPtxSize = dlsym(handle, 'nvJitLinkGetLinkedPtxSize')
global __nvJitLinkGetLinkedPtx
__nvJitLinkGetLinkedPtx = dlsym(RTLD_DEFAULT, 'nvJitLinkGetLinkedPtx')
if __nvJitLinkGetLinkedPtx == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetLinkedPtx = dlsym(handle, 'nvJitLinkGetLinkedPtx')
global __nvJitLinkGetErrorLogSize
__nvJitLinkGetErrorLogSize = dlsym(RTLD_DEFAULT, 'nvJitLinkGetErrorLogSize')
if __nvJitLinkGetErrorLogSize == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetErrorLogSize = dlsym(handle, 'nvJitLinkGetErrorLogSize')
global __nvJitLinkGetErrorLog
__nvJitLinkGetErrorLog = dlsym(RTLD_DEFAULT, 'nvJitLinkGetErrorLog')
if __nvJitLinkGetErrorLog == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetErrorLog = dlsym(handle, 'nvJitLinkGetErrorLog')
global __nvJitLinkGetInfoLogSize
__nvJitLinkGetInfoLogSize = dlsym(RTLD_DEFAULT, 'nvJitLinkGetInfoLogSize')
if __nvJitLinkGetInfoLogSize == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetInfoLogSize = dlsym(handle, 'nvJitLinkGetInfoLogSize')
global __nvJitLinkGetInfoLog
__nvJitLinkGetInfoLog = dlsym(RTLD_DEFAULT, 'nvJitLinkGetInfoLog')
if __nvJitLinkGetInfoLog == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkGetInfoLog = dlsym(handle, 'nvJitLinkGetInfoLog')
global __nvJitLinkVersion
__nvJitLinkVersion = dlsym(RTLD_DEFAULT, 'nvJitLinkVersion')
if __nvJitLinkVersion == NULL:
if handle == NULL:
handle = load_library()
__nvJitLinkVersion = dlsym(handle, 'nvJitLinkVersion')
__py_nvjitlink_init = True
return 0
cdef inline int _check_or_init_nvjitlink() except -1 nogil:
if __py_nvjitlink_init:
return 0
return __check_or_init_nvjitlink()
cdef dict func_ptrs = None
cpdef dict _inspect_function_pointers():
global func_ptrs
if func_ptrs is not None:
return func_ptrs
_check_or_init_nvjitlink()
cdef dict data = {}
global __nvJitLinkCreate
data["__nvJitLinkCreate"] = <intptr_t>__nvJitLinkCreate
global __nvJitLinkDestroy
data["__nvJitLinkDestroy"] = <intptr_t>__nvJitLinkDestroy
global __nvJitLinkAddData
data["__nvJitLinkAddData"] = <intptr_t>__nvJitLinkAddData
global __nvJitLinkAddFile
data["__nvJitLinkAddFile"] = <intptr_t>__nvJitLinkAddFile
global __nvJitLinkComplete
data["__nvJitLinkComplete"] = <intptr_t>__nvJitLinkComplete
global __nvJitLinkGetLinkedCubinSize
data["__nvJitLinkGetLinkedCubinSize"] = <intptr_t>__nvJitLinkGetLinkedCubinSize
global __nvJitLinkGetLinkedCubin
data["__nvJitLinkGetLinkedCubin"] = <intptr_t>__nvJitLinkGetLinkedCubin
global __nvJitLinkGetLinkedPtxSize
data["__nvJitLinkGetLinkedPtxSize"] = <intptr_t>__nvJitLinkGetLinkedPtxSize
global __nvJitLinkGetLinkedPtx
data["__nvJitLinkGetLinkedPtx"] = <intptr_t>__nvJitLinkGetLinkedPtx
global __nvJitLinkGetErrorLogSize
data["__nvJitLinkGetErrorLogSize"] = <intptr_t>__nvJitLinkGetErrorLogSize
global __nvJitLinkGetErrorLog
data["__nvJitLinkGetErrorLog"] = <intptr_t>__nvJitLinkGetErrorLog
global __nvJitLinkGetInfoLogSize
data["__nvJitLinkGetInfoLogSize"] = <intptr_t>__nvJitLinkGetInfoLogSize
global __nvJitLinkGetInfoLog
data["__nvJitLinkGetInfoLog"] = <intptr_t>__nvJitLinkGetInfoLog
global __nvJitLinkVersion
data["__nvJitLinkVersion"] = <intptr_t>__nvJitLinkVersion
func_ptrs = data
return data
cpdef _inspect_function_pointer(str name):
global func_ptrs
if func_ptrs is None:
func_ptrs = _inspect_function_pointers()
return func_ptrs[name]
###############################################################################
# Wrapper functions
###############################################################################
cdef nvJitLinkResult _nvJitLinkCreate(nvJitLinkHandle* handle, uint32_t numOptions, const char** options) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkCreate
_check_or_init_nvjitlink()
if __nvJitLinkCreate == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkCreate is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle*, uint32_t, const char**) noexcept nogil>__nvJitLinkCreate)(
handle, numOptions, options)
cdef nvJitLinkResult _nvJitLinkDestroy(nvJitLinkHandle* handle) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkDestroy
_check_or_init_nvjitlink()
if __nvJitLinkDestroy == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkDestroy is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle*) noexcept nogil>__nvJitLinkDestroy)(
handle)
cdef nvJitLinkResult _nvJitLinkAddData(nvJitLinkHandle handle, nvJitLinkInputType inputType, const void* data, size_t size, const char* name) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkAddData
_check_or_init_nvjitlink()
if __nvJitLinkAddData == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkAddData is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, nvJitLinkInputType, const void*, size_t, const char*) noexcept nogil>__nvJitLinkAddData)(
handle, inputType, data, size, name)
cdef nvJitLinkResult _nvJitLinkAddFile(nvJitLinkHandle handle, nvJitLinkInputType inputType, const char* fileName) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkAddFile
_check_or_init_nvjitlink()
if __nvJitLinkAddFile == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkAddFile is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, nvJitLinkInputType, const char*) noexcept nogil>__nvJitLinkAddFile)(
handle, inputType, fileName)
cdef nvJitLinkResult _nvJitLinkComplete(nvJitLinkHandle handle) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkComplete
_check_or_init_nvjitlink()
if __nvJitLinkComplete == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkComplete is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle) noexcept nogil>__nvJitLinkComplete)(
handle)
cdef nvJitLinkResult _nvJitLinkGetLinkedCubinSize(nvJitLinkHandle handle, size_t* size) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetLinkedCubinSize
_check_or_init_nvjitlink()
if __nvJitLinkGetLinkedCubinSize == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetLinkedCubinSize is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, size_t*) noexcept nogil>__nvJitLinkGetLinkedCubinSize)(
handle, size)
cdef nvJitLinkResult _nvJitLinkGetLinkedCubin(nvJitLinkHandle handle, void* cubin) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetLinkedCubin
_check_or_init_nvjitlink()
if __nvJitLinkGetLinkedCubin == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetLinkedCubin is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, void*) noexcept nogil>__nvJitLinkGetLinkedCubin)(
handle, cubin)
cdef nvJitLinkResult _nvJitLinkGetLinkedPtxSize(nvJitLinkHandle handle, size_t* size) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetLinkedPtxSize
_check_or_init_nvjitlink()
if __nvJitLinkGetLinkedPtxSize == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetLinkedPtxSize is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, size_t*) noexcept nogil>__nvJitLinkGetLinkedPtxSize)(
handle, size)
cdef nvJitLinkResult _nvJitLinkGetLinkedPtx(nvJitLinkHandle handle, char* ptx) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetLinkedPtx
_check_or_init_nvjitlink()
if __nvJitLinkGetLinkedPtx == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetLinkedPtx is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, char*) noexcept nogil>__nvJitLinkGetLinkedPtx)(
handle, ptx)
cdef nvJitLinkResult _nvJitLinkGetErrorLogSize(nvJitLinkHandle handle, size_t* size) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetErrorLogSize
_check_or_init_nvjitlink()
if __nvJitLinkGetErrorLogSize == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetErrorLogSize is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, size_t*) noexcept nogil>__nvJitLinkGetErrorLogSize)(
handle, size)
cdef nvJitLinkResult _nvJitLinkGetErrorLog(nvJitLinkHandle handle, char* log) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetErrorLog
_check_or_init_nvjitlink()
if __nvJitLinkGetErrorLog == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetErrorLog is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, char*) noexcept nogil>__nvJitLinkGetErrorLog)(
handle, log)
cdef nvJitLinkResult _nvJitLinkGetInfoLogSize(nvJitLinkHandle handle, size_t* size) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetInfoLogSize
_check_or_init_nvjitlink()
if __nvJitLinkGetInfoLogSize == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetInfoLogSize is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, size_t*) noexcept nogil>__nvJitLinkGetInfoLogSize)(
handle, size)
cdef nvJitLinkResult _nvJitLinkGetInfoLog(nvJitLinkHandle handle, char* log) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkGetInfoLog
_check_or_init_nvjitlink()
if __nvJitLinkGetInfoLog == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkGetInfoLog is not found")
return (<nvJitLinkResult (*)(nvJitLinkHandle, char*) noexcept nogil>__nvJitLinkGetInfoLog)(
handle, log)
cdef nvJitLinkResult _nvJitLinkVersion(unsigned int* major, unsigned int* minor) except?_NVJITLINKRESULT_INTERNAL_LOADING_ERROR nogil:
global __nvJitLinkVersion
_check_or_init_nvjitlink()
if __nvJitLinkVersion == NULL:
with gil:
raise FunctionNotFoundError("function nvJitLinkVersion is not found")
return (<nvJitLinkResult (*)(unsigned int*, unsigned int*) noexcept nogil>__nvJitLinkVersion)(
major, minor)