cuBLAS中的cublasGetMatrix()和cublasSetMatrix()
2.4.14. cublasSetMatrix()
cublasStatus_t
cublasSetMatrix(int rows, int cols, int elemSize,
const void *A, int lda, void *B, int ldb)
此函数将主机内存空间中的矩阵 A 中的行 x cols 元素复制到 GPU 内存空间中的矩阵 B。 假设每个元素都需要存储 elemSize
字节,并且两个矩阵都以列优先格式存储,源矩阵 A 和目标矩阵 B 的前导维度分别在 lda 和 ldb 中给出。 前导维度指示分配矩阵的行数,即使仅使用它的子矩阵。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 rows, cols<0 或 elemSize, lda, ldb<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |
2.4.15. cublasGetMatrix()
cublasStatus_t
cublasGetMatrix(int rows, int cols, int elemSize,
const void *A, int lda, void *B, int ldb)
此函数将 GPU 内存空间中的矩阵 A 中的行 x cols 元素复制到主机内存空间中的矩阵 B。 假设每个元素都需要存储 elemSize
字节,并且两个矩阵都以列优先格式存储,源矩阵 A 和目标矩阵 B 的前导维度分别在 lda 和 ldb 中给出。 前导维度指示分配矩阵的行数,即使仅使用它的子矩阵。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 rows, cols<0 或 elemSize, lda, ldb<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |
2.4.16. cublasSetVectorAsync()
cublasStatus_t
cublasSetVectorAsync(int n, int elemSize, const void *hostPtr, int incx,
void *devicePtr, int incy, cudaStream_t stream)
此函数具有与 cublasSetVector()
相同的功能,不同之处在于数据传输是使用给定的 CUDA™ 流参数异步完成的(相对于主机)。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 incx, incy, elemSize<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |
2.4.17. cublasGetVectorAsync()
cublasStatus_t
cublasGetVectorAsync(int n, int elemSize, const void *devicePtr, int incx,
void *hostPtr, int incy, cudaStream_t stream)
此函数具有与 cublasGetVector()
相同的功能,不同之处在于数据传输是使用给定的 CUDA™ 流参数异步完成的(相对于主机)。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 incx, incy, elemSize<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |
2.4.18. cublasSetMatrixAsync()
cublasStatus_t
cublasSetMatrixAsync(int rows, int cols, int elemSize, const void *A,
int lda, void *B, int ldb, cudaStream_t stream)
此函数具有与 cublasSetMatrix()
相同的功能,不同之处在于数据传输是使用给定的 CUDA™ 流参数异步完成的(相对于主机)。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 rows, cols<0 或 elemSize, lda, ldb<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |
2.4.19. cublasGetMatrixAsync()
cublasStatus_t
cublasGetMatrixAsync(int rows, int cols, int elemSize, const void *A,
int lda, void *B, int ldb, cudaStream_t stream)
此函数具有与 cublasGetMatrix()
相同的功能,不同之处在于数据传输是使用给定的 CUDA™ 流参数异步完成的(相对于主机)。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 参数 rows, cols<0 或 elemSize, lda, ldb<=0 |
CUBLAS_STATUS_MAPPING_ERROR | 访问 GPU 内存时出错 |