8.cuBLAS开发指南中文版--cuBLAS中的cublasGetMatrix()和cublasSetMatrix()

发布于:2023-01-28 ⋅ 阅读:(741) ⋅ 点赞:(0)

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 内存时出错
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到