summaryrefslogtreecommitdiff
path: root/test/wrapper_cublas.hpp
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-04-11 21:50:18 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2017-04-11 21:50:18 +0200
commitf24c142948fc71d8b37826c1275259668fe0d0e5 (patch)
treef7fd8698b5cf823629a98d3f3399e311ca3be65a /test/wrapper_cublas.hpp
parent6b625f8915ce0596d65187bd3a8eb47e91a0084e (diff)
Made compilation of the cuBLAS wrapper work properly
Diffstat (limited to 'test/wrapper_cublas.hpp')
-rw-r--r--test/wrapper_cublas.hpp158
1 files changed, 150 insertions, 8 deletions
diff --git a/test/wrapper_cublas.hpp b/test/wrapper_cublas.hpp
index 22eb3971..4de8451a 100644
--- a/test/wrapper_cublas.hpp
+++ b/test/wrapper_cublas.hpp
@@ -44,6 +44,7 @@ cublasStatus_t cublasXrotg<float>(float* sa_buffer, const size_t sa_offset,
float* sc_buffer, const size_t sc_offset,
float* ss_buffer, const size_t ss_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSrotg(handle, &sa_buffer[sa_offset],
&sb_buffer[sb_offset],
&sc_buffer[sc_offset],
@@ -57,6 +58,7 @@ cublasStatus_t cublasXrotg<double>(double* sa_buffer, const size_t sa_offset,
double* sc_buffer, const size_t sc_offset,
double* ss_buffer, const size_t ss_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDrotg(handle, &sa_buffer[sa_offset],
&sb_buffer[sb_offset],
&sc_buffer[sc_offset],
@@ -79,6 +81,7 @@ cublasStatus_t cublasXrotmg<float>(float* sd1_buffer, const size_t sd1_offset,
const float* sy1_buffer, const size_t sy1_offset,
float* sparam_buffer, const size_t sparam_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSrotmg(handle, &sd1_buffer[sd1_offset],
&sd2_buffer[sd2_offset],
&sx1_buffer[sx1_offset],
@@ -94,6 +97,7 @@ cublasStatus_t cublasXrotmg<double>(double* sd1_buffer, const size_t sd1_offset,
const double* sy1_buffer, const size_t sy1_offset,
double* sparam_buffer, const size_t sparam_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDrotmg(handle, &sd1_buffer[sd1_offset],
&sd2_buffer[sd2_offset],
&sx1_buffer[sx1_offset],
@@ -110,6 +114,7 @@ cublasStatus_t cublasXrot(const size_t n,
const float cos,
const float sin) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSrot(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -124,6 +129,7 @@ cublasStatus_t cublasXrot(const size_t n,
const double cos,
const double sin) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDrot(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -145,6 +151,7 @@ cublasStatus_t cublasXrotm<float>(const size_t n,
float* y_buffer, const size_t y_offset, const size_t y_inc,
float* sparam_buffer, const size_t sparam_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSrotm(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -158,6 +165,7 @@ cublasStatus_t cublasXrotm<double>(const size_t n,
double* y_buffer, const size_t y_offset, const size_t y_inc,
double* sparam_buffer, const size_t sparam_offset) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDrotm(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -176,6 +184,7 @@ cublasStatus_t cublasXswap<float>(const size_t n,
float* x_buffer, const size_t x_offset, const size_t x_inc,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSswap(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc));
@@ -187,6 +196,7 @@ cublasStatus_t cublasXswap<double>(const size_t n,
double* x_buffer, const size_t x_offset, const size_t x_inc,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDswap(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc));
@@ -198,6 +208,7 @@ cublasStatus_t cublasXswap<float2>(const size_t n,
float2* x_buffer, const size_t x_offset, const size_t x_inc,
float2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCswap(handle, static_cast<int>(n),
reinterpret_cast<cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<cuComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc));
@@ -209,6 +220,7 @@ cublasStatus_t cublasXswap<double2>(const size_t n,
double2* x_buffer, const size_t x_offset, const size_t x_inc,
double2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZswap(handle, static_cast<int>(n),
reinterpret_cast<cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<cuDoubleComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc));
@@ -227,6 +239,7 @@ cublasStatus_t cublasXscal(const size_t n,
const float alpha,
float* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSscal(handle, static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc));
@@ -237,6 +250,7 @@ cublasStatus_t cublasXscal(const size_t n,
const double alpha,
double* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDscal(handle, static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc));
@@ -250,6 +264,7 @@ cublasStatus_t cublasXscal(const size_t n,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCscal(handle, static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc));
@@ -263,6 +278,7 @@ cublasStatus_t cublasXscal(const size_t n,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZscal(handle, static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc));
@@ -285,6 +301,7 @@ cublasStatus_t cublasXcopy<float>(const size_t n,
const float* x_buffer, const size_t x_offset, const size_t x_inc,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasScopy(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc));
@@ -296,6 +313,7 @@ cublasStatus_t cublasXcopy<double>(const size_t n,
const double* x_buffer, const size_t x_offset, const size_t x_inc,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDcopy(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc));
@@ -307,6 +325,7 @@ cublasStatus_t cublasXcopy<float2>(const size_t n,
const float2* x_buffer, const size_t x_offset, const size_t x_inc,
float2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCcopy(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<cuComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc));
@@ -318,6 +337,7 @@ cublasStatus_t cublasXcopy<double2>(const size_t n,
const double2* x_buffer, const size_t x_offset, const size_t x_inc,
double2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZcopy(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<cuDoubleComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc));
@@ -337,6 +357,7 @@ cublasStatus_t cublasXaxpy(const size_t n,
const float* x_buffer, const size_t x_offset, const size_t x_inc,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSaxpy(handle, static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc),
@@ -349,6 +370,7 @@ cublasStatus_t cublasXaxpy(const size_t n,
const double* x_buffer, const size_t x_offset, const size_t x_inc,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDaxpy(handle, static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc),
@@ -364,6 +386,7 @@ cublasStatus_t cublasXaxpy(const size_t n,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCaxpy(handle, static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -379,6 +402,7 @@ cublasStatus_t cublasXaxpy(const size_t n,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZaxpy(handle, static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -405,6 +429,7 @@ cublasStatus_t cublasXdot<float>(const size_t n,
const float* x_buffer, const size_t x_offset, const size_t x_inc,
const float* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSdot(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -418,6 +443,7 @@ cublasStatus_t cublasXdot<double>(const size_t n,
const double* x_buffer, const size_t x_offset, const size_t x_inc,
const double* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDdot(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&y_buffer[y_offset], static_cast<int>(y_inc),
@@ -445,6 +471,7 @@ cublasStatus_t cublasXdotu<float2>(const size_t n,
const float2* x_buffer, const size_t x_offset, const size_t x_inc,
const float2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCdotu(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<const cuComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc),
@@ -458,6 +485,7 @@ cublasStatus_t cublasXdotu<double2>(const size_t n,
const double2* x_buffer, const size_t x_offset, const size_t x_inc,
const double2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZdotu(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<const cuDoubleComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc),
@@ -478,6 +506,7 @@ cublasStatus_t cublasXdotc<float2>(const size_t n,
const float2* x_buffer, const size_t x_offset, const size_t x_inc,
const float2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCdotc(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<const cuComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc),
@@ -491,6 +520,7 @@ cublasStatus_t cublasXdotc<double2>(const size_t n,
const double2* x_buffer, const size_t x_offset, const size_t x_inc,
const double2* y_buffer, const size_t y_offset, const size_t y_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZdotc(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
reinterpret_cast<const cuDoubleComplex*>(&y_buffer[y_offset]), static_cast<int>(y_inc),
@@ -509,6 +539,7 @@ cublasStatus_t cublasXnrm2<float>(const size_t n,
float* nrm2_buffer, const size_t nrm2_offset,
const float* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSnrm2(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&nrm2_buffer[nrm2_offset]);
@@ -520,6 +551,7 @@ cublasStatus_t cublasXnrm2<double>(const size_t n,
double* nrm2_buffer, const size_t nrm2_offset,
const double* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDnrm2(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&nrm2_buffer[nrm2_offset]);
@@ -531,9 +563,10 @@ cublasStatus_t cublasXnrm2<float2>(const size_t n,
float2* nrm2_buffer, const size_t nrm2_offset,
const float2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasScnrm2(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuComplex*>(&nrm2_buffer[nrm2_offset]));
+ reinterpret_cast<float*>(&nrm2_buffer[nrm2_offset]));
cublasDestroy(handle);
return status;
}
@@ -542,9 +575,10 @@ cublasStatus_t cublasXnrm2<double2>(const size_t n,
double2* nrm2_buffer, const size_t nrm2_offset,
const double2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDznrm2(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuDoubleComplex*>(&nrm2_buffer[nrm2_offset]));
+ reinterpret_cast<double*>(&nrm2_buffer[nrm2_offset]));
cublasDestroy(handle);
return status;
}
@@ -565,6 +599,7 @@ cublasStatus_t cublasXasum<float>(const size_t n,
float* asum_buffer, const size_t asum_offset,
const float* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSasum(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&asum_buffer[asum_offset]);
@@ -576,6 +611,7 @@ cublasStatus_t cublasXasum<double>(const size_t n,
double* asum_buffer, const size_t asum_offset,
const double* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDasum(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
&asum_buffer[asum_offset]);
@@ -587,9 +623,10 @@ cublasStatus_t cublasXasum<float2>(const size_t n,
float2* asum_buffer, const size_t asum_offset,
const float2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasScasum(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuComplex*>(&asum_buffer[asum_offset]));
+ reinterpret_cast<float*>(&asum_buffer[asum_offset]));
cublasDestroy(handle);
return status;
}
@@ -598,9 +635,10 @@ cublasStatus_t cublasXasum<double2>(const size_t n,
double2* asum_buffer, const size_t asum_offset,
const double2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDzasum(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuDoubleComplex*>(&asum_buffer[asum_offset]));
+ reinterpret_cast<double*>(&asum_buffer[asum_offset]));
cublasDestroy(handle);
return status;
}
@@ -621,9 +659,10 @@ cublasStatus_t cublasXamax<float>(const size_t n,
float* imax_buffer, const size_t imax_offset,
const float* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasIsamax(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
- &imax_buffer[imax_offset]);
+ reinterpret_cast<int*>(&imax_buffer[imax_offset]));
cublasDestroy(handle);
return status;
}
@@ -632,9 +671,10 @@ cublasStatus_t cublasXamax<double>(const size_t n,
double* imax_buffer, const size_t imax_offset,
const double* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasIdamax(handle, static_cast<int>(n),
&x_buffer[x_offset], static_cast<int>(x_inc),
- &imax_buffer[imax_offset]);
+ reinterpret_cast<int*>(&imax_buffer[imax_offset]));
cublasDestroy(handle);
return status;
}
@@ -643,9 +683,10 @@ cublasStatus_t cublasXamax<float2>(const size_t n,
float2* imax_buffer, const size_t imax_offset,
const float2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasIcamax(handle, static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuComplex*>(&imax_buffer[imax_offset]));
+ reinterpret_cast<int*>(&imax_buffer[imax_offset]));
cublasDestroy(handle);
return status;
}
@@ -654,9 +695,10 @@ cublasStatus_t cublasXamax<double2>(const size_t n,
double2* imax_buffer, const size_t imax_offset,
const double2* x_buffer, const size_t x_offset, const size_t x_inc) {
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasIzamax(handle, static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
- reinterpret_cast<cuDoubleComplex*>(&imax_buffer[imax_offset]));
+ reinterpret_cast<int*>(&imax_buffer[imax_offset]));
cublasDestroy(handle);
return status;
}
@@ -681,6 +723,7 @@ cublasStatus_t cublasXgemv(const Layout layout, const cublasOperation_t a_transp
float* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSgemv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -700,6 +743,7 @@ cublasStatus_t cublasXgemv(const Layout layout, const cublasOperation_t a_transp
double* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDgemv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -725,6 +769,7 @@ cublasStatus_t cublasXgemv(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCgemv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -750,6 +795,7 @@ cublasStatus_t cublasXgemv(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZgemv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -780,6 +826,7 @@ cublasStatus_t cublasXgbmv(const Layout layout, const cublasOperation_t a_transp
float* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSgbmv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(kl), static_cast<int>(ku),
&alpha,
@@ -799,6 +846,7 @@ cublasStatus_t cublasXgbmv(const Layout layout, const cublasOperation_t a_transp
double* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDgbmv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(kl), static_cast<int>(ku),
&alpha,
@@ -824,6 +872,7 @@ cublasStatus_t cublasXgbmv(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCgbmv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(kl), static_cast<int>(ku),
&alpha_cuda,
@@ -849,6 +898,7 @@ cublasStatus_t cublasXgbmv(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZgbmv(handle, a_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(kl), static_cast<int>(ku),
&alpha_cuda,
@@ -885,6 +935,7 @@ cublasStatus_t cublasXhemv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChemv(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -910,6 +961,7 @@ cublasStatus_t cublasXhemv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhemv(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -937,6 +989,7 @@ cublasStatus_t cublasXhbmv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChbmv(handle, triangle,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -962,6 +1015,7 @@ cublasStatus_t cublasXhbmv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhbmv(handle, triangle,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -989,6 +1043,7 @@ cublasStatus_t cublasXhpmv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChpmv(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1014,6 +1069,7 @@ cublasStatus_t cublasXhpmv(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhpmv(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1035,6 +1091,7 @@ cublasStatus_t cublasXsymv(const Layout layout, const cublasFillMode_t triangle,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsymv(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1054,6 +1111,7 @@ cublasStatus_t cublasXsymv(const Layout layout, const cublasFillMode_t triangle,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsymv(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1084,6 +1142,7 @@ cublasStatus_t cublasXsbmv(const Layout layout, const cublasFillMode_t triangle,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsbmv(handle, triangle,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -1103,6 +1162,7 @@ cublasStatus_t cublasXsbmv(const Layout layout, const cublasFillMode_t triangle,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsbmv(handle, triangle,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -1133,6 +1193,7 @@ cublasStatus_t cublasXspmv(const Layout layout, const cublasFillMode_t triangle,
float* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSspmv(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1152,6 +1213,7 @@ cublasStatus_t cublasXspmv(const Layout layout, const cublasFillMode_t triangle,
double* y_buffer, const size_t y_offset, const size_t y_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDspmv(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1185,6 +1247,7 @@ cublasStatus_t cublasXtrmv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStrmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&a_buffer[a_offset], a_ld,
@@ -1199,6 +1262,7 @@ cublasStatus_t cublasXtrmv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtrmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&a_buffer[a_offset], a_ld,
@@ -1213,6 +1277,7 @@ cublasStatus_t cublasXtrmv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtrmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1227,6 +1292,7 @@ cublasStatus_t cublasXtrmv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtrmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1255,6 +1321,7 @@ cublasStatus_t cublasXtbmv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStbmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
&a_buffer[a_offset], a_ld,
@@ -1269,6 +1336,7 @@ cublasStatus_t cublasXtbmv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtbmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
&a_buffer[a_offset], a_ld,
@@ -1283,6 +1351,7 @@ cublasStatus_t cublasXtbmv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtbmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1297,6 +1366,7 @@ cublasStatus_t cublasXtbmv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtbmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1325,6 +1395,7 @@ cublasStatus_t cublasXtpmv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStpmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&ap_buffer[ap_offset],
@@ -1339,6 +1410,7 @@ cublasStatus_t cublasXtpmv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtpmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&ap_buffer[ap_offset],
@@ -1353,6 +1425,7 @@ cublasStatus_t cublasXtpmv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtpmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&ap_buffer[ap_offset]),
@@ -1367,6 +1440,7 @@ cublasStatus_t cublasXtpmv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtpmv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&ap_buffer[ap_offset]),
@@ -1395,6 +1469,7 @@ cublasStatus_t cublasXtrsv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStrsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&a_buffer[a_offset], a_ld,
@@ -1409,6 +1484,7 @@ cublasStatus_t cublasXtrsv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtrsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&a_buffer[a_offset], a_ld,
@@ -1423,6 +1499,7 @@ cublasStatus_t cublasXtrsv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtrsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1437,6 +1514,7 @@ cublasStatus_t cublasXtrsv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtrsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1458,6 +1536,7 @@ cublasStatus_t cublasXtbsv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStbsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
&a_buffer[a_offset], a_ld,
@@ -1472,6 +1551,7 @@ cublasStatus_t cublasXtbsv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtbsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
&a_buffer[a_offset], a_ld,
@@ -1486,6 +1566,7 @@ cublasStatus_t cublasXtbsv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtbsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1500,6 +1581,7 @@ cublasStatus_t cublasXtbsv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtbsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n), static_cast<int>(k),
reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
@@ -1521,6 +1603,7 @@ cublasStatus_t cublasXtpsv<float>(const Layout layout, const cublasFillMode_t tr
float* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStpsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&ap_buffer[ap_offset],
@@ -1535,6 +1618,7 @@ cublasStatus_t cublasXtpsv<double>(const Layout layout, const cublasFillMode_t t
double* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtpsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
&ap_buffer[ap_offset],
@@ -1549,6 +1633,7 @@ cublasStatus_t cublasXtpsv<float2>(const Layout layout, const cublasFillMode_t t
float2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtpsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuComplex*>(&ap_buffer[ap_offset]),
@@ -1563,6 +1648,7 @@ cublasStatus_t cublasXtpsv<double2>(const Layout layout, const cublasFillMode_t
double2* x_buffer, const size_t x_offset, const size_t x_inc) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtpsv(handle, triangle, a_transpose, diagonal,
static_cast<int>(n),
reinterpret_cast<const cuDoubleComplex*>(&ap_buffer[ap_offset]),
@@ -1580,6 +1666,7 @@ cublasStatus_t cublasXger(const Layout layout,
float* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSger(handle, static_cast<int>(m), static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc),
@@ -1596,6 +1683,7 @@ cublasStatus_t cublasXger(const Layout layout,
double* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDger(handle, static_cast<int>(m), static_cast<int>(n),
&alpha,
&x_buffer[x_offset], static_cast<int>(x_inc),
@@ -1625,6 +1713,7 @@ cublasStatus_t cublasXgeru(const Layout layout,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCgeru(handle, static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -1644,6 +1733,7 @@ cublasStatus_t cublasXgeru(const Layout layout,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZgeru(handle, static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -1665,6 +1755,7 @@ cublasStatus_t cublasXgerc(const Layout layout,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCgerc(handle, static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -1684,6 +1775,7 @@ cublasStatus_t cublasXgerc(const Layout layout,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZgerc(handle, static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuDoubleComplex*>(&x_buffer[x_offset]), static_cast<int>(x_inc),
@@ -1701,6 +1793,7 @@ cublasStatus_t cublasXher(const Layout layout, const cublasFillMode_t triangle,
float2* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCher(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1716,6 +1809,7 @@ cublasStatus_t cublasXher(const Layout layout, const cublasFillMode_t triangle,
double2* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZher(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1733,6 +1827,7 @@ cublasStatus_t cublasXhpr(const Layout layout, const cublasFillMode_t triangle,
float2* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChpr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1748,6 +1843,7 @@ cublasStatus_t cublasXhpr(const Layout layout, const cublasFillMode_t triangle,
double2* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhpr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1769,6 +1865,7 @@ cublasStatus_t cublasXher2(const Layout layout, const cublasFillMode_t triangle,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCher2(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1789,6 +1886,7 @@ cublasStatus_t cublasXher2(const Layout layout, const cublasFillMode_t triangle,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZher2(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1811,6 +1909,7 @@ cublasStatus_t cublasXhpr2(const Layout layout, const cublasFillMode_t triangle,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChpr2(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1831,6 +1930,7 @@ cublasStatus_t cublasXhpr2(const Layout layout, const cublasFillMode_t triangle,
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhpr2(handle, triangle,
static_cast<int>(n),
&alpha_cuda,
@@ -1849,6 +1949,7 @@ cublasStatus_t cublasXsyr(const Layout layout, const cublasFillMode_t triangle,
float* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsyr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1864,6 +1965,7 @@ cublasStatus_t cublasXsyr(const Layout layout, const cublasFillMode_t triangle,
double* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsyr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1888,6 +1990,7 @@ cublasStatus_t cublasXspr(const Layout layout, const cublasFillMode_t triangle,
float* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSspr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1903,6 +2006,7 @@ cublasStatus_t cublasXspr(const Layout layout, const cublasFillMode_t triangle,
double* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDspr(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1928,6 +2032,7 @@ cublasStatus_t cublasXsyr2(const Layout layout, const cublasFillMode_t triangle,
float* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsyr2(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1945,6 +2050,7 @@ cublasStatus_t cublasXsyr2(const Layout layout, const cublasFillMode_t triangle,
double* a_buffer, const size_t a_offset, const size_t a_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsyr2(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1972,6 +2078,7 @@ cublasStatus_t cublasXspr2(const Layout layout, const cublasFillMode_t triangle,
float* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSspr2(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -1989,6 +2096,7 @@ cublasStatus_t cublasXspr2(const Layout layout, const cublasFillMode_t triangle,
double* ap_buffer, const size_t ap_offset) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDspr2(handle, triangle,
static_cast<int>(n),
&alpha,
@@ -2021,6 +2129,7 @@ cublasStatus_t cublasXgemm(const Layout layout, const cublasOperation_t a_transp
float* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSgemm(handle, a_transpose, b_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2040,6 +2149,7 @@ cublasStatus_t cublasXgemm(const Layout layout, const cublasOperation_t a_transp
double* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDgemm(handle, a_transpose, b_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2065,6 +2175,7 @@ cublasStatus_t cublasXgemm(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCgemm(handle, a_transpose, b_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2090,6 +2201,7 @@ cublasStatus_t cublasXgemm(const Layout layout, const cublasOperation_t a_transp
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZgemm(handle, a_transpose, b_transpose,
static_cast<int>(m), static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2120,6 +2232,7 @@ cublasStatus_t cublasXsymm(const Layout layout, const cublasSideMode_t side, con
float* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsymm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -2139,6 +2252,7 @@ cublasStatus_t cublasXsymm(const Layout layout, const cublasSideMode_t side, con
double* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsymm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -2164,6 +2278,7 @@ cublasStatus_t cublasXsymm(const Layout layout, const cublasSideMode_t side, con
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCsymm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -2189,6 +2304,7 @@ cublasStatus_t cublasXsymm(const Layout layout, const cublasSideMode_t side, con
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZsymm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -2225,6 +2341,7 @@ cublasStatus_t cublasXhemm(const Layout layout, const cublasSideMode_t side, con
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasChemm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -2250,6 +2367,7 @@ cublasStatus_t cublasXhemm(const Layout layout, const cublasSideMode_t side, con
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZhemm(handle, side, triangle,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -2270,6 +2388,7 @@ cublasStatus_t cublasXsyrk(const Layout layout, const cublasFillMode_t triangle,
float* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsyrk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2287,6 +2406,7 @@ cublasStatus_t cublasXsyrk(const Layout layout, const cublasFillMode_t triangle,
double* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsyrk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2310,6 +2430,7 @@ cublasStatus_t cublasXsyrk(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCsyrk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2333,6 +2454,7 @@ cublasStatus_t cublasXsyrk(const Layout layout, const cublasFillMode_t triangle,
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZsyrk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2360,6 +2482,7 @@ cublasStatus_t cublasXherk(const Layout layout, const cublasFillMode_t triangle,
float2* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCherk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2377,6 +2500,7 @@ cublasStatus_t cublasXherk(const Layout layout, const cublasFillMode_t triangle,
double2* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZherk(handle, triangle, a_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2397,6 +2521,7 @@ cublasStatus_t cublasXsyr2k(const Layout layout, const cublasFillMode_t triangle
float* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasSsyr2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2416,6 +2541,7 @@ cublasStatus_t cublasXsyr2k(const Layout layout, const cublasFillMode_t triangle
double* c_buffer, const size_t c_offset, const size_t c_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDsyr2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha,
@@ -2441,6 +2567,7 @@ cublasStatus_t cublasXsyr2k(const Layout layout, const cublasFillMode_t triangle
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCsyr2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2466,6 +2593,7 @@ cublasStatus_t cublasXsyr2k(const Layout layout, const cublasFillMode_t triangle
beta_cuda.x = beta.real();
beta_cuda.y = beta.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZsyr2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2499,6 +2627,7 @@ cublasStatus_t cublasXher2k(const Layout layout, const cublasFillMode_t triangle
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCher2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2521,6 +2650,7 @@ cublasStatus_t cublasXher2k(const Layout layout, const cublasFillMode_t triangle
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZher2k(handle, triangle, ab_transpose,
static_cast<int>(n), static_cast<int>(k),
&alpha_cuda,
@@ -2540,10 +2670,12 @@ cublasStatus_t cublasXtrmm(const Layout layout, const cublasSideMode_t side, con
float* b_buffer, const size_t b_offset, const size_t b_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStrmm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha,
&a_buffer[a_offset], a_ld,
+ &a_buffer[a_offset], a_ld,
&b_buffer[b_offset], b_ld);
cublasDestroy(handle);
return status;
@@ -2555,10 +2687,12 @@ cublasStatus_t cublasXtrmm(const Layout layout, const cublasSideMode_t side, con
double* b_buffer, const size_t b_offset, const size_t b_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtrmm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha,
&a_buffer[a_offset], a_ld,
+ &a_buffer[a_offset], a_ld,
&b_buffer[b_offset], b_ld);
cublasDestroy(handle);
return status;
@@ -2573,10 +2707,12 @@ cublasStatus_t cublasXtrmm(const Layout layout, const cublasSideMode_t side, con
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtrmm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
+ reinterpret_cast<const cuComplex*>(&a_buffer[a_offset]), a_ld,
reinterpret_cast<cuComplex*>(&b_buffer[b_offset]), b_ld);
cublasDestroy(handle);
return status;
@@ -2591,10 +2727,12 @@ cublasStatus_t cublasXtrmm(const Layout layout, const cublasSideMode_t side, con
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtrmm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
+ reinterpret_cast<const cuDoubleComplex*>(&a_buffer[a_offset]), a_ld,
reinterpret_cast<cuDoubleComplex*>(&b_buffer[b_offset]), b_ld);
cublasDestroy(handle);
return status;
@@ -2615,6 +2753,7 @@ cublasStatus_t cublasXtrsm(const Layout layout, const cublasSideMode_t side, con
float* b_buffer, const size_t b_offset, const size_t b_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasStrsm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -2630,6 +2769,7 @@ cublasStatus_t cublasXtrsm(const Layout layout, const cublasSideMode_t side, con
double* b_buffer, const size_t b_offset, const size_t b_ld) {
if (layout == Layout::kRowMajor) { return CUBLAS_STATUS_NOT_SUPPORTED; }
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasDtrsm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha,
@@ -2648,6 +2788,7 @@ cublasStatus_t cublasXtrsm(const Layout layout, const cublasSideMode_t side, con
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasCtrsm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,
@@ -2666,6 +2807,7 @@ cublasStatus_t cublasXtrsm(const Layout layout, const cublasSideMode_t side, con
alpha_cuda.x = alpha.real();
alpha_cuda.y = alpha.imag();
cublasHandle_t handle;
+ if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) { return CUBLAS_STATUS_NOT_INITIALIZED; }
auto status = cublasZtrsm(handle, side, triangle, a_transpose, diagonal,
static_cast<int>(m), static_cast<int>(n),
&alpha_cuda,