NVIDIA NvNeural SDK  2022.2
GPU inference framework for NVIDIA Nsight Deep Learning Designer
CublasHelpers.h File Reference

Helper macros and ILibraryContext functions for working with cuBLAS. More...

#include <cublas_v2.h>
#include <nvneural/CoreTypes.h>
#include <nvneural/CudaTypes.h>

Go to the source code of this file.

Macros

#define CheckCublasErrors(expr_)
 CheckCublasErrors is an error-handling macro. More...
 

Functions

cublasHandle_t nvneural::GetCublasHandle (const INetworkBackendCuda *pBackend) noexcept
 Retrieves the cuBLAS handle associated with a CUDA backend. More...
 
NeuralResult nvneural::InitializeCublas (INetworkBackendCuda *pBackend) noexcept
 Initializes cuBLAS and registers it with the backend. More...
 

Detailed Description

Helper macros and ILibraryContext functions for working with cuBLAS.

Macro Definition Documentation

◆ CheckCublasErrors

#define CheckCublasErrors (   expr_)
Value:
do \
{ \
const cublasStatus_t cbStatus = (expr_); \
LogPossibleCublasFailure(cbStatus, #expr_, __FILE__, __LINE__); \
if (CUBLAS_STATUS_SUCCESS != cbStatus) \
{ \
return NeuralResult::Failure; \
} \
} while(false) \

CheckCublasErrors is an error-handling macro.

It returns NeuralResult::Failure from the caller if the provided cublasStatus_t expression evaluates to anything but CUBLAS_STATUS_SUCCESS.

Example: CheckCublasErrors(cublasSgemm(...))

Function Documentation

◆ GetCublasHandle()

cublasHandle_t nvneural::GetCublasHandle ( const INetworkBackendCuda pBackend)
noexcept

Retrieves the cuBLAS handle associated with a CUDA backend.

This uses the ILibraryContext system.

Parameters
pBackendCUDA backend to query
Returns
The initialized cublasHandle_t, or nullptr if InitializeCublas has not been called.

◆ InitializeCublas()

NeuralResult nvneural::InitializeCublas ( INetworkBackendCuda pBackend)
noexcept

Initializes cuBLAS and registers it with the backend.

This uses the ILibraryContext system.

Parameters
pBackendCUDA backend to enable for cuBLAS