Show / Hide Table of Contents

    Class CudaKernel

    A CUDA function or CUDA kernel

    Inheritance
    System.Object
    CudaKernel
    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 class CudaKernel

    Constructors

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions must be set before running the kernel. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, dim3)

    Loads the given CUDA kernel from the CUmodule. Block dimensions are set directly, grid dimensions must be set before running the kernel. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, dim3 blockDim)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    dim3 blockDim

    Dimension of block of threads

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, dim3, dim3)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions are set directly. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, dim3 blockDim, dim3 gridDim)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    dim3 blockDim

    Dimension of block of threads

    dim3 gridDim

    Dimension of grid of block of threads

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, dim3, dim3, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions and shared memory size are set directly.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, dim3 blockDim, dim3 gridDim, uint sharedMemory)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    dim3 blockDim

    Dimension of block of threads (2D - z-component is discarded)

    dim3 gridDim

    Dimension of grid of block of threads (3D)

    System.UInt32 sharedMemory

    Dynamic shared memory size in Bytes

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, dim3, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block dimensions and shared memors size are set directly, grid dimensions must be set before running the kernel.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, dim3 blockDim, uint sharedMemory)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    dim3 blockDim

    Dimension of block of threads

    System.UInt32 sharedMemory

    Dynamic shared memory size in Bytes

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions must be set before running the kernel. Shared memory size is set directly.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, uint sharedMemory)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    System.UInt32 sharedMemory

    Dynamic shared memory size in Bytes

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, UInt32, UInt32, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block dimensions are set directly, grid dimensions must be set before running the kernel. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, uint blockDimX, uint blockDimY, uint blockDimZ)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    System.UInt32 blockDimX

    Dimension of block of threads X

    System.UInt32 blockDimY

    Dimension of block of threads Y

    System.UInt32 blockDimZ

    Dimension of block of threads Z

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, UInt32, UInt32, UInt32, UInt32, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions are set directly. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, uint blockDimX, uint blockDimY, uint blockDimZ, uint gridDimX, uint gridDimY)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    System.UInt32 blockDimX

    Dimension of block of threads X

    System.UInt32 blockDimY

    Dimension of block of threads Y

    System.UInt32 blockDimZ

    Dimension of block of threads Z

    System.UInt32 gridDimX

    Dimension of grid of block of threads X

    System.UInt32 gridDimY

    Dimension of grid of block of threads Y

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block and Grid dimensions are set directly. Shared memory size is set to 0.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, uint blockDimX, uint blockDimY, uint blockDimZ, uint gridDimX, uint gridDimY, uint gridDimZ)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    System.UInt32 blockDimX

    Dimension of block of threads X

    System.UInt32 blockDimY

    Dimension of block of threads Y

    System.UInt32 blockDimZ

    Dimension of block of threads Z

    System.UInt32 gridDimX

    Dimension of grid of block of threads X

    System.UInt32 gridDimY

    Dimension of grid of block of threads Y

    System.UInt32 gridDimZ

    Dimension of grid of block of threads Z

    | Improve this Doc View Source

    CudaKernel(String, CUmodule, CudaContext, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

    Loads the given CUDA kernel from the CUmodule. Block dimensions and shared memors size are set directly, grid dimensions must be set before running the kernel.

    Declaration
    public CudaKernel(string kernelName, CUmodule module, CudaContext cuda, uint blockDimX, uint blockDimY, uint blockDimZ, uint gridDimX, uint gridDimY, uint gridDimZ, uint sharedMemory)
    Parameters
    Type Name Description
    System.String kernelName

    The kernel name as defined in the *.cu file

    CUmodule module

    The CUmodule which contains the kernel

    CudaContext cuda

    CUDA abstraction layer object (= CUDA context) for this Kernel

    System.UInt32 blockDimX

    Dimension of block of threads X

    System.UInt32 blockDimY

    Dimension of block of threads Y

    System.UInt32 blockDimZ

    Dimension of block of threads Z

    System.UInt32 gridDimX

    Dimension of grid of block of threads X

    System.UInt32 gridDimY

    Dimension of grid of block of threads Y

    System.UInt32 gridDimZ

    Dimension of grid of block of threads Z

    System.UInt32 sharedMemory

    Dynamic shared memory size in Bytes

    Fields

    | Improve this Doc View Source

    _binaryVersion

    Declaration
    protected Version _binaryVersion
    Field Value
    Type Description
    System.Version
    | Improve this Doc View Source

    _blockDim

    Declaration
    protected dim3 _blockDim
    Field Value
    Type Description
    dim3
    | Improve this Doc View Source

    _cacheModeCA

    Declaration
    protected bool _cacheModeCA
    Field Value
    Type Description
    System.Boolean
    | Improve this Doc View Source

    _constSizeBytes

    Declaration
    protected int _constSizeBytes
    Field Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    _cuda

    Declaration
    protected CudaContext _cuda
    Field Value
    Type Description
    CudaContext
    | Improve this Doc View Source

    _function

    Declaration
    protected CUfunction _function
    Field Value
    Type Description
    CUfunction
    | Improve this Doc View Source

    _gridDim

    Declaration
    protected dim3 _gridDim
    Field Value
    Type Description
    dim3
    | Improve this Doc View Source

    _kernelName

    Declaration
    protected string _kernelName
    Field Value
    Type Description
    System.String
    | Improve this Doc View Source

    _localSizeBytes

    Declaration
    protected int _localSizeBytes
    Field Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    _maxThreadsPerBlock

    Declaration
    protected int _maxThreadsPerBlock
    Field Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    _module

    Declaration
    protected CUmodule _module
    Field Value
    Type Description
    CUmodule
    | Improve this Doc View Source

    _numRegs

    Declaration
    protected int _numRegs
    Field Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    _ptxVersion

    Declaration
    protected Version _ptxVersion
    Field Value
    Type Description
    System.Version
    | Improve this Doc View Source

    _sharedMemSize

    Declaration
    protected uint _sharedMemSize
    Field Value
    Type Description
    System.UInt32
    | Improve this Doc View Source

    _sharedSizeBytes

    Declaration
    protected int _sharedSizeBytes
    Field Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    res

    Declaration
    protected CUResult res
    Field Value
    Type Description
    CUResult

    Properties

    | Improve this Doc View Source

    BinaryVersion

    The binary version for which the function was compiled. This value is the major binary version * 10 + the minor binary version, so a binary version 1.3 function would return the value 13. Note that this will return a value of 10 for legacy cubins that do not have a properly-encoded binary architecture version.

    Declaration
    public Version BinaryVersion { get; }
    Property Value
    Type Description
    System.Version
    | Improve this Doc View Source

    BlockDimensions

    Get or set the thread block dimensions. Block dimenions must be set before the first kernel launch.

    Declaration
    public dim3 BlockDimensions { get; set; }
    Property Value
    Type Description
    dim3
    | Improve this Doc View Source

    CacheModeCA

    The attribute to indicate whether the function has been compiled with user specified option "-Xptxas --dlcm=ca" set.

    Declaration
    public bool CacheModeCA { get; }
    Property Value
    Type Description
    System.Boolean
    | Improve this Doc View Source

    ConstMemory

    The size in bytes of statically-allocated shared memory required by this function.

    This does not include dynamically-allocated shared memory requested by the user at runtime.

    Declaration
    public int ConstMemory { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    CUFunction

    CUFunction

    Declaration
    public CUfunction CUFunction { get; }
    Property Value
    Type Description
    CUfunction
    | Improve this Doc View Source

    CUModule

    CUModule

    Declaration
    public CUmodule CUModule { get; }
    Property Value
    Type Description
    CUmodule
    | Improve this Doc View Source

    DynamicSharedMemory

    Dynamic shared memory size in Bytes. Must be set before the first kernel launch.

    Declaration
    public uint DynamicSharedMemory { get; set; }
    Property Value
    Type Description
    System.UInt32
    | Improve this Doc View Source

    GridDimensions

    Get or set the thread grid dimensions. Grid dimenions must be set before the first kernel launch.

    Declaration
    public dim3 GridDimensions { get; set; }
    Property Value
    Type Description
    dim3
    | Improve this Doc View Source

    KernelName

    Kernel name as defined in the kernel source code.

    Declaration
    public string KernelName { get; }
    Property Value
    Type Description
    System.String
    | Improve this Doc View Source

    LocalMemory

    The size in bytes of thread local memory used by this function.

    Declaration
    public int LocalMemory { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    MaxDynamicSharedSizeBytes

    This maximum size in bytes of dynamically-allocated shared memory.The value should contain the requested maximum size of dynamically-allocated shared memory.The sum of this value and the function attribute::CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES cannot exceed the device attribute ::CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN. The maximal size of requestable dynamic shared memory may differ by GPU architecture.

    Declaration
    public int MaxDynamicSharedSizeBytes { get; set; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    MaxThreadsPerBlock

    The number of threads beyond which a launch of the function would fail.

    This number depends on both the function and the device on which the function is currently loaded.

    Declaration
    public int MaxThreadsPerBlock { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    PreferredSharedMemoryCarveout

    On devices where the L1 cache and shared memory use the same hardware resources, this sets the shared memory carveout preference, in percent of the total resources.This is only a hint, and the driver can choose a different ratio if required to execute the function.

    Declaration
    public CUshared_carveout PreferredSharedMemoryCarveout { get; set; }
    Property Value
    Type Description
    CUshared_carveout
    | Improve this Doc View Source

    PtxVersion

    The PTX virtual architecture version for which the function was compiled. This value is the major PTX version * 10 + the minor PTX version, so a PTX version 1.3 function would return the value 13. Note that this may return the undefined value of 0 for cubins compiled prior to CUDA 3.0.

    Declaration
    public Version PtxVersion { get; }
    Property Value
    Type Description
    System.Version
    | Improve this Doc View Source

    Registers

    The number of registers used by each thread of this function.

    Declaration
    public int Registers { get; }
    Property Value
    Type Description
    System.Int32
    | Improve this Doc View Source

    SharedMemory

    The size in bytes of statically-allocated shared memory required by this function.

    This does not include dynamically-allocated shared memory requested by the user at runtime.

    Declaration
    public int SharedMemory { get; }
    Property Value
    Type Description
    System.Int32

    Methods

    | Improve this Doc View Source

    GetOccupancyMaxActiveBlocksPerMultiprocessor()

    Returns the number of the maximum active blocks per streaming multiprocessor.

    Declaration
    public int GetOccupancyMaxActiveBlocksPerMultiprocessor()
    Returns
    Type Description
    System.Int32

    number of the maximum active blocks per streaming multiprocessor.

    | Improve this Doc View Source

    GetOccupancyMaxActiveBlocksPerMultiprocessor(CUoccupancy_flags)

    Returns the number of the maximum active blocks per streaming multiprocessor.

    Declaration
    public int GetOccupancyMaxActiveBlocksPerMultiprocessor(CUoccupancy_flags flags)
    Parameters
    Type Name Description
    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    System.Int32

    number of the maximum active blocks per streaming multiprocessor.

    | Improve this Doc View Source

    GetOccupancyMaxActiveBlocksPerMultiprocessor(Int32, SizeT)

    Returns the number of the maximum active blocks per streaming multiprocessor (Ignores current kernel settings).

    Declaration
    public int GetOccupancyMaxActiveBlocksPerMultiprocessor(int blockSize, SizeT dynamicSMemSize)
    Parameters
    Type Name Description
    System.Int32 blockSize

    Block size the kernel is intended to be launched with

    SizeT dynamicSMemSize

    Per-block dynamic shared memory usage intended, in bytes

    Returns
    Type Description
    System.Int32

    number of the maximum active blocks per streaming multiprocessor.

    | Improve this Doc View Source

    GetOccupancyMaxActiveBlocksPerMultiprocessor(Int32, SizeT, CUoccupancy_flags)

    Returns the number of the maximum active blocks per streaming multiprocessor (Ignores current kernel settings).

    Declaration
    public int GetOccupancyMaxActiveBlocksPerMultiprocessor(int blockSize, SizeT dynamicSMemSize, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    System.Int32 blockSize

    Block size the kernel is intended to be launched with

    SizeT dynamicSMemSize

    Per-block dynamic shared memory usage intended, in bytes

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    System.Int32

    number of the maximum active blocks per streaming multiprocessor.

    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize()

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize()
    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(CUoccupancy_flags flags)
    Parameters
    Type Name Description
    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize blockSizeToDynamicSMemSize)
    Parameters
    Type Name Description
    del_CUoccupancyB2DSize blockSizeToDynamicSMemSize

    if the per-block dynamic shared memory size varies with different block sizes, the user needs to provide a unary function through blockSizeToDynamicSMemSize that computes the dynamic shared memory needed by func for any given block size.

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize, CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize blockSizeToDynamicSMemSize, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    del_CUoccupancyB2DSize blockSizeToDynamicSMemSize

    if the per-block dynamic shared memory size varies with different block sizes, the user needs to provide a unary function through blockSizeToDynamicSMemSize that computes the dynamic shared memory needed by func for any given block size.

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize, Int32)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize blockSizeToDynamicSMemSize, int blockSizeLimit)
    Parameters
    Type Name Description
    del_CUoccupancyB2DSize blockSizeToDynamicSMemSize

    if the per-block dynamic shared memory size varies with different block sizes, the user needs to provide a unary function through blockSizeToDynamicSMemSize that computes the dynamic shared memory needed by func for any given block size.

    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize, Int32, CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(del_CUoccupancyB2DSize blockSizeToDynamicSMemSize, int blockSizeLimit, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    del_CUoccupancyB2DSize blockSizeToDynamicSMemSize

    if the per-block dynamic shared memory size varies with different block sizes, the user needs to provide a unary function through blockSizeToDynamicSMemSize that computes the dynamic shared memory needed by func for any given block size.

    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(SizeT)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(SizeT dynamicSMemSize)
    Parameters
    Type Name Description
    SizeT dynamicSMemSize

    If per-block dynamic shared memory allocation is needed, then if the dynamic shared memory size is constant regardless of block size, the size should be passed through dynamicSMemSize

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(SizeT, CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(SizeT dynamicSMemSize, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    SizeT dynamicSMemSize

    If per-block dynamic shared memory allocation is needed, then if the dynamic shared memory size is constant regardless of block size, the size should be passed through dynamicSMemSize

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(SizeT, Int32)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(SizeT dynamicSMemSize, int blockSizeLimit)
    Parameters
    Type Name Description
    SizeT dynamicSMemSize

    If per-block dynamic shared memory allocation is needed, then if the dynamic shared memory size is constant regardless of block size, the size should be passed through dynamicSMemSize

    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(SizeT, Int32, CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(SizeT dynamicSMemSize, int blockSizeLimit, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    SizeT dynamicSMemSize

    If per-block dynamic shared memory allocation is needed, then if the dynamic shared memory size is constant regardless of block size, the size should be passed through dynamicSMemSize

    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(Int32)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(int blockSizeLimit)
    Parameters
    Type Name Description
    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    GetOccupancyMaxPotentialBlockSize(Int32, CUoccupancy_flags)

    Returns in blockSize a reasonable block size that can achieve the maximum occupancy (or, the maximum number of active warps with the fewest blocks per multiprocessor), and in minGridSize the minimum grid size to achieve the maximum occupancy. Ignoring dynamic shared memory.

    Declaration
    public CudaKernel.Occupancy GetOccupancyMaxPotentialBlockSize(int blockSizeLimit, CUoccupancy_flags flags)
    Parameters
    Type Name Description
    System.Int32 blockSizeLimit

    If blockSizeLimit is 0, the configurator will use the maximum block size permitted by the device / function instead.

    CUoccupancy_flags flags

    Flags

    Returns
    Type Description
    CudaKernel.Occupancy
    | Improve this Doc View Source

    Run(Object[])

    Executes the kernel on the device

    Declaration
    public virtual float Run(params object[] parameters)
    Parameters
    Type Name Description
    System.Object[] parameters

    Parameters as given by the kernel

    Returns
    Type Description
    System.Single

    Time of execution in milliseconds (using GPU counter)

    | Improve this Doc View Source

    RunAsync(CUstream, Object[])

    Executes the kernel on the device asynchronously

    Declaration
    public virtual void RunAsync(CUstream stream, params object[] parameters)
    Parameters
    Type Name Description
    CUstream stream

    Stream

    System.Object[] parameters

    Parameters as given by the kernel

    | Improve this Doc View Source

    RunCooperative(CUstream, Object[])

    Launches a CUDA function where thread blocks can cooperate and synchronize as they execute

    Invokes the kernel \p f on a \p gridDimX x \p gridDimY x \p gridDimZ grid of blocks.Each block contains \p blockDimX x \p blockDimY x \p blockDimZ threads.

    \p sharedMemBytes sets the amount of dynamic shared memory that will be available to each thread block.

    The device on which this kernel is invoked must have a non-zero value for the device attribute::CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH.

    The total number of blocks launched cannot exceed the maximum number of blocks per multiprocessor as returned by ::cuOccupancyMaxActiveBlocksPerMultiprocessor (or ::cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags) times the number of multiprocessors as specified by the device attribute ::CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT.

    The kernel cannot make use of CUDA dynamic parallelism.

    Kernel parameters must be specified via \p kernelParams. If \p f has N parameters, then \p kernelParams needs to be an array of N pointers. Each of \p kernelParams [0] through \p kernelParams [N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes do not need to be specified as that information is retrieved directly from the kernel's image.

    Calling ::cuLaunchCooperativeKernel() sets persistent function state that is the same as function state set through ::cuLaunchKernel API

    When the kernel \p f is launched via ::cuLaunchCooperativeKernel(), the previous block shape, shared size and parameter info associated with \p f is overwritten.

    Note that to use ::cuLaunchCooperativeKernel(), the kernel \p f must either have been compiled with toolchain version 3.2 or later so that it will contain kernel parameter information, or have no kernel parameters. If either of these conditions is not met, then ::cuLaunchCooperativeKernel() will return ::CUDA_ERROR_INVALID_IMAGE.

    Declaration
    public virtual void RunCooperative(CUstream stream, params object[] parameters)
    Parameters
    Type Name Description
    CUstream stream
    System.Object[] parameters
    | Improve this Doc View Source

    RunCooperativeKernelMultiDevie(CudaLaunchParams[], CudaCooperativeLaunchMultiDeviceFlags)

    Launches CUDA functions on multiple devices where thread blocks can cooperate and synchronize as they execute

    Invokes kernels as specified in the \p launchParamsList array where each element of the array specifies all the parameters required to perform a single kernel launch. These kernels can cooperate and synchronize as they execute. The size of the array is specified by \p numDevices.

    No two kernels can be launched on the same device. All the devices targeted by this multi-device launch must be identical. All devices must have a non-zero value for the device attribute ::CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH.

    All kernels launched must be identical with respect to the compiled code. Note that any __device__, __constant__ or __managed__ variables present in the module that owns the kernel launched on each device, are independently instantiated on every device. It is the application's responsiblity to ensure these variables are initialized and used appropriately.

    The size of the grids as specified in blocks, the size of the blocks themselves and the amount of shared memory used by each thread block must also match across all launched kernels.

    The streams used to launch these kernels must have been created via either ::cuStreamCreate or ::cuStreamCreateWithPriority. The NULL stream or ::CU_STREAM_LEGACY or ::CU_STREAM_PER_THREAD cannot be used.

    The total number of blocks launched per kernel cannot exceed the maximum number of blocks per multiprocessor as returned by ::cuOccupancyMaxActiveBlocksPerMultiprocessor (or ::cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags) times the number of multiprocessors as specified by the device attribute ::CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT. Since the total number of blocks launched per device has to match across all devices, the maximum number of blocks that can be launched per device will be limited by the device with the least number of multiprocessors.

    The kernels cannot make use of CUDA dynamic parallelism.

    By default, the kernel won't begin execution on any GPU until all prior work in all the specified streams has completed. This behavior can be overridden by specifying the flag ::CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC. When this flag is specified, each kernel will only wait for prior work in the stream corresponding to that GPU to complete before it begins execution.

    Similarly, by default, any subsequent work pushed in any of the specified streams will not begin execution until the kernels on all GPUs have completed. This behavior can be overridden by specifying the flag ::CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC. When this flag is specified, any subsequent work pushed in any of the specified streams will only wait for the kernel launched on the GPU corresponding to that stream to complete before it begins execution.

    Calling ::cuLaunchCooperativeKernelMultiDevice() sets persistent function state that is the same as function state set through ::cuLaunchKernel API when called individually for each element in \p launchParamsList.

    When kernels are launched via ::cuLaunchCooperativeKernelMultiDevice(), the previous block shape, shared size and parameter info associated with each ::CUDA_LAUNCH_PARAMS::function in \p launchParamsList is overwritten.

    Note that to use ::cuLaunchCooperativeKernelMultiDevice(), the kernels must either have been compiled with toolchain version 3.2 or later so that it will contain kernel parameter information, or have no kernel parameters. If either of these conditions is not met, then ::cuLaunchCooperativeKernelMultiDevice() will return ::CUDA_ERROR_INVALID_IMAGE.

    Declaration
    public static void RunCooperativeKernelMultiDevie(CudaLaunchParams[] launchParameterList, CudaCooperativeLaunchMultiDeviceFlags flags)
    Parameters
    Type Name Description
    CudaLaunchParams[] launchParameterList

    List of launch parameters, one per device

    CudaCooperativeLaunchMultiDeviceFlags flags

    Flags to control launch behavior

    | Improve this Doc View Source

    SetCacheConfig(CUFuncCache)

    On devices where the L1 cache and shared memory use the same hardware resources, this sets through config the preferred cache configuration for the device function hfunc. This is only a preference. The driver will use the requested configuration if possible, but it is free to choose a different configuration if required to execute hfunc.

    This setting does nothing on devices where the size of the L1 cache and shared memory are fixed.

    Switching between configuration modes may insert a device-side synchronization point for streamed kernel launches.

    The supported cache modes are defined in CUFuncCache

    Declaration
    public void SetCacheConfig(CUFuncCache config)
    Parameters
    Type Name Description
    CUFuncCache config

    Requested cache configuration

    | Improve this Doc View Source

    SetComputeSize(dim3)

    Sets the grid dimensions according to block dimensions, so that each dimension has at least computeSize threads

    Declaration
    public void SetComputeSize(dim3 computeSize)
    Parameters
    Type Name Description
    dim3 computeSize

    Minimum number of threads in X, Y and Z dimension

    | Improve this Doc View Source

    SetComputeSize(UInt32)

    Sets the grid dimensions according to block dimensions, so that each dimension has at least computeSize threads

    Declaration
    public void SetComputeSize(uint computeSizeX)
    Parameters
    Type Name Description
    System.UInt32 computeSizeX

    Minimum number of threads in X dimension

    | Improve this Doc View Source

    SetComputeSize(UInt32, UInt32)

    Sets the grid dimensions according to block dimensions, so that each dimension has at least computeSize threads

    Declaration
    public void SetComputeSize(uint computeSizeX, uint computeSizeY)
    Parameters
    Type Name Description
    System.UInt32 computeSizeX

    Minimum number of threads in X dimension

    System.UInt32 computeSizeY

    Minimum number of threads in Y dimension

    | Improve this Doc View Source

    SetComputeSize(UInt32, UInt32, UInt32)

    Sets the grid dimensions according to block dimensions, so that each dimension has at least computeSize threads

    Declaration
    public void SetComputeSize(uint computeSizeX, uint computeSizeY, uint computeSizeZ)
    Parameters
    Type Name Description
    System.UInt32 computeSizeX

    Minimum number of threads in X dimension

    System.UInt32 computeSizeY

    Minimum number of threads in Y dimension

    System.UInt32 computeSizeZ

    Minimum number of threads in Z dimension

    | Improve this Doc View Source

    SetConstantVariable(String, char1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, char4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, char4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    char4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuDoubleComplex)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuDoubleComplex value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuDoubleComplex value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuDoubleComplex[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuDoubleComplex[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuDoubleComplex[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuDoubleReal)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuDoubleReal value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuDoubleReal value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuDoubleReal[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuDoubleReal[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuDoubleReal[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuFloatComplex)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuFloatComplex value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuFloatComplex value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuFloatComplex[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuFloatComplex[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuFloatComplex[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuFloatReal)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuFloatReal value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuFloatReal value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, cuFloatReal[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, cuFloatReal[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    cuFloatReal[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, dim3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, dim3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    dim3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, dim3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, dim3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    dim3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, double1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    double1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, double1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    double1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, double2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    double2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, double2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    double2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, float4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    float4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, int4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    int4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, long4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    long4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, short4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    short4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uchar4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uchar4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uchar4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, uint4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    uint4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ulong4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ulong4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort1)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort1 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort1 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort1[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort1[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort1[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort2)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort2 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort2 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort2[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort2[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort2[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort3)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort3 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort3 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort3[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort3[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort3[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort4)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort4 value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort4 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, ushort4[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort4[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    ushort4[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Byte)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, byte value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Byte value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Byte[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, byte[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Byte[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Double)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Double value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Double[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, double[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Double[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int16)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int16 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int16[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, short[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int16[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int32)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int32 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int32[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, int[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int32[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int64)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int64 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Int64[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, long[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Int64[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, SByte)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, sbyte value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.SByte value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, SByte[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, sbyte[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.SByte[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Single)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Single value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, Single[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, float[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.Single[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt16)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt16 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt16[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ushort[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt16[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt32)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt32 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt32[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, uint[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt32[] value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt64)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt64 value

    value

    | Improve this Doc View Source

    SetConstantVariable(String, UInt64[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable(string name, ulong[] value)
    Parameters
    Type Name Description
    System.String name

    constant variable name

    System.UInt64[] value

    value

    | Improve this Doc View Source

    SetConstantVariable<T>(String, T)

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable<T>(string name, T value)
        where T : struct
    Parameters
    Type Name Description
    System.String name

    constant variable name

    T value

    value

    Type Parameters
    Name Description
    T
    | Improve this Doc View Source

    SetConstantVariable<T>(String, T[])

    Set the constant variable name to value value

    The constant variable must be defined in the CUDA module.

    Declaration
    public void SetConstantVariable<T>(string name, T[] value)
        where T : struct
    Parameters
    Type Name Description
    System.String name

    constant variable name

    T[] value

    value

    Type Parameters
    Name Description
    T
    | Improve this Doc View Source

    SetSharedMemConfig(CUsharedconfig)

    Sets the shared memory configuration for a device function.

    On devices with configurable shared memory banks, this function will force all subsequent launches of the specified device function to have the given shared memory bank size configuration. On any given launch of the function, the shared memory configuration of the device will be temporarily changed if needed to suit the function's preferred configuration. Changes in shared memory configuration between subsequent launches of functions, may introduce a device side synchronization point.

    Any per-function setting of shared memory bank size set via cuFuncSetSharedMemConfig(CUfunction, CUsharedconfig) will override the context wide setting set with cuCtxSetSharedMemConfig(CUsharedconfig).

    Changing the shared memory bank size will not increase shared memory usage or affect occupancy of kernels, but may have major effects on performance. Larger bank sizes will allow for greater potential bandwidth to shared memory, but will change what kinds of accesses to shared memory will result in bank conflicts.

    This function will do nothing on devices with fixed shared memory bank size.

    The supported bank configurations are

    • DefaultBankSize: set bank width to the default initial setting (currently, four bytes).
    • FourByteBankSize: set shared memory bank width to be natively four bytes.
    • EightByteBankSize: set shared memory bank width to be natively eight bytes.
    Declaration
    public void SetSharedMemConfig(CUsharedconfig config)
    Parameters
    Type Name Description
    CUsharedconfig config

    requested shared memory configuration

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