6.cuBLAS开发指南中文版--cuBLAS中的SetStream()和SetWorkspace()
cuBLAS中的SetStream()和SetWorkspace()
2.4.3. cublasGetVersion()
cublasStatus_tcublasGetVersion(cublasHandle_t handle, int *version)
此函数返回 cuBLAS 库的版本号。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_NOT_INITIALIZED | 为库版本号提供的存储未初始化(NULL) |
2.4.4. cublasGetProperty()
cublasStatus_tcublasGetProperty(libraryPropertyType type, int *value)
此函数返回 value 指向的内存中所请求属性的值。 有关支持的类型,请参阅 libraryPropertyType。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 操作成功完成 |
CUBLAS_STATUS_INVALID_VALUE | 类型值无效, 如果类型值无效或value == NULL |
2.4.5. cublasGetStatusName()
const char* cublasGetStatusName(cublasStatus_t status)
此函数返回给定状态的字符串表示形式。
Return Value | Meaning |
---|---|
NULL-terminated string | 状态的字符串表示 |
2.4.6. cublasGetStatusString()
const char* cublasGetStatusString(cublasStatus_t status)
此函数返回给定状态的描述字符串。
Return Value | Meaning |
---|---|
NULL-terminated string | 状态描述 |
2.4.7. cublasSetStream()
cublasStatus_tcublasSetStream(cublasHandle_t handle, cudaStream_t streamId)
此函数设置 cuBLAS 库流,该流将用于执行对 cuBLAS 库函数的所有后续调用。 如果未设置 cuBLAS 库流,则所有内核都使用 defaultNULL 流。 特别是,此例程可用于更改内核启动之间的流,然后将 cuBLAS 库流重置回 NULL。 此外,此函数无条件地将 cuBLAS 库工作区重置回默认工作区池(请参阅 cublasSetWorkspace())。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 流设置成功 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
2.4.8. cublasSetWorkspace()
cublasStatus_tcublasSetWorkspace(cublasHandle_t handle, void *workspace, size_t workspaceSizeInBytes)
此函数将 cuBLAS 库工作区设置为用户拥有的设备缓冲区,该缓冲区将用于执行对 cuBLAS 库函数的所有后续调用(在当前设置的流上)。如果未设置 cuBLAS 库工作空间,所有内核将使用在 cuBLAS 上下文创建期间分配的默认工作空间池。特别是,此例程可用于更改内核启动之间的工作空间。工作区指针必须至少对齐 256 字节,否则会返回 CUBLAS_STATUS_INVALID_VALUE
错误。 cublasSetStream()
函数无条件地将 cuBLAS 库工作区重置回默认工作区池。太小的 workspaceSizeInBytes
可能会导致某些例程失败并返回 CUBLAS_STATUS_ALLOC_FAILED
错误或导致性能大幅下降。等于或大于 16KiB 的工作空间大小足以防止 CUBLAS_STATUS_ALLOC_FAILED
错误,而更大的工作空间可以为某些例程提供性能优势。用户提供的工作空间的推荐大小至少为 4MiB(以匹配 cuBLAS 的默认工作空间池)。
Return Value | Meaning |
---|---|
CUBLAS_STATUS_SUCCESS | 流设置成功 |
CUBLAS_STATUS_NOT_INITIALIZED | 库未初始化 |
CUBLAS_STATUS_INVALID_VALUE | 工作区指针未与至少 256 字节对齐 |