You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ap...@apache.org on 2016/06/10 16:52:53 UTC
[48/51] [partial] mahout git commit: Revert "(nojira) add
native-viennaCL module to codebase. closes apache/mahout#241"
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas2_opencl.cu
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas2_opencl.cu b/native-viennaCL/src/main/cpp/libviennacl/src/blas2_opencl.cu
deleted file mode 100644
index 20c4994..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas2_opencl.cu
+++ /dev/null
@@ -1,219 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-// xGEMV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLSgemv(ViennaCLBackend backend,
- ViennaCLOrder order, ViennaCLTranspose transA,
- ViennaCLInt m, ViennaCLInt n, float alpha, cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx,
- float beta,
- cl_mem y, ViennaCLInt offy, ViennaCLInt incy)
-{
- typedef viennacl::vector_base<float>::size_type size_type;
- typedef viennacl::vector_base<float>::size_type difference_type;
-
- viennacl::vector_base<float> v1(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::vector_base<float> v2(y, size_type(m), size_type(offy), difference_type(incy), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<float> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offA_row), difference_type(incA_row), size_type(m),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
- v2 *= beta;
- if (transA == ViennaCLTrans)
- v2 += alpha * viennacl::linalg::prod(viennacl::trans(mat), v1);
- else
- v2 += alpha * viennacl::linalg::prod(mat, v1);
-
- return ViennaCLSuccess;
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLDgemv(ViennaCLBackend backend,
- ViennaCLOrder order, ViennaCLTranspose transA,
- ViennaCLInt m, ViennaCLInt n, double alpha, cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx,
- double beta,
- cl_mem y, ViennaCLInt offy, ViennaCLInt incy)
-{
- typedef viennacl::vector_base<double>::size_type size_type;
- typedef viennacl::vector_base<double>::size_type difference_type;
-
- viennacl::vector_base<double> v1(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::vector_base<double> v2(y, size_type(m), size_type(offy), difference_type(incy), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<double> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offA_row), difference_type(incA_row), size_type(m),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
- v2 *= beta;
- if (transA == ViennaCLTrans)
- v2 += alpha * viennacl::linalg::prod(viennacl::trans(mat), v1);
- else
- v2 += alpha * viennacl::linalg::prod(mat, v1);
-
- return ViennaCLSuccess;
-}
-
-
-
-// xTRSV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLStrsv(ViennaCLBackend backend,
- ViennaCLUplo uplo, ViennaCLOrder order, ViennaCLTranspose transA, ViennaCLDiag diag,
- ViennaCLInt n, cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx)
-{
- typedef viennacl::vector_base<float>::size_type size_type;
- typedef viennacl::vector_base<float>::size_type difference_type;
-
- viennacl::vector_base<float> v(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<float> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(n), size_type(offA_row), difference_type(incA_row), size_type(n),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
- if (transA == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper)
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::unit_upper_tag());
- else
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::upper_tag());
- else
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::unit_lower_tag());
- else
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::lower_tag());
- }
- else
- {
- if (uplo == ViennaCLUpper)
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::unit_upper_tag());
- else
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::upper_tag());
- else
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::unit_lower_tag());
- else
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::lower_tag());
- }
-
- return ViennaCLSuccess;
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLDtrsv(ViennaCLBackend backend,
- ViennaCLUplo uplo, ViennaCLOrder order, ViennaCLTranspose transA, ViennaCLDiag diag,
- ViennaCLInt n, cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx)
-{
- typedef viennacl::vector_base<double>::size_type size_type;
- typedef viennacl::vector_base<double>::size_type difference_type;
-
- viennacl::vector_base<double> v(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<double> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(n), size_type(offA_row), difference_type(incA_row), size_type(n),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
- if (transA == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper)
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::unit_upper_tag());
- else
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::upper_tag());
- else
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::unit_lower_tag());
- else
- viennacl::linalg::inplace_solve(viennacl::trans(mat), v, viennacl::linalg::lower_tag());
- }
- else
- {
- if (uplo == ViennaCLUpper)
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::unit_upper_tag());
- else
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::upper_tag());
- else
- if (diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::unit_lower_tag());
- else
- viennacl::linalg::inplace_solve(mat, v, viennacl::linalg::lower_tag());
- }
-
- return ViennaCLSuccess;
-}
-
-
-
-// xGER
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLSger(ViennaCLBackend backend,
- ViennaCLOrder order,
- ViennaCLInt m, ViennaCLInt n,
- float alpha,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx,
- cl_mem y, ViennaCLInt offy, ViennaCLInt incy,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda)
-{
- typedef viennacl::vector_base<float>::size_type size_type;
- typedef viennacl::vector_base<float>::size_type difference_type;
-
- viennacl::vector_base<float> v1(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::vector_base<float> v2(y, size_type(m), size_type(offy), difference_type(incy), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<float> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offA_row), difference_type(incA_row), size_type(m),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
-
- mat += alpha * viennacl::linalg::outer_prod(v1, v2);
-
- return ViennaCLSuccess;
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLDger(ViennaCLBackend backend,
- ViennaCLOrder order,
- ViennaCLInt m, ViennaCLInt n,
- double alpha,
- cl_mem x, ViennaCLInt offx, ViennaCLInt incx,
- cl_mem y, ViennaCLInt offy, ViennaCLInt incy,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda)
-{
- typedef viennacl::vector_base<double>::size_type size_type;
- typedef viennacl::vector_base<double>::size_type difference_type;
-
- viennacl::vector_base<double> v1(x, size_type(n), size_type(offx), difference_type(incx), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::vector_base<double> v2(y, size_type(m), size_type(offy), difference_type(incy), viennacl::ocl::get_context(backend->opencl_backend.context_id));
- viennacl::matrix_base<double> mat(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offA_row), difference_type(incA_row), size_type(m),
- size_type(n), size_type(offA_col), difference_type(incA_col), size_type(lda), order == ViennaCLRowMajor);
-
- mat += alpha * viennacl::linalg::outer_prod(v1, v2);
-
- return ViennaCLSuccess;
-}
-
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cpp
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cpp b/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cpp
deleted file mode 100644
index bb6e03e..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "init_matrix.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-// GEMV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLgemm(ViennaCLHostScalar alpha, ViennaCLMatrix A, ViennaCLMatrix B, ViennaCLHostScalar beta, ViennaCLMatrix C)
-{
- viennacl::backend::mem_handle A_handle;
- viennacl::backend::mem_handle B_handle;
- viennacl::backend::mem_handle C_handle;
-
- if (init_matrix(A_handle, A) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(B_handle, B) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(C_handle, C) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- switch (A->precision)
- {
- case ViennaCLFloat:
- {
- typedef viennacl::matrix_base<float>::size_type size_type;
- typedef viennacl::matrix_base<float>::size_type difference_type;
-
- viennacl::matrix_base<float> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_C(C_handle,
- size_type(C->size1), size_type(C->start1), difference_type(C->stride1), size_type(C->internal_size1),
- size_type(C->size2), size_type(C->start2), difference_type(C->stride2), size_type(C->internal_size2), C->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), viennacl::trans(mat_B), mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), mat_B, mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(mat_A, viennacl::trans(mat_B), mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(mat_A, mat_B, mat_C, alpha->value_float, beta->value_float);
- else
- return ViennaCLGenericFailure;
-
- return ViennaCLSuccess;
- }
-
- case ViennaCLDouble:
- {
- typedef viennacl::matrix_base<double>::size_type size_type;
- typedef viennacl::matrix_base<double>::size_type difference_type;
-
- viennacl::matrix_base<double> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_C(C_handle,
- size_type(C->size1), size_type(C->start1), difference_type(C->stride1), size_type(C->internal_size1),
- size_type(C->size2), size_type(C->start2), difference_type(C->stride2), size_type(C->internal_size2), C->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), viennacl::trans(mat_B), mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), mat_B, mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(mat_A, viennacl::trans(mat_B), mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(mat_A, mat_B, mat_C, alpha->value_double, beta->value_double);
- else
- return ViennaCLGenericFailure;
-
- return ViennaCLSuccess;
- }
-
- default:
- return ViennaCLGenericFailure;
- }
-}
-
-
-// xTRSV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLtrsm(ViennaCLMatrix A, ViennaCLUplo uplo, ViennaCLDiag diag, ViennaCLMatrix B)
-{
- viennacl::backend::mem_handle A_handle;
- viennacl::backend::mem_handle B_handle;
-
- if (init_matrix(A_handle, A) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(B_handle, B) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- switch (A->precision)
- {
- case ViennaCLFloat:
- {
- typedef viennacl::matrix_base<float>::size_type size_type;
- typedef viennacl::matrix_base<float>::size_type difference_type;
-
- viennacl::matrix_base<float> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
-
- return ViennaCLSuccess;
- }
- case ViennaCLDouble:
- {
- typedef viennacl::matrix_base<double>::size_type size_type;
- typedef viennacl::matrix_base<double>::size_type difference_type;
-
- viennacl::matrix_base<double> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
-
- return ViennaCLSuccess;
- }
-
- default:
- return ViennaCLGenericFailure;
- }
-}
-
-
-
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cu
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cu b/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cu
deleted file mode 100644
index bb6e03e..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.cu
+++ /dev/null
@@ -1,272 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "init_matrix.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-// GEMV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLgemm(ViennaCLHostScalar alpha, ViennaCLMatrix A, ViennaCLMatrix B, ViennaCLHostScalar beta, ViennaCLMatrix C)
-{
- viennacl::backend::mem_handle A_handle;
- viennacl::backend::mem_handle B_handle;
- viennacl::backend::mem_handle C_handle;
-
- if (init_matrix(A_handle, A) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(B_handle, B) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(C_handle, C) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- switch (A->precision)
- {
- case ViennaCLFloat:
- {
- typedef viennacl::matrix_base<float>::size_type size_type;
- typedef viennacl::matrix_base<float>::size_type difference_type;
-
- viennacl::matrix_base<float> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_C(C_handle,
- size_type(C->size1), size_type(C->start1), difference_type(C->stride1), size_type(C->internal_size1),
- size_type(C->size2), size_type(C->start2), difference_type(C->stride2), size_type(C->internal_size2), C->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), viennacl::trans(mat_B), mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), mat_B, mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(mat_A, viennacl::trans(mat_B), mat_C, alpha->value_float, beta->value_float);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(mat_A, mat_B, mat_C, alpha->value_float, beta->value_float);
- else
- return ViennaCLGenericFailure;
-
- return ViennaCLSuccess;
- }
-
- case ViennaCLDouble:
- {
- typedef viennacl::matrix_base<double>::size_type size_type;
- typedef viennacl::matrix_base<double>::size_type difference_type;
-
- viennacl::matrix_base<double> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_C(C_handle,
- size_type(C->size1), size_type(C->start1), difference_type(C->stride1), size_type(C->internal_size1),
- size_type(C->size2), size_type(C->start2), difference_type(C->stride2), size_type(C->internal_size2), C->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), viennacl::trans(mat_B), mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(viennacl::trans(mat_A), mat_B, mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- viennacl::linalg::prod_impl(mat_A, viennacl::trans(mat_B), mat_C, alpha->value_double, beta->value_double);
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(mat_A, mat_B, mat_C, alpha->value_double, beta->value_double);
- else
- return ViennaCLGenericFailure;
-
- return ViennaCLSuccess;
- }
-
- default:
- return ViennaCLGenericFailure;
- }
-}
-
-
-// xTRSV
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLtrsm(ViennaCLMatrix A, ViennaCLUplo uplo, ViennaCLDiag diag, ViennaCLMatrix B)
-{
- viennacl::backend::mem_handle A_handle;
- viennacl::backend::mem_handle B_handle;
-
- if (init_matrix(A_handle, A) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- if (init_matrix(B_handle, B) != ViennaCLSuccess)
- return ViennaCLGenericFailure;
-
- switch (A->precision)
- {
- case ViennaCLFloat:
- {
- typedef viennacl::matrix_base<float>::size_type size_type;
- typedef viennacl::matrix_base<float>::size_type difference_type;
-
- viennacl::matrix_base<float> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<float> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
-
- return ViennaCLSuccess;
- }
- case ViennaCLDouble:
- {
- typedef viennacl::matrix_base<double>::size_type size_type;
- typedef viennacl::matrix_base<double>::size_type difference_type;
-
- viennacl::matrix_base<double> mat_A(A_handle,
- size_type(A->size1), size_type(A->start1), difference_type(A->stride1), size_type(A->internal_size1),
- size_type(A->size2), size_type(A->start2), difference_type(A->stride2), size_type(A->internal_size2), A->order == ViennaCLRowMajor);
- viennacl::matrix_base<double> mat_B(B_handle,
- size_type(B->size1), size_type(B->start1), difference_type(B->stride1), size_type(B->internal_size1),
- size_type(B->size2), size_type(B->start2), difference_type(B->stride2), size_type(B->internal_size2), B->order == ViennaCLRowMajor);
-
- if (A->trans == ViennaCLTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(viennacl::trans(mat_A), viennacl::trans(mat_B), viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
- else if (A->trans == ViennaCLNoTrans && B->trans == ViennaCLNoTrans)
- {
- if (uplo == ViennaCLUpper && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::upper_tag());
- else if (uplo == ViennaCLUpper && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_upper_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLNonUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::lower_tag());
- else if (uplo == ViennaCLLower && diag == ViennaCLUnit)
- viennacl::linalg::inplace_solve(mat_A, mat_B, viennacl::linalg::unit_lower_tag());
- else
- return ViennaCLGenericFailure;
- }
-
- return ViennaCLSuccess;
- }
-
- default:
- return ViennaCLGenericFailure;
- }
-}
-
-
-
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3.hpp
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.hpp b/native-viennaCL/src/main/cpp/libviennacl/src/blas3.hpp
deleted file mode 100644
index cfcc034..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef VIENNACL_SRC_BLAS3_HPP
-#define VIENNACL_SRC_BLAS3_HPP
-
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-namespace detail
-{
- template <typename ScalarType, typename MatrixTypeA, typename MatrixTypeB, typename MatrixTypeC>
- void gemm_dispatch(ScalarType alpha,
- MatrixTypeA const & A, ViennaCLTranspose transA,
- MatrixTypeB const & B, ViennaCLTranspose transB,
- ScalarType beta,
- MatrixTypeC & C)
- {
-
- if (transA == ViennaCLTrans && transB == ViennaCLTrans)
- viennacl::linalg::prod_impl(viennacl::trans(A), viennacl::trans(B), C, alpha, beta);
- else if (transA == ViennaCLTrans && transB == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(viennacl::trans(A), B, C, alpha, beta);
- else if (transA == ViennaCLNoTrans && transB == ViennaCLTrans)
- viennacl::linalg::prod_impl(A, viennacl::trans(B), C, alpha, beta);
- else if (transA == ViennaCLNoTrans && transB == ViennaCLNoTrans)
- viennacl::linalg::prod_impl(A, B, C, alpha, beta);
- //else
- // return ViennaCLGenericFailure;
- }
-}
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3_cuda.cu
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_cuda.cu b/native-viennaCL/src/main/cpp/libviennacl/src/blas3_cuda.cu
deleted file mode 100644
index 318593b..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_cuda.cu
+++ /dev/null
@@ -1,133 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "blas3.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-#ifdef VIENNACL_WITH_CUDA
-
-
-
-//
-// xGEMV
-//
-
-namespace detail
-{
- template <typename NumericT>
- ViennaCLStatus ViennaCLCUDAgemm_impl(ViennaCLBackend /*backend*/,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- NumericT alpha,
- NumericT *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- NumericT *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- NumericT beta,
- NumericT *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
- {
- ViennaCLInt A_size1 = (transA == ViennaCLTrans) ? k : m;
- ViennaCLInt A_size2 = (transA == ViennaCLTrans) ? m : k;
-
- ViennaCLInt B_size1 = (transB == ViennaCLTrans) ? n : k;
- ViennaCLInt B_size2 = (transB == ViennaCLTrans) ? k : n;
-
- bool A_row_major = (orderA == ViennaCLRowMajor);
- bool B_row_major = (orderB == ViennaCLRowMajor);
- bool C_row_major = (orderC == ViennaCLRowMajor);
-
- viennacl::matrix_base<NumericT> matA(A, viennacl::CUDA_MEMORY,
- A_size1, offA_row, incA_row, A_row_major ? m : lda,
- A_size2, offA_col, incA_col, A_row_major ? lda : k, A_row_major);
-
- viennacl::matrix_base<NumericT> matB(B, viennacl::CUDA_MEMORY,
- B_size1, offB_row, incB_row, B_row_major ? k : ldb,
- B_size2, offB_col, incB_col, B_row_major ? ldb : n, B_row_major);
-
- viennacl::matrix_base<NumericT> matC(C, viennacl::CUDA_MEMORY,
- m, offC_row, incC_row, C_row_major ? m : ldc,
- n, offC_col, incC_col, C_row_major ? ldc : n, C_row_major);
-
- detail::gemm_dispatch(alpha, matA, transA, matB, transB, beta, matC);
-
- return ViennaCLSuccess;
- }
-
-}
-
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLCUDASgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- float alpha,
- float *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- float *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- float beta,
- float *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLCUDAgemm_impl<float>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLCUDADgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- double alpha,
- double *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- double *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- double beta,
- double *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLCUDAgemm_impl<double>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cpp
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cpp b/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cpp
deleted file mode 100644
index 16ef310..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "blas3.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-//
-// xGEMV
-//
-
-namespace detail
-{
- template <typename NumericT>
- ViennaCLStatus ViennaCLHostgemm_impl(ViennaCLBackend /*backend*/,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- NumericT alpha,
- NumericT *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- NumericT *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- NumericT beta,
- NumericT *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
- {
- typedef typename viennacl::matrix_base<NumericT>::size_type size_type;
- typedef typename viennacl::matrix_base<NumericT>::size_type difference_type;
-
- size_type A_size1 = static_cast<size_type>((transA == ViennaCLTrans) ? k : m);
- size_type A_size2 = static_cast<size_type>((transA == ViennaCLTrans) ? m : k);
-
- size_type B_size1 = static_cast<size_type>((transB == ViennaCLTrans) ? n : k);
- size_type B_size2 = static_cast<size_type>((transB == ViennaCLTrans) ? k : n);
-
- bool A_row_major = (orderA == ViennaCLRowMajor);
- bool B_row_major = (orderB == ViennaCLRowMajor);
- bool C_row_major = (orderC == ViennaCLRowMajor);
-
- viennacl::matrix_base<NumericT> matA(A, viennacl::MAIN_MEMORY,
- A_size1, size_type(offA_row), difference_type(incA_row), size_type(A_row_major ? m : lda),
- A_size2, size_type(offA_col), difference_type(incA_col), size_type(A_row_major ? lda : k), A_row_major);
-
- viennacl::matrix_base<NumericT> matB(B, viennacl::MAIN_MEMORY,
- B_size1, size_type(offB_row), difference_type(incB_row), size_type(B_row_major ? k : ldb),
- B_size2, size_type(offB_col), difference_type(incB_col), size_type(B_row_major ? ldb : n), B_row_major);
-
- viennacl::matrix_base<NumericT> matC(C, viennacl::MAIN_MEMORY,
- size_type(m), size_type(offC_row), difference_type(incC_row), size_type(C_row_major ? m : ldc),
- size_type(n), size_type(offC_col), difference_type(incC_col), size_type(C_row_major ? ldc : n), C_row_major);
-
- detail::gemm_dispatch(alpha, matA, transA, matB, transB, beta, matC);
-
- return ViennaCLSuccess;
- }
-
-}
-
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostSgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- float alpha,
- float *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- float *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- float beta,
- float *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLHostgemm_impl<float>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostDgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- double alpha,
- double *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- double *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- double beta,
- double *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLHostgemm_impl<double>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cu
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cu b/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cu
deleted file mode 100644
index 16ef310..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_host.cu
+++ /dev/null
@@ -1,131 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "blas3.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-//
-// xGEMV
-//
-
-namespace detail
-{
- template <typename NumericT>
- ViennaCLStatus ViennaCLHostgemm_impl(ViennaCLBackend /*backend*/,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- NumericT alpha,
- NumericT *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- NumericT *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- NumericT beta,
- NumericT *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
- {
- typedef typename viennacl::matrix_base<NumericT>::size_type size_type;
- typedef typename viennacl::matrix_base<NumericT>::size_type difference_type;
-
- size_type A_size1 = static_cast<size_type>((transA == ViennaCLTrans) ? k : m);
- size_type A_size2 = static_cast<size_type>((transA == ViennaCLTrans) ? m : k);
-
- size_type B_size1 = static_cast<size_type>((transB == ViennaCLTrans) ? n : k);
- size_type B_size2 = static_cast<size_type>((transB == ViennaCLTrans) ? k : n);
-
- bool A_row_major = (orderA == ViennaCLRowMajor);
- bool B_row_major = (orderB == ViennaCLRowMajor);
- bool C_row_major = (orderC == ViennaCLRowMajor);
-
- viennacl::matrix_base<NumericT> matA(A, viennacl::MAIN_MEMORY,
- A_size1, size_type(offA_row), difference_type(incA_row), size_type(A_row_major ? m : lda),
- A_size2, size_type(offA_col), difference_type(incA_col), size_type(A_row_major ? lda : k), A_row_major);
-
- viennacl::matrix_base<NumericT> matB(B, viennacl::MAIN_MEMORY,
- B_size1, size_type(offB_row), difference_type(incB_row), size_type(B_row_major ? k : ldb),
- B_size2, size_type(offB_col), difference_type(incB_col), size_type(B_row_major ? ldb : n), B_row_major);
-
- viennacl::matrix_base<NumericT> matC(C, viennacl::MAIN_MEMORY,
- size_type(m), size_type(offC_row), difference_type(incC_row), size_type(C_row_major ? m : ldc),
- size_type(n), size_type(offC_col), difference_type(incC_col), size_type(C_row_major ? ldc : n), C_row_major);
-
- detail::gemm_dispatch(alpha, matA, transA, matB, transB, beta, matC);
-
- return ViennaCLSuccess;
- }
-
-}
-
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostSgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- float alpha,
- float *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- float *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- float beta,
- float *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLHostgemm_impl<float>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostDgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- double alpha,
- double *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- double *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- double beta,
- double *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLHostgemm_impl<double>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cpp
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cpp b/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cpp
deleted file mode 100644
index d5e5c1e..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "blas3.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-#ifdef VIENNACL_WITH_OPENCL
-
-
-
-//
-// xGEMV
-//
-
-namespace detail
-{
- template <typename NumericT>
- ViennaCLStatus ViennaCLOpenCLgemm_impl(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- NumericT alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- NumericT beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
- {
- typedef typename viennacl::matrix_base<NumericT>::size_type size_type;
- typedef typename viennacl::matrix_base<NumericT>::size_type difference_type;
-
- size_type A_size1 = static_cast<size_type>((transA == ViennaCLTrans) ? k : m);
- size_type A_size2 = static_cast<size_type>((transA == ViennaCLTrans) ? m : k);
-
- size_type B_size1 = static_cast<size_type>((transB == ViennaCLTrans) ? n : k);
- size_type B_size2 = static_cast<size_type>((transB == ViennaCLTrans) ? k : n);
-
- bool A_row_major = (orderA == ViennaCLRowMajor);
- bool B_row_major = (orderB == ViennaCLRowMajor);
- bool C_row_major = (orderC == ViennaCLRowMajor);
-
- viennacl::matrix_base<NumericT> matA(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- A_size1, size_type(offA_row), difference_type(incA_row), size_type(A_row_major ? m : lda),
- A_size2, size_type(offA_col), difference_type(incA_col), size_type(A_row_major ? lda : k), A_row_major);
-
- viennacl::matrix_base<NumericT> matB(B, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- B_size1, size_type(offB_row), difference_type(incB_row), size_type(B_row_major ? k : ldb),
- B_size2, size_type(offB_col), difference_type(incB_col), size_type(B_row_major ? ldb : n), B_row_major);
-
- viennacl::matrix_base<NumericT> matC(C, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offC_row), difference_type(incC_row), size_type(C_row_major ? m : ldc),
- size_type(n), size_type(offC_col), difference_type(incC_col), size_type(C_row_major ? ldc : n), C_row_major);
-
- detail::gemm_dispatch(alpha, matA, transA, matB, transB, beta, matC);
-
- return ViennaCLSuccess;
- }
-
-}
-
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLSgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- float alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- float beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLOpenCLgemm_impl<float>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLDgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- double alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- double beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLOpenCLgemm_impl<double>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/mahout/blob/7ae549fa/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cu
----------------------------------------------------------------------
diff --git a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cu b/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cu
deleted file mode 100644
index d5e5c1e..0000000
--- a/native-viennaCL/src/main/cpp/libviennacl/src/blas3_opencl.cu
+++ /dev/null
@@ -1,136 +0,0 @@
-/* =========================================================================
- Copyright (c) 2010-2014, Institute for Microelectronics,
- Institute for Analysis and Scientific Computing,
- TU Wien.
- Portions of this software are copyright by UChicago Argonne, LLC.
-
- -----------------
- ViennaCL - The Vienna Computing Library
- -----------------
-
- Project Head: Karl Rupp rupp@iue.tuwien.ac.at
-
- (A list of authors and contributors can be found in the PDF manual)
-
- License: MIT (X11), see file LICENSE in the base directory
-============================================================================= */
-
-// include necessary system headers
-#include <iostream>
-
-#include "viennacl.hpp"
-#include "viennacl_private.hpp"
-
-#include "blas3.hpp"
-
-//include basic scalar and vector types of ViennaCL
-#include "viennacl/scalar.hpp"
-#include "viennacl/vector.hpp"
-#include "viennacl/matrix.hpp"
-#include "viennacl/linalg/direct_solve.hpp"
-#include "viennacl/linalg/prod.hpp"
-
-
-#ifdef VIENNACL_WITH_OPENCL
-
-
-
-//
-// xGEMV
-//
-
-namespace detail
-{
- template <typename NumericT>
- ViennaCLStatus ViennaCLOpenCLgemm_impl(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- NumericT alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- NumericT beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
- {
- typedef typename viennacl::matrix_base<NumericT>::size_type size_type;
- typedef typename viennacl::matrix_base<NumericT>::size_type difference_type;
-
- size_type A_size1 = static_cast<size_type>((transA == ViennaCLTrans) ? k : m);
- size_type A_size2 = static_cast<size_type>((transA == ViennaCLTrans) ? m : k);
-
- size_type B_size1 = static_cast<size_type>((transB == ViennaCLTrans) ? n : k);
- size_type B_size2 = static_cast<size_type>((transB == ViennaCLTrans) ? k : n);
-
- bool A_row_major = (orderA == ViennaCLRowMajor);
- bool B_row_major = (orderB == ViennaCLRowMajor);
- bool C_row_major = (orderC == ViennaCLRowMajor);
-
- viennacl::matrix_base<NumericT> matA(A, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- A_size1, size_type(offA_row), difference_type(incA_row), size_type(A_row_major ? m : lda),
- A_size2, size_type(offA_col), difference_type(incA_col), size_type(A_row_major ? lda : k), A_row_major);
-
- viennacl::matrix_base<NumericT> matB(B, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- B_size1, size_type(offB_row), difference_type(incB_row), size_type(B_row_major ? k : ldb),
- B_size2, size_type(offB_col), difference_type(incB_col), size_type(B_row_major ? ldb : n), B_row_major);
-
- viennacl::matrix_base<NumericT> matC(C, viennacl::ocl::get_context(backend->opencl_backend.context_id),
- size_type(m), size_type(offC_row), difference_type(incC_row), size_type(C_row_major ? m : ldc),
- size_type(n), size_type(offC_col), difference_type(incC_col), size_type(C_row_major ? ldc : n), C_row_major);
-
- detail::gemm_dispatch(alpha, matA, transA, matB, transB, beta, matC);
-
- return ViennaCLSuccess;
- }
-
-}
-
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLSgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- float alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- float beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLOpenCLgemm_impl<float>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLOpenCLDgemm(ViennaCLBackend backend,
- ViennaCLOrder orderA, ViennaCLTranspose transA,
- ViennaCLOrder orderB, ViennaCLTranspose transB,
- ViennaCLOrder orderC,
- ViennaCLInt m, ViennaCLInt n, ViennaCLInt k,
- double alpha,
- cl_mem A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda,
- cl_mem B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb,
- double beta,
- cl_mem C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
-{
- return detail::ViennaCLOpenCLgemm_impl<double>(backend,
- orderA, transA,
- orderB, transB,
- orderC,
- m, n, k,
- alpha,
- A, offA_row, offA_col, incA_row, incA_col, lda,
- B, offB_row, offB_col, incB_row, incB_col, ldb,
- beta,
- C, offC_row, offC_col, incC_row, incC_col, ldc);
-}
-
-
-#endif