Show / Hide Table of Contents

    Class DriverAPINativeMethods.ModuleManagement

    Combines all API calls for module management

    Inheritance
    System.Object
    DriverAPINativeMethods.ModuleManagement
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: ManagedCuda
    Assembly: ManagedCuda.dll
    Syntax
    public static class ModuleManagement

    Methods

    cuLinkAddData(CUlinkState, CUJITInputType, Byte[], SizeT, String, UInt32, CUJITOption[], IntPtr[])

    Add an input to a pending linker invocation.

    Ownership of data data is retained by the caller. No reference is retained to any inputs after this call returns.

    This method accepts only compiler options, which are used if the data must be compiled from PTX, and does not accept any of ::CU_JIT_WALL_TIME, ::CU_JIT_INFO_LOG_BUFFER, ::CU_JIT_ERROR_LOG_BUFFER, ::CU_JIT_TARGET_FROM_CUCONTEXT, or ::CU_JIT_TARGET.

    Declaration
    public static CUResult cuLinkAddData(CUlinkState state, CUJITInputType type, byte[] data, SizeT size, string name, uint numOptions, CUJITOption[] options, IntPtr[] optionValues)
    Parameters
    Type Name Description
    CUlinkState state

    A pending linker action.

    CUJITInputType type

    The type of the input data.

    System.Byte[] data

    The input data. PTX must be NULL-terminated.

    SizeT size

    The length of the input data.

    System.String name

    An optional name for this input in log messages.

    System.UInt32 numOptions

    Size of options.

    CUJITOption[] options

    Options to be applied only for this input (overrides options from ::cuLinkCreate).

    System.IntPtr[] optionValues

    Array of option values, each cast to void *.

    Returns
    Type Description
    CUResult

    cuLinkAddFile(CUlinkState, CUJITInputType, String, UInt32, CUJITOption[], IntPtr[])

    Add a file input to a pending linker invocation.

    No reference is retained to any inputs after this call returns.

    This method accepts only compiler options, which are used if the data must be compiled from PTX, and does not accept any of ::CU_JIT_WALL_TIME, ::CU_JIT_INFO_LOG_BUFFER, ::CU_JIT_ERROR_LOG_BUFFER, ::CU_JIT_TARGET_FROM_CUCONTEXT, or ::CU_JIT_TARGET.

    This method is equivalent to invoking ::cuLinkAddData on the contents of the file.

    Declaration
    public static CUResult cuLinkAddFile(CUlinkState state, CUJITInputType type, string path, uint numOptions, CUJITOption[] options, IntPtr[] optionValues)
    Parameters
    Type Name Description
    CUlinkState state

    A pending linker action.

    CUJITInputType type

    The type of the input data.

    System.String path

    Path to the input file.

    System.UInt32 numOptions

    Size of options.

    CUJITOption[] options

    Options to be applied only for this input (overrides options from ::cuLinkCreate).

    System.IntPtr[] optionValues

    Array of option values, each cast to void *.

    Returns
    Type Description
    CUResult

    cuLinkComplete(CUlinkState, ref IntPtr, ref SizeT)

    Complete a pending linker invocation.

    Completes the pending linker action and returns the cubin image for the linked device code, which can be used with ::cuModuleLoadData.

    The cubin is owned by state, so it should be loaded before state is destroyed via ::cuLinkDestroy. This call does not destroy state.

    Declaration
    public static CUResult cuLinkComplete(CUlinkState state, ref IntPtr cubinOut, ref SizeT sizeOut)
    Parameters
    Type Name Description
    CUlinkState state

    A pending linker invocation

    System.IntPtr cubinOut

    On success, this will point to the output image

    SizeT sizeOut

    Optional parameter to receive the size of the generated image

    Returns
    Type Description
    CUResult

    cuLinkCreate(UInt32, CUJITOption[], IntPtr[], ref CUlinkState)

    Creates a pending JIT linker invocation.

    If the call is successful, the caller owns the returned CUlinkState, which should eventually be destroyed with ::cuLinkDestroy. The device code machine size (32 or 64 bit) will match the calling application.

    Both linker and compiler options may be specified. Compiler options will be applied to inputs to this linker action which must be compiled from PTX. The options ::CU_JIT_WALL_TIME, ::CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES, and ::CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES will accumulate data until the CUlinkState is destroyed.

    optionValues must remain valid for the life of the CUlinkState if output options are used. No other references to inputs are maintained after this call returns.

    Declaration
    public static CUResult cuLinkCreate(uint numOptions, CUJITOption[] options, IntPtr[] optionValues, ref CUlinkState stateOut)
    Parameters
    Type Name Description
    System.UInt32 numOptions

    Size of options arrays

    CUJITOption[] options

    Array of linker and compiler options

    System.IntPtr[] optionValues

    Array of option values, each cast to void *

    CUlinkState stateOut

    On success, this will contain a CUlinkState to specify and complete this action

    Returns
    Type Description
    CUResult

    cuLinkDestroy(CUlinkState)

    Destroys state for a JIT linker invocation.

    Declaration
    public static CUResult cuLinkDestroy(CUlinkState state)
    Parameters
    Type Name Description
    CUlinkState state

    State object for the linker invocation

    Returns
    Type Description
    CUResult

    cuModuleGetFunction(ref CUfunction, CUmodule, String)

    Returns in hfunc the handle of the function of name name located in module hmod. If no function of that name exists, cuModuleGetFunction(ref CUfunction, CUmodule, String) returns ErrorNotFound.

    Declaration
    public static CUResult cuModuleGetFunction(ref CUfunction hfunc, CUmodule hmod, string name)
    Parameters
    Type Name Description
    CUfunction hfunc

    Returned function handle

    CUmodule hmod

    Module to retrieve function from

    System.String name

    Name of function to retrieve

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleGetGlobal_v2(ref CUdeviceptr, ref SizeT, CUmodule, String)

    Returns in dptr and bytes the base pointer and size of the global of name name located in module hmod. If no variable of that name exists, cuModuleGetGlobal_v2(ref CUdeviceptr, ref SizeT, CUmodule, String) returns ErrorNotFound. Both parameters dptr and bytes are optional. If one of them is null, it is ignored.

    Declaration
    public static CUResult cuModuleGetGlobal_v2(ref CUdeviceptr dptr, ref SizeT bytes, CUmodule hmod, string name)
    Parameters
    Type Name Description
    CUdeviceptr dptr

    Returned global device pointer

    SizeT bytes

    Returned global size in bytes

    CUmodule hmod

    Module to retrieve global from

    System.String name

    Name of global to retrieve

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleGetSurfRef(ref CUsurfref, CUmodule, String)

    Returns in pSurfRef the handle of the surface reference of name name in the module hmod. If no surface reference of that name exists, cuModuleGetSurfRef(ref CUsurfref, CUmodule, String) returns ErrorNotFound.

    Declaration
    public static CUResult cuModuleGetSurfRef(ref CUsurfref pSurfRef, CUmodule hmod, string name)
    Parameters
    Type Name Description
    CUsurfref pSurfRef

    Returned surface reference

    CUmodule hmod

    Module to retrieve surface reference from

    System.String name

    Name of surface reference to retrieve

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleGetTexRef(ref CUtexref, CUmodule, String)

    Returns in pTexRef the handle of the texture reference of name name in the module hmod. If no texture reference of that name exists, cuModuleGetSurfRef(ref CUsurfref, CUmodule, String) returns ErrorNotFound. This texture reference handle should not be destroyed, since it will be destroyed when the module is unloaded.

    Declaration
    public static CUResult cuModuleGetTexRef(ref CUtexref pTexRef, CUmodule hmod, string name)
    Parameters
    Type Name Description
    CUtexref pTexRef

    Returned texture reference

    CUmodule hmod

    Module to retrieve texture reference from

    System.String name

    Name of texture reference to retrieve

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleLoad(ref CUmodule, String)

    Takes a filename fname and loads the corresponding module module into the current context. The CUDA driver API does not attempt to lazily allocate the resources needed by a module; if the memory for functions and data (constant and global) needed by the module cannot be allocated, cuModuleLoad(ref CUmodule, String) fails. The file should be a cubin file as output by nvcc or a PTX file, either as output by nvcc or handwrtten.

    Declaration
    public static CUResult cuModuleLoad(ref CUmodule module, string fname)
    Parameters
    Type Name Description
    CUmodule module

    Returned module

    System.String fname

    Filename of module to load

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound, ErrorOutOfMemory, ErrorFileNotFound, ErrorSharedObjectSymbolNotFound, ErrorSharedObjectInitFailed. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleLoadData(ref CUmodule, Byte[])

    Takes a byte[] as image and loads the corresponding module module into the current context. The byte array may be obtained by mapping a cubin or PTX file, passing a cubin or PTX file as a null-terminated text string.

    The byte[] is a replacement for the original pointer.

    Declaration
    public static CUResult cuModuleLoadData(ref CUmodule module, byte[] image)
    Parameters
    Type Name Description
    CUmodule module

    Returned module

    System.Byte[] image

    Module data to load

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorOutOfMemory, ErrorSharedObjectSymbolNotFound, ErrorSharedObjectInitFailed. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleLoadDataEx(ref CUmodule, Byte[], UInt32, CUJITOption[], IntPtr[])

    Takes a byte[] as image and loads the corresponding module module into the current context. The byte array may be obtained by mapping a cubin or PTX file, passing a cubin or PTX file as a null-terminated text string.

    Options are passed as an array via options and any corresponding parameters are passed in optionValues. The number of total options is supplied via numOptions. Any outputs will be returned via optionValues. Supported options are definen in CUJITOption.

    The options values are currently passed in IntPtr-type and should then be cast into their real type. This might change in future.

    Declaration
    public static CUResult cuModuleLoadDataEx(ref CUmodule module, byte[] image, uint numOptions, CUJITOption[] options, IntPtr[] optionValues)
    Parameters
    Type Name Description
    CUmodule module

    Returned module

    System.Byte[] image

    Module data to load

    System.UInt32 numOptions

    Number of options

    CUJITOption[] options

    Options for JIT

    System.IntPtr[] optionValues

    Option values for JIT

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorOutOfMemory ErrorNoBinaryForGPU, ErrorSharedObjectSymbolNotFound, ErrorSharedObjectInitFailed. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleLoadFatBinary(ref CUmodule, Byte[])

    Takes a byte[] as fatCubin and loads the corresponding module module into the current context. The byte[] represents a fat binary object, which is a collection of different cubin files, all representing the same device code, but compiled and optimized for different architectures. Prior to CUDA 4.0, there was no documented API for constructing and using fat binary objects by programmers. Starting with CUDA 4.0, fat binary objects can be constructed by providing the -fatbin option to nvcc. More information can be found in the nvcc document.

    Declaration
    public static CUResult cuModuleLoadFatBinary(ref CUmodule module, byte[] fatCubin)
    Parameters
    Type Name Description
    CUmodule module

    Returned module

    System.Byte[] fatCubin

    Fat binary to load

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue, ErrorNotFound, ErrorOutOfMemory ErrorNoBinaryForGPU, ErrorSharedObjectSymbolNotFound, ErrorSharedObjectInitFailed. Note that this function may also return error codes from previous, asynchronous launches.

    cuModuleUnload(CUmodule)

    Unloads a module hmod from the current context.

    Declaration
    public static CUResult cuModuleUnload(CUmodule hmod)
    Parameters
    Type Name Description
    CUmodule hmod

    Module to unload

    Returns
    Type Description
    CUResult

    CUDA Error Codes: Success, ErrorDeinitialized, ErrorNotInitialized, ErrorInvalidContext, ErrorInvalidValue. Note that this function may also return error codes from previous, asynchronous launches.

    • Improve this Doc
    • View Source
    Back to top Generated by DocFX