ViennaCL - The Vienna Computing Library
1.5.2
|
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 | |
namespace | viennacl |
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
namespace | viennacl::linalg |
Provides all linear algebra operations which are not covered by operator overloads. | |
namespace | viennacl::linalg::cuda |
Holds all CUDA compute kernels used by ViennaCL. | |
namespace | viennacl::linalg::cuda::detail |
Helper functions for the CUDA linear algebra backend. | |
Functions | |
template<typename T > | |
__global__ void | as_kernel (T *s1, const T *fac2, unsigned int options2, const T *s2) |
template<typename T > | |
__global__ void | as_kernel (T *s1, T fac2, unsigned int options2, const T *s2) |
template<typename S1 , typename S2 , typename ScalarType1 > | |
viennacl::enable_if < viennacl::is_scalar< S1 > ::value &&viennacl::is_scalar < S2 >::value &&viennacl::is_any_scalar < ScalarType1 >::value >::type | as (S1 &s1, S2 const &s2, ScalarType1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha) |
template<typename T > | |
__global__ void | asbs_kernel (T *s1, const T *fac2, unsigned int options2, const T *s2, const T *fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_kernel (T *s1, T fac2, unsigned int options2, const T *s2, const T *fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_kernel (T *s1, const T *fac2, unsigned int options2, const T *s2, T fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_kernel (T *s1, T fac2, unsigned int options2, const T *s2, T fac3, unsigned int options3, const T *s3) |
template<typename S1 , typename S2 , typename ScalarType1 , typename S3 , typename ScalarType2 > | |
viennacl::enable_if < viennacl::is_scalar< S1 > ::value &&viennacl::is_scalar < S2 >::value &&viennacl::is_scalar< S3 > ::value &&viennacl::is_any_scalar < ScalarType1 >::value &&viennacl::is_any_scalar < ScalarType2 >::value >::type | asbs (S1 &s1, S2 const &s2, ScalarType1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha, S3 const &s3, ScalarType2 const &beta, vcl_size_t len_beta, bool reciprocal_beta, bool flip_sign_beta) |
template<typename T > | |
__global__ void | asbs_s_kernel (T *s1, const T *fac2, unsigned int options2, const T *s2, const T *fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_s_kernel (T *s1, T fac2, unsigned int options2, const T *s2, const T *fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_s_kernel (T *s1, const T *fac2, unsigned int options2, const T *s2, T fac3, unsigned int options3, const T *s3) |
template<typename T > | |
__global__ void | asbs_s_kernel (T *s1, T fac2, unsigned int options2, const T *s2, T fac3, unsigned int options3, const T *s3) |
template<typename S1 , typename S2 , typename ScalarType1 , typename S3 , typename ScalarType2 > | |
viennacl::enable_if < viennacl::is_scalar< S1 > ::value &&viennacl::is_scalar < S2 >::value &&viennacl::is_scalar< S3 > ::value &&viennacl::is_any_scalar < ScalarType1 >::value &&viennacl::is_any_scalar < ScalarType2 >::value >::type | asbs_s (S1 &s1, S2 const &s2, ScalarType1 const &alpha, vcl_size_t len_alpha, bool reciprocal_alpha, bool flip_sign_alpha, S3 const &s3, ScalarType2 const &beta, vcl_size_t len_beta, bool reciprocal_beta, bool flip_sign_beta) |
template<typename T > | |
__global__ void | scalar_swap_kernel (T *s1, T *s2) |
template<typename S1 , typename S2 > | |
viennacl::enable_if < viennacl::is_scalar< S1 > ::value &&viennacl::is_scalar < S2 >::value >::type | swap (S1 &s1, S2 &s2) |
Swaps the contents of two scalars, data is copied. |
Implementations of scalar operations using CUDA.