> 文档中心 > 5.cuBLAS开发指南中文版--cuBLAS中的Create()和Destroy()

5.cuBLAS开发指南中文版--cuBLAS中的Create()和Destroy()


cuBLAS中的Create()和Destroy()

在这里插入图片描述

2.4.1. cublasCreate()

cublasStatus_tcublasCreate(cublasHandle_t *handle)

此函数初始化 cuBLAS 库并创建一个指向包含 cuBLAS 库上下文的不透明结构的句柄。 它在主机和设备上分配硬件资源,并且必须在进行任何其他 cuBLAS 库调用之前调用。 cuBLAS 库上下文与当前的 CUDA 设备相关联。 要在多个设备上使用该库,需要为每个设备创建一个 cuBLAS 句柄。 此外,对于给定的设备,可以创建具有不同配置的多个 cuBLAS 手柄。 因为 cublasCreate() 分配了一些内部资源,调用 cublasDestroy() 释放这些资源会隐式调用 cublasDeviceSynchronize(),建议尽量减少 cublasCreate()/cublasDestroy() 的出现次数。 对于从不同线程使用相同设备的多线程应用程序,推荐的编程模型是为每个线程创建一个 cuBLAS 句柄,并在线程的整个生命周期中使用该 cuBLAS 句柄。

Return Value Meaning
CUBLAS_STATUS_SUCCESS 初始化成功
CUBLAS_STATUS_NOT_INITIALIZED CUDA™ 运行时初始化失败
CUBLAS_STATUS_ALLOC_FAILED 资源无法分配
CUBLAS_STATUS_INVALID_VALUE handle == NULL

2.4.2. cublasDestroy()

cublasStatus_tcublasDestroy(cublasHandle_t handle)

此函数释放 cuBLAS 库使用的硬件资源。 这个函数通常是最后一次调用 cuBLAS 库的特定句柄。 因为 cublasCreate() 分配了一些内部资源,调用 cublasDestroy() 释放这些资源会隐式调用 cublasDeviceSynchronize(),建议尽量减少 cublasCreate()/cublasDestroy() 的出现次数。

Return Value Meaning
CUBLAS_STATUS_SUCCESS 关闭成功
CUBLAS_STATUS_NOT_INITIALIZED 库未初始化

英文字体下载