Table of Contents

Class CuDssNative

Namespace
NVMathNet.Interop
Assembly
NVMath.Net.dll

Raw bindings for cuDSS (sparse direct solver). Signatures verified against cudss.h 0.8.

public static class CuDssNative

Inheritance

Inherited Members

Methods

Check(CuDssStatus, string?)

Throws NVMathNet.Interop.CuDssException if status is not success.

public static void Check(CuDssStatus status, string? context = null)

Parameters

status CuDssStatus
context string?

ConfigCreate()

Creates a solver configuration object.

public static nint ConfigCreate()

Returns

nint

ConfigDestroy(nint)

Destroys a solver configuration object.

public static void ConfigDestroy(nint config)

Parameters

config nint

ConfigSet(nint, CuDssConfigParam, void*, nuint)

Sets a configuration parameter.

public static void ConfigSet(nint config, CuDssConfigParam param, void* value, nuint size)

Parameters

config nint
param CuDssConfigParam
value void*
size nuint

Create()

Creates a cuDSS library handle.

public static nint Create()

Returns

nint

DataCreate(nint)

Creates a solver data object (holds the factors).

public static nint DataCreate(nint handle)

Parameters

handle nint

Returns

nint

DataDestroy(nint, nint)

Destroys a solver data object.

public static void DataDestroy(nint handle, nint data)

Parameters

handle nint
data nint

DataGet(nint, nint, CuDssDataParam, void*, nuint)

Reads a solver data parameter.

public static void DataGet(nint handle, nint data, CuDssDataParam param, void* value, nuint size)

Parameters

handle nint
data nint
param CuDssDataParam
value void*
size nuint

Destroy(nint)

Destroys a cuDSS library handle.

public static void Destroy(nint handle)

Parameters

handle nint

Execute(nint, CuDssPhase, nint, nint, nint, nint, nint)

Runs one or more solver phases.

public static void Execute(nint handle, CuDssPhase phase, nint config, nint data, nint matrix, nint solution, nint rhs)

Parameters

handle nint
phase CuDssPhase
config nint
data nint
matrix nint
solution nint
rhs nint

MatrixCreateCsr(long, long, long, void*, void*, void*, CuDssDataType, CuDssMatrixType, CuDssMatrixView)

Creates a CSR sparse matrix descriptor with 32-bit indices and zero-based indexing.

public static nint MatrixCreateCsr(long rows, long cols, long nnz, void* rowOffsets, void* colIndices, void* values, CuDssDataType valueType, CuDssMatrixType mtype, CuDssMatrixView mview)

Parameters

rows long

Number of rows.

cols long

Number of columns.

nnz long

Number of stored entries.

rowOffsets void*

Device pointer to rows+1 row offsets.

colIndices void*

Device pointer to nnz column indices (sorted within each row).

values void*

Device pointer to nnz values.

valueType CuDssDataType

Value type.

mtype CuDssMatrixType

Matrix structure.

mview CuDssMatrixView

Stored triangle.

Returns

nint

MatrixCreateDn(long, long, long, void*, CuDssDataType)

Creates a dense matrix descriptor (column-major).

public static nint MatrixCreateDn(long rows, long cols, long ld, void* values, CuDssDataType valueType)

Parameters

rows long
cols long
ld long
values void*
valueType CuDssDataType

Returns

nint

MatrixDestroy(nint)

Destroys a matrix descriptor.

public static void MatrixDestroy(nint matrix)

Parameters

matrix nint

MatrixSetValues(nint, void*)

Rebinds the values array of a matrix (same sparsity pattern).

public static void MatrixSetValues(nint matrix, void* values)

Parameters

matrix nint
values void*

SetStream(nint, nint)

Associates a CUDA stream with the handle.

public static void SetStream(nint handle, nint stream)

Parameters

handle nint
stream nint