cuDSS 函数#
库管理函数#
cudssCreate
#
cudssStatus_t
cudssCreate(cudssHandle_t* handle)
cudssHandle_t
),它保存 cuDSS 库上下文。它在主机上分配轻量级硬件资源,并且必须在进行任何其他 cuDSS 库调用之前调用。调用任何使用 cudssHandle_t
的 cuDSS 函数,而之前没有调用 cudssCreate()
,将返回错误。cuDSS 库上下文与当前 CUDA 设备绑定。要在多个设备上使用该库,应为每个设备创建一个 cuDSS 句柄。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输出 |
cuDSS 库句柄 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssDestroy
#
cudssStatus_t
cudssDestroy(cudssHandle_t handle)
cudssDestroy()
之后调用任何使用 cudssHandle_t
的 cuDSS 函数将返回错误。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssGetProperty
#
cudssStatus_t
cudssGetProperty(libraryPropertyType propertyType,
int* value)
libraryPropertyType
。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
|
主机 |
输入 |
请求的属性 |
|
主机 |
输出 |
请求属性的值 |
libraryPropertyType
(在 library_types.h
中定义)
值 |
含义 |
---|---|
|
用于查询主版本的枚举器 |
|
用于查询次版本的枚举器 |
|
用于标识补丁级别的数字 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssSetStream
#
cudssStatus_t
cudssSetStream(cudssHandle_t handle,
cudaStream_t stream)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
|
主机 |
输入 |
库使用的流 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssSetDeviceMemHandler
#
cudssStatus_t
cudssSetDeviceMemHandler(cudssHandle_t handle,
const cudssDeviceMemHandler_t *handler)
handler
参数设置为 NULL,则库句柄将从库句柄中分离其现有的内存处理程序。如果在首次设置设备内存处理程序后需要更改它,则需要先分离先前设置的设备内存处理程序。device_alloc()
成员分配必要的设备内存。分配的内存将保留为在调用中使用的 cudssData_t
对象的一部分,直到使用该结构的 device_free()
成员在调用相应的 cudssDataDestroy() 时才会被释放。因此,如果在 cudssData_t
对象的生命周期内更改设备内存处理程序(这些对象已使用库句柄),则很可能发生错误行为。有关 device_alloc()
和 device_free()
的更多详细信息,请参阅 cudssDeviceMemHandler_t。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
|
主机 |
输入 |
封装用户内存池的设备内存处理程序。结构内容在内部复制 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssGetDeviceMemHandler
#
cudssStatus_t
cudssGetDeviceMemHandler(cudssHandle_t handle,
cudssDeviceMemHandler_t *handler)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
|
主机 |
输出 |
设备内存处理程序的(深)副本,它封装了用户的内存池(如果先前通过调用 cudssSetDeviceMemHandler() 设置)。 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssSetCommLayer
#
cudssStatus_t
cudssSetCommLayer(cudssHandle_t handle, const char* commLibFileName)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
|
主机 |
输入 |
cuDSS 通信层库的完整文件名(包括路径) 如果为 NULL,则从环境变量 CUDSS_COMM_LIB 读取通信层库名称 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssSetThreadingLayer
#
cudssStatus_t
cudssSetThreadingLayer(cudssHandle_t handle, const char* thrLibFileName)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
|
主机 |
输入 |
cuDSS 库句柄 |
|
主机 |
输入 |
cuDSS 线程层库的完整文件名(包括路径) 如果为 NULL,则从环境变量 CUDSS_THREADING_LIB 读取线程层库名称 |
有关返回状态的描述,请参阅 cudssStatus_t。
配置和数据对象函数#
cudssConfigCreate
#
cudssStatus_t
cudssConfigCreate(cudssConfig_t* config)
cudssConfig_t
),它保存与求解特定线性系统相关的求解器设置参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输出 |
cuDSS 配置对象 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssConfigDestroy
#
cudssStatus_t
cudssConfigDestroy(cudssConfig_t config)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
要销毁的 cuDSS 配置对象 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssConfigSet
#
cudssStatus_t
cudssConfigSet(cudssConfig_t config,
cudssConfigParam_t param,
void* value,
size_t sizeInBytes)
cudssConfigParam_t
) 设置为通过指针传递的指定值。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入/输出 |
cuDSS 配置对象 |
|
|
主机 |
输入 |
要设置的参数 |
|
主机 |
输入 |
指向要设置的值的指针 |
|
主机 |
输入 |
要从指针读取的字节数 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssConfigGet
#
cudssStatus_t
cudssConfigGet(cudssConfig_t config,
cudssConfigParam_t param,
void* value,
size_t sizeInBytes,
size_t* sizeWritten)
cudssConfigParam_t
) 的值,并将其保存到指定的内存位置。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 配置对象 |
|
|
主机 |
输入 |
要从配置中检索的参数 |
|
主机 |
输出 |
指向输出内存的指针 |
|
主机 |
输入 |
要写入的字节数(用于验证) |
|
主机 |
输出 |
仅当返回值是 CUDSS_STATUS_SUCCESS 时有效。 如果 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssDataCreate
#
cudssStatus_t
cudssDataCreate(cudssHandle_t handle, cudssData_t* data)
cudssData_t
),它保存内部数据(例如,LU 因子数组)以及指向与求解特定线性系统相关的用户提供数据的指针。要释放分配的内存,必须调用 cudssDataDestroy()。有关返回状态的描述,请参阅 cudssStatus_t。
cudssDataDestroy
#
cudssStatus_t
cudssDataDestroy(cudssHandle_t handle, cudssData_t data)
有关返回状态的描述,请参阅 cudssStatus_t。
cudssDataSet
#
cudssStatus_t
cudssDataSet(cudssHandle_t handle
cudssData_t data,
cudssDataParam_t param,
void* value,
size_t sizeInBytes)
cudssDataParam_t
) 设置为通过指针传递的指定值。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
主机 |
输入/输出 |
cuDSS 数据对象 |
|
|
主机 |
输入 |
要设置的参数 |
|
主机 |
输入 |
指向要设置的值的指针 |
|
主机 |
输入 |
要从指针读取的字节数 |
cudssDataGet
#
cudssStatus_t
cudssDataGet(cudssHandle_t handle,
cudssData_t data,
cudssDataParam_t param,
void* value,
size_t sizeInBytes,
size_t* sizeWritten)
cudssDataParam_t
) 的值,并将其保存到指定的内存位置。参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
|
主机 |
输入 |
cuDSS 数据对象 |
|
|
主机 |
输入 |
要从配置中检索的参数 |
|
主机 设备 |
输出 |
指向输出内存的指针 |
|
主机 |
输入 |
要写入的字节数(用于验证) |
|
主机 |
输出 |
仅当返回值是 CUDSS_STATUS_SUCCESS 时有效。 如果 |
有关返回状态的描述,请参阅 cudssStatus_t。
主 cuDSS 函数#
cudssExecute
#
cudssStatus_t
cudssExecute(cudssHandle_t handle,
cudssPhase_t phase,
cudssConfig_t config,
cudssConfig_t data,
cudssMatrix_t matrix,
cudssMatrix_t solution,
cudssMatrix_t rhs)
cudssExecute()
之前,作为参数传递的所有对象必须已创建并正确初始化。在执行期间,求解器配置属性从类型为 cudssConfig_t 的
config
中读取。保持求解系统所需的所有数据(包括因子)的内部数据结构作为类型为 cudssData_t 的data
对象的一部分。用户可以在求解过程的各个阶段之前/之后通过 cudssConfigSet() 或 cudssDataGet() 分别更改配置设置或提供其他数据参数(例如,用户置换)或查询额外信息(如内存估计或主元数)。
cudssMatrix_t
对象有以下限制输入的稀疏矩阵(在批处理情况下,批处理中的每个矩阵)必须具有与其描述一致的数据(包括偏移量和索引、索引基、矩阵类型)
输入的稀疏矩阵(在批处理情况下,批处理中的每个矩阵)可能具有未排序的列索引,但不得具有重复条目。
输入的稀疏矩阵、右手侧和解必须具有相同的值和索引数据类型(如果适用)。
对于批处理输入,支持具有不同形状的非均匀批处理。例如,
nrows
、ncols
、nnz
对于每个批处理实例可以不同。在 MGMN 模式下,所有进程都必须具有稀疏矩阵的有效
nrows
、ncols
、nnz
数据以及密集矩阵的有效nrows
、ncols
和ld
。在批处理情况下,所有进程还必须具有有效的batchCount
。在 MGMN 模式下,完整矩阵数据(对于系统矩阵、解和右手侧)必须存在于根进程上,即提供的通信器中
rank
= 0 的进程。其他进程可以将数据指针设置为 NULL。
cudssMatrixViewType_t
参数,可以仅传递矩阵的三角形部分,而无需显式更改底层矩阵数据。例如,如果 mview
设置为 CUDSS_MVIEW_UPPER
,则在分析阶段,cudssExecute()
将忽略矩阵下半部分中的所有索引,即使底层矩阵存储表示完整矩阵。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输入 |
cuDSS 库句柄 |
||
主机 |
输入 |
执行阶段 |
当前支持 目前不支持在单个调用中组合阶段。 |
|
主机 |
输入 |
求解器配置对象 |
||
主机 |
输入/输出 |
求解器数据对象 |
||
主机 |
输入 |
输入稀疏矩阵 |
必须是稀疏矩阵 |
|
|
主机 |
输入/输出 |
解矩阵 |
必须是密集矩阵 |
|
主机 |
输入 |
右手侧矩阵 |
必须是密集矩阵 |
有关返回状态的描述,请参阅 cudssStatus_t。
矩阵对象函数#
cudssMatrixCreateDn
#
cudssStatus_t
cudssMatrixCreateDn(cudssMatrix_t* matrix,
int64_t nrows,
int64_t ncols,
int64_t ld,
void* values,
cudaDataType_t valueType,
cudssLayout_t layout)
nrows
、ncols
和 ld
。cudssMatrix_t
对象的更多限制,请参阅。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输出 |
创建的矩阵对象 |
||
|
主机 |
输入 |
行数 |
必须是非负数 |
|
主机 |
输入 |
列数 |
必须是非负数 |
|
主机 |
输入 |
前导维度 |
≥ 如果是列优先,则为 nrows,≥ 如果是行优先,则为 ncols。 |
|
设备或 |
输入 |
密集矩阵的值 |
|
|
主机 |
输入 |
矩阵的数据类型 |
|
主机 |
输入 |
内存布局 |
目前唯一支持的值是 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssMatrixCreateBatchDn
#
cudssStatus_t
cudssMatrixCreateBatchDn(cudssMatrix_t* matrix,
int64_t batchCount,
void* nrows,
void* ncols,
void* ld,
void** values,
cudaDataType_t indexType,
cudaDataType_t valueType,
cudssLayout_t layout)
nrows
、ncols
、ld
对于每个批处理实例可以不同。batchCount
、nrows
、ncols
数据cudssMatrix_t
对象的更多限制,请参阅。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输出 |
创建的矩阵对象 |
||
|
主机 |
输入 |
批处理的大小 |
必须是非负数 |
|
主机 |
输入 |
nrows |
必须是非负数 |
|
主机 |
输入 |
批处理中每个矩阵的行数 |
必须是非负数 |
|
主机 |
输入 |
ncols |
≥ 如果是列优先,则为 nrows,≥ 如果是行优先,则为 ncols。 批处理中每个矩阵的列数 |
|
设备 |
输入 |
ld |
|
|
主机 |
输入 |
values |
|
|
主机 |
输入 |
矩阵的数据类型 |
|
主机 |
输入 |
内存布局 |
目前唯一支持的值是 |
有关返回状态的描述,请参阅 cudssStatus_t。
indexType
cudssStatus_t
cudssMatrixCreateCsr(cudssMatrix_t* matrix,
int64_t nrows,
int64_t ncols,
int64_t nnz,
void* rowStart,
void* rowEnd,
void* colIndices,
void* values,
cudaDataType_t indexType,
cudaDataType_t valueType,
cudssMatrixType_t mtype,
cudssMatrixViewType_t mview,
cudssIndexBase_t indexBase)
cudssMatrixCreateCsr
#cudssMatrix_t
对象的更多限制,请参阅。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输出 |
创建的矩阵对象 |
||
|
主机 |
输入 |
行数 |
必须是非负数 |
|
主机 |
输入 |
列数 |
必须是非负数 |
|
主机 |
输入 |
注意:使用 CSR 格式创建 cudssMatrix_t 不执行任何数据一致性检查,因此目前调用者有责任使数据描述参数与数据匹配。 |
必须是非负数 |
|
设备或 |
输入 |
nnz |
|
|
设备或 |
输入 |
密集矩阵的值 |
rowStart |
|
设备或 |
输入 |
rowEnd |
|
|
设备或 |
输入 |
密集矩阵的值 |
|
|
主机 |
输入 |
当前唯一支持的值为 NULL,因为目前不支持 4 数组 CSR |
|
|
主机 |
输入 |
矩阵的数据类型 |
|
主机 |
输入 |
矩阵的列索引 |
indexType |
|
主机 |
输入 |
mtype |
矩阵的矩阵类型 |
|
主机 |
输入 |
矩阵的矩阵视图 |
indexBase |
有关返回状态的描述,请参阅 cudssStatus_t。
索引基
cudssStatus_t
cudssMatrixCreateBatchCsr(cudssMatrix_t* matrix,
int64_t batchCount,
void* nrows,
void* ncols,
void* nnz,
void** rowStart,
void** rowEnd,
void** colIndices,
void** values,
cudaDataType_t indexType,
cudaDataType_t valueType,
cudssMatrixType_t mtype,
cudssMatrixViewType_t mview,
cudssIndexBase_t indexBase)
cudssMatrixCreateBatchCsr
#rowStart
、rowEnd
、colIndices
和 values
提供的数据缓冲区必须包含指向设备可见数据的设备可见指针。nrows
、ncols
、nnz
对于每个批处理实例可以不同。cudssMatrix_t
对象的更多限制,请参阅。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输出 |
创建的矩阵对象 |
||
|
主机 |
输入 |
批处理的大小 |
必须是非负数 |
|
主机 |
输入 |
nrows |
必须是非负数 |
|
主机 |
输入 |
批处理中每个矩阵的行数 |
必须是非负数 |
|
主机 |
输入 |
注意:使用 CSR 格式创建 cudssMatrix_t 批处理矩阵不执行任何数据一致性检查,因此目前调用者有责任使数据描述参数与数据匹配。 |
必须是非负数 |
|
设备 |
输入 |
batchCount |
|
|
设备 |
输入 |
批处理中每个矩阵的非零元素数量 |
rowStart |
|
设备 |
输入 |
nrows |
|
|
设备 |
输入 |
指向批处理中每个矩阵的行起始偏移量的指针 |
|
|
主机 |
输入 |
当前唯一支持的值为 NULL,因为目前不支持 4 数组 CSR |
|
|
主机 |
输入 |
矩阵的数据类型 |
|
主机 |
输入 |
矩阵的列索引 |
indexType |
|
主机 |
输入 |
mtype |
矩阵的矩阵类型 |
|
主机 |
输入 |
矩阵的矩阵视图 |
indexBase |
有关返回状态的描述,请参阅 cudssStatus_t。
ncols
cudssStatus_t
cudssMatrixDestroy(cudssMatrix_t matrix)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
ld |
有关返回状态的描述,请参阅 cudssStatus_t。
指向批处理中每个矩阵的列索引的指针
cudssStatus_t
cudssMatrixSetValues(cudssMatrix_t matrix, void *values)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
ld |
|
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
indexType |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssMatrixDestroy
#
cudssStatus_t
cudssMatrixSetBatchValues(cudssMatrix_t matrix, void **values)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
ld |
|
|
设备 matrix |
输入 |
cuDSS 矩阵对象 |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssMatrixSetValues
#
cudssStatus_t
cudssMatrixSetCsrPointers(cudssMatrix_t matrix,
void* rowStart,
void* rowEnd,
void* colIndices,
void* values)
参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
ld |
|
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
values |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
设备或主机 |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
newValues |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
indexType |
有关返回状态的描述,请参阅 cudssStatus_t。
包含新矩阵值的缓冲区
cudssStatus_t
cudssMatrixSetBatchCsrPointers(cudssMatrix_t matrix,
void** rowStart,
void** rowEnd,
void** colIndices,
void** values)
cudssMatrixSetBatchValues
#参数 |
内存 |
输入/输出 |
描述 |
---|---|---|---|
主机 |
输入 |
ld |
|
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
此函数将 cuDSS 矩阵对象内的值指针重置为提供的缓冲区。为矩阵值提供的数据缓冲区必须包含指向设备可见数据的设备可见指针。 |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
values |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
设备或主机 |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输入 |
newValues |
有关返回状态的描述,请参阅 cudssStatus_t。
指向批处理中每个密集矩阵的新值的指针
cudssStatus_t
cudssMatrixGetDn(cudssMatrix_t matrix,
int64_t* nrows,
int64_t* ncols,
int64_t* ld,
void** values,
cudaDataType_t* valueType,
cudssLayout_t* layout)
cudssMatrixSetCsrPointers
#参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输入 |
ld |
||
|
主机 |
输出 |
此函数将 cuDSS 矩阵对象内的 CSR 指针重置为提供的缓冲区。提供的数据缓冲区必须保存设备可见数据。 |
rowStart |
|
主机 |
输出 |
包含新行起始偏移量的缓冲区 |
rowStart |
|
主机 |
输出 |
rowEnd |
rowStart |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输出 |
包含新行结束偏移量的缓冲区 |
rowStart |
|
主机 |
输出 |
colIndices |
rowStart |
主机 |
输出 |
包含新列索引的缓冲区 |
rowStart |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssMatrixSetBatchCsrPointers
#
cudssStatus_t
cudssMatrixGetBatchDn(cudssMatrix_t matrix,
int64_t* batchCount,
void** nrows,
void** ncols,
void** ld,
void*** values,
cudaDataType_t* indexType,
cudaDataType_t* valueType,
cudssLayout_t* layout)
rowStart
、rowEnd
、colIndices
和 values
提供的数据缓冲区必须包含指向设备可见数据的设备可见指针。参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输入 |
ld |
||
|
主机 |
输出 |
rowStarts |
|
|
主机 |
输出 |
指向批处理中每个 CSR 矩阵的新行起始偏移量的指针 |
rowStart |
|
主机 |
输出 |
rowEnds |
rowStart |
|
主机 |
输出 |
指向批处理中每个 CSR 矩阵的新行结束偏移量的指针 |
rowStart |
|
设备 |
输出 |
colIndices |
rowStart |
|
主机 |
输出 |
指向批处理中每个 CSR 矩阵的新列索引的指针 |
rowStart |
|
主机 |
输出 |
colIndices |
rowStart |
主机 |
输出 |
包含新列索引的缓冲区 |
rowStart |
有关返回状态的描述,请参阅 cudssStatus_t。
values
cudssStatus_t
cudssMatrixGetCsr(cudssMatrix_t matrix,
int64_t* nrows,
int64_t* ncols,
int64_t* nnz,
void** rowStart,
void** rowEnd,
void** colIndices,
void** values,
cudaDataType_t* indexType,
cudaDataType_t* valueType,
cudssMatrixType_t* mtype,
cudssMatrixViewType_t* mview,
cudssIndexBase_t* indexBase)
参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输入 |
|
||
|
主机 |
输出 |
此函数将 cuDSS 矩阵对象内的 CSR 指针重置为提供的缓冲区。提供的数据缓冲区必须保存设备可见数据。 |
rowStart |
|
主机 |
输出 |
包含新行起始偏移量的缓冲区 |
rowStart |
|
主机 |
输出 |
此函数从保存密集矩阵的 cuDSS 矩阵对象中检索密集矩阵属性和数据。如果在输入时任何指针为 NULL,则会忽略它,并且不会返回相应的值。 |
rowStart |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输出 |
nrows |
rowStart |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输出 |
用于存储行数的缓冲区 |
ncols |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输出 |
如果为 NULL,则忽略 |
rowStart |
|
指向批处理中每个 CSR 矩阵的值的指针 |
输出 |
ld |
rowStart |
|
主机 |
输出 |
指向批处理中每个 CSR 矩阵的新列索引的指针 |
rowStart |
|
主机 |
输出 |
colIndices |
rowStart |
主机 |
输出 |
矩阵的列索引 |
indexType |
|
主机 |
输出 |
mtype |
矩阵的矩阵类型 |
|
主机 |
输出 |
用于存储列数的缓冲区 |
indexBase rowStart |
有关返回状态的描述,请参阅 cudssStatus_t。
values
cudssStatus_t
cudssMatrixGetBatchCsr(cudssMatrix_t* matrix,
int64_t* batchCount,
void** nrows,
void** ncols,
void** nnz,
void*** rowStart,
void*** rowEnd,
void*** colIndices,
void*** values,
cudaDataType_t* indexType,
cudaDataType_t* valueType,
cudssMatrixType_t* mtype,
cudssMatrixViewType_t* mview,
cudssIndexBase_t* indexBase)
参数 |
内存 |
输入/输出 |
描述 |
可能的值 |
---|---|---|---|---|
主机 |
输入 |
|
||
|
主机 |
输出 |
rowStarts |
rowStart |
|
主机 |
输出 |
valueType |
rowStart |
|
主机 |
输出 |
用于存储矩阵值的缓冲区 |
rowStart |
|
主机 |
输出 |
layout |
rowStart |
|
设备 |
输出 |
指向批处理中每个 CSR 矩阵的行起始偏移量的指针 |
rowStart |
|
设备 |
输出 |
指向批处理中每个 CSR 矩阵的行结束偏移量的指针 |
ncols |
|
设备 |
输出 |
指向批处理中每个 CSR 矩阵的列索引的指针 |
rowStart |
|
设备 |
输出 |
指向批处理中每个 CSR 矩阵的值的指针 |
rowStart |
|
主机 |
输出 |
指向批处理中每个 CSR 矩阵的新列索引的指针 |
rowStart |
|
主机 |
输出 |
colIndices |
rowStart |
主机 |
输出 |
矩阵的列索引 |
indexType |
|
主机 |
输出 |
mtype |
矩阵的矩阵类型 |
|
主机 |
输出 |
用于存储列数的缓冲区 |
indexBase rowStart |
有关返回状态的描述,请参阅 cudssStatus_t。
cudssMatrixGetFormat
#
cudssStatus_t
cudssMatrixGetFormat(cudssMatrix_t matrix, int *format)
int
,它可以是 cudssMatrixFormat_t
中定义的位标志的组合)返回到提供的缓冲区中。有关返回状态的描述,请参阅 cudssStatus_t。