Implementations of scalar operations using CUDA. More...
#include "viennacl/forwards.h"#include "viennacl/tools/tools.hpp"#include "viennacl/meta/predicate.hpp"#include "viennacl/meta/enable_if.hpp"#include "viennacl/traits/size.hpp"#include "viennacl/traits/start.hpp"#include "viennacl/traits/stride.hpp"#include "viennacl/linalg/cuda/common.hpp"#include <cuda_runtime.h>Go to the source code of this file.
Namespaces | |
| viennacl | |
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
| viennacl::linalg | |
| Provides all linear algebra operations which are not covered by operator overloads. | |
| viennacl::linalg::cuda | |
| Holds all CUDA compute kernels used by ViennaCL. | |
Functions | |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::as_kernel (NumericT *s1, const NumericT *fac2, unsigned int options2, const NumericT *s2) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::as_kernel (NumericT *s1, NumericT fac2, unsigned int options2, const NumericT *s2) |
| template<typename ScalarT1 , typename ScalarT2 , typename NumericT > | |
| viennacl::enable_if < viennacl::is_scalar < ScalarT1 >::value &&viennacl::is_scalar < ScalarT2 >::value &&viennacl::is_any_scalar < NumericT >::value >::type | viennacl::linalg::cuda::as (ScalarT1 &s1, ScalarT2 const &s2, NumericT const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_kernel (NumericT *s1, const NumericT *fac2, unsigned int options2, const NumericT *s2, const NumericT *fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_kernel (NumericT *s1, NumericT fac2, unsigned int options2, const NumericT *s2, NumericT const *fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_kernel (NumericT *s1, NumericT const *fac2, unsigned int options2, const NumericT *s2, NumericT fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_kernel (NumericT *s1, NumericT fac2, unsigned int options2, const NumericT *s2, NumericT fac3, unsigned int options3, const NumericT *s3) |
| template<typename ScalarT1 , typename ScalarT2 , typename NumericT1 , typename ScalarT3 , typename NumericT2 > | |
| viennacl::enable_if < viennacl::is_scalar < ScalarT1 >::value &&viennacl::is_scalar < ScalarT2 >::value &&viennacl::is_scalar < ScalarT3 >::value &&viennacl::is_any_scalar < NumericT1 >::value &&viennacl::is_any_scalar < NumericT2 >::value >::type | viennacl::linalg::cuda::asbs (ScalarT1 &s1, ScalarT2 const &s2, NumericT1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha, ScalarT3 const &s3, NumericT2 const &beta, vcl_size_t len_beta, bool reciprocal_beta, bool flip_sign_beta) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_s_kernel (NumericT *s1, const NumericT *fac2, unsigned int options2, const NumericT *s2, const NumericT *fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_s_kernel (NumericT *s1, NumericT fac2, unsigned int options2, const NumericT *s2, NumericT const *fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_s_kernel (NumericT *s1, NumericT const *fac2, unsigned int options2, const NumericT *s2, NumericT fac3, unsigned int options3, const NumericT *s3) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::asbs_s_kernel (NumericT *s1, NumericT fac2, unsigned int options2, const NumericT *s2, NumericT fac3, unsigned int options3, const NumericT *s3) |
| template<typename ScalarT1 , typename ScalarT2 , typename NumericT1 , typename ScalarT3 , typename NumericT2 > | |
| viennacl::enable_if < viennacl::is_scalar < ScalarT1 >::value &&viennacl::is_scalar < ScalarT2 >::value &&viennacl::is_scalar < ScalarT3 >::value &&viennacl::is_any_scalar < NumericT1 >::value &&viennacl::is_any_scalar < NumericT2 >::value >::type | viennacl::linalg::cuda::asbs_s (ScalarT1 &s1, ScalarT2 const &s2, NumericT1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha, ScalarT3 const &s3, NumericT2 const &beta, vcl_size_t len_beta, bool reciprocal_beta, bool flip_sign_beta) |
| template<typename NumericT > | |
| __global__ void | viennacl::linalg::cuda::scalar_swap_kernel (NumericT *s1, NumericT *s2) |
| template<typename ScalarT1 , typename ScalarT2 > | |
| viennacl::enable_if < viennacl::is_scalar < ScalarT1 >::value &&viennacl::is_scalar < ScalarT2 >::value >::type | viennacl::linalg::cuda::swap (ScalarT1 &s1, ScalarT2 &s2) |
| Swaps the contents of two scalars, data is copied. More... | |
Implementations of scalar operations using CUDA.
Definition in file scalar_operations.hpp.