diff --git a/resolve/vector/VectorHandlerCuda.cpp b/resolve/vector/VectorHandlerCuda.cpp index 9d6098cc2..f71de8227 100644 --- a/resolve/vector/VectorHandlerCuda.cpp +++ b/resolve/vector/VectorHandlerCuda.cpp @@ -235,32 +235,21 @@ namespace ReSolve vector::Vector* y) { using namespace constants; - if (k < 200) - { - cuda::axpy_multi(size, - k, - x->getData(memory::DEVICE), - y->getData(memory::DEVICE), - alpha->getData(memory::DEVICE)); - } - else - { - cublasHandle_t handle_cublas = workspace_->getCublasHandle(); - cublasDgemm(handle_cublas, - CUBLAS_OP_N, - CUBLAS_OP_N, - size, // m - 1, // n - k, // k - &MINUS_ONE, // alpha - x->getData(memory::DEVICE), // A - size, // lda - alpha->getData(memory::DEVICE), // B - k, // ldb - &ONE, - y->getData(memory::DEVICE), // c - size); // ldc - } + cublasHandle_t handle_cublas = workspace_->getCublasHandle(); + cublasDgemm(handle_cublas, + CUBLAS_OP_N, + CUBLAS_OP_N, + size, // m + 1, // n + k, // k + &MINUS_ONE, // alpha + x->getData(memory::DEVICE), // A + size, // lda + alpha->getData(memory::DEVICE), // B + k, // ldb + &ONE, + y->getData(memory::DEVICE), // c + size); // ldc y->setDataUpdated(memory::DEVICE); } @@ -285,34 +274,21 @@ namespace ReSolve vector::Vector* res) { using namespace constants; - - if (k < 200) - { - cuda::dot_2_multi(size, - k, - x->getData(0, memory::DEVICE), - x->getData(1, memory::DEVICE), - V->getData(memory::DEVICE), - res->getData(memory::DEVICE)); - } - else - { - cublasHandle_t handle_cublas = workspace_->getCublasHandle(); - cublasDgemm(handle_cublas, - CUBLAS_OP_T, - CUBLAS_OP_N, - k, // m - 2, // n - size, // k - &ONE, // alpha - V->getData(memory::DEVICE), // A - size, // lda - x->getData(memory::DEVICE), // B - size, // ldb - &ZERO, - res->getData(memory::DEVICE), // c - k); // ldc - } + cublasHandle_t handle_cublas = workspace_->getCublasHandle(); + cublasDgemm(handle_cublas, + CUBLAS_OP_T, + CUBLAS_OP_N, + k, // m + 2, // n + size, // k + &ONE, // alpha + V->getData(memory::DEVICE), // A + size, // lda + x->getData(memory::DEVICE), // B + size, // ldb + &ZERO, + res->getData(memory::DEVICE), // c + k); // ldc res->setDataUpdated(memory::DEVICE); } diff --git a/resolve/vector/VectorHandlerHip.cpp b/resolve/vector/VectorHandlerHip.cpp index 2feed57c3..3a361743a 100644 --- a/resolve/vector/VectorHandlerHip.cpp +++ b/resolve/vector/VectorHandlerHip.cpp @@ -234,32 +234,21 @@ namespace ReSolve vector::Vector* y) { using namespace constants; - if (k < 200) - { - hip::axpy_multi(size, - k, - x->getData(memory::DEVICE), - y->getData(memory::DEVICE), - alpha->getData(memory::DEVICE)); - } - else - { - rocblas_handle handle_rocblas = workspace_->getRocblasHandle(); - rocblas_dgemm(handle_rocblas, - rocblas_operation_none, - rocblas_operation_none, - size, // m - 1, // n - k, // k - &MINUS_ONE, // alpha - x->getData(memory::DEVICE), // A - size, // lda - alpha->getData(memory::DEVICE), // B - k, // ldb - &ONE, - y->getData(memory::DEVICE), // c - size); // ldc - } + rocblas_handle handle_rocblas = workspace_->getRocblasHandle(); + rocblas_dgemm(handle_rocblas, + rocblas_operation_none, + rocblas_operation_none, + size, // m + 1, // n + k, // k + &MINUS_ONE, // alpha + x->getData(memory::DEVICE), // A + size, // lda + alpha->getData(memory::DEVICE), // B + k, // ldb + &ONE, + y->getData(memory::DEVICE), // c + size); // ldc y->setDataUpdated(memory::DEVICE); mem_.deviceSynchronize(); } @@ -285,34 +274,21 @@ namespace ReSolve vector::Vector* res) { using namespace constants; - - if (k < 200) - { - hip::dot_2_multi(size, - k, - x->getData(0, memory::DEVICE), - x->getData(1, memory::DEVICE), - V->getData(memory::DEVICE), - res->getData(memory::DEVICE)); - } - else - { - rocblas_handle handle_rocblas = workspace_->getRocblasHandle(); - rocblas_dgemm(handle_rocblas, - rocblas_operation_transpose, - rocblas_operation_none, - k, // m - 2, // n - size, // k - &ONE, // alpha - V->getData(memory::DEVICE), // A - size, // lda - x->getData(memory::DEVICE), // B - size, // ldb - &ZERO, - res->getData(memory::DEVICE), // c - k); // ldc - } + rocblas_handle handle_rocblas = workspace_->getRocblasHandle(); + rocblas_dgemm(handle_rocblas, + rocblas_operation_transpose, + rocblas_operation_none, + k, // m + 2, // n + size, // k + &ONE, // alpha + V->getData(memory::DEVICE), // A + size, // lda + x->getData(memory::DEVICE), // B + size, // ldb + &ZERO, + res->getData(memory::DEVICE), // c + k); // ldc res->setDataUpdated(memory::DEVICE); mem_.deviceSynchronize(); }