25 #ifndef NVNEURAL_CUBLASHELPERS_H
26 #define NVNEURAL_CUBLASHELPERS_H
28 #include <cublas_v2.h>
39 #define CheckCublasErrors(expr_) \
42 const cublasStatus_t cbStatus = (expr_); \
43 LogPossibleCublasFailure(cbStatus, #expr_, __FILE__, __LINE__); \
44 if (CUBLAS_STATUS_SUCCESS != cbStatus) \
46 return NeuralResult::Failure; \
56 static void LogPossibleCublasFailure(cublasStatus_t status,
const char* pExpression,
const char* pFilename,
int line)
58 if (status != CUBLAS_STATUS_SUCCESS)
60 DefaultLogger()->
logError(0,
"%s(%d): %s returned %d", pFilename, line, pExpression, status);
Fundamental NvNeural data types are declared here.
NeuralResult
NeuralResult is a generic success/failure result type similar to COM HRESULT.
Definition: CoreTypes.h:275
NeuralResult InitializeCublas(INetworkBackendCuda *pBackend) noexcept
Initializes cuBLAS and registers it with the backend.
cublasHandle_t GetCublasHandle(const INetworkBackendCuda *pBackend) noexcept
Retrieves the cuBLAS handle associated with a CUDA backend.
All CUDA-specific NvNeural types are declared here.
virtual NeuralResult logError(VerbosityLevel verbosity, const char *format,...) noexcept=0
Logs an error message.
INetworkBackend companion interface with CUDA-specific functionality.
Definition: CudaTypes.h:346