Apache SINGA
A distributed deep learning platform .
 All Classes Namespaces Files Functions Variables Typedefs Macros
Classes | Namespaces | Functions
tensor_sse-inl.hpp File Reference

support of sse2 optimization of some operations More...

#include <malloc.h>
#include "tensor_expr.h"
#include "tensor.h"
#include <emmintrin.h>

Go to the source code of this file.

Classes

struct  mshadow::sse2::FVec< FloatType >
 float vector real type, used for vectorization More...
 
struct  mshadow::sse2::FVec< float >
 vector real type for float More...
 
struct  mshadow::sse2::FVec< double >
 vector real type for float More...
 
struct  mshadow::sse2::SSEOp< OP >
 sse2 operator type of certain operator More...
 
struct  mshadow::sse2::SSEOp< op::plus >
 
struct  mshadow::sse2::SSEOp< op::minus >
 
struct  mshadow::sse2::SSEOp< op::mul >
 
struct  mshadow::sse2::SSEOp< op::div >
 
struct  mshadow::sse2::SSEOp< op::identity >
 
struct  mshadow::sse2::Saver< SV, TFloat >
 
struct  mshadow::sse2::Saver< sv::saveto, TFloat >
 
class  mshadow::expr::SSEPlan< ExpType >
 
class  mshadow::expr::SSEPlan< Tensor< Device, dim > >
 
class  mshadow::expr::SSEPlan< ScalarExp >
 
class  mshadow::expr::SSEPlan< BinaryMapExp< OP, TA, TB, etype > >
 
class  mshadow::expr::SSEPlan< UnaryMapExp< OP, TA, etype > >
 
struct  mshadow::expr::SSECheck< E >
 static check sse enable if a expression E can not be evaluated using sse, then kPass = false More...
 
struct  mshadow::expr::SSECheck< ScalarExp >
 
struct  mshadow::expr::SSECheck< Tensor< cpu, dim > >
 
struct  mshadow::expr::SSECheck< UnaryMapExp< OP, TA, etype > >
 
struct  mshadow::expr::SSECheck< BinaryMapExp< OP, TA, TB, etype > >
 
struct  mshadow::expr::SSEAlignCheck< dim, E >
 
struct  mshadow::expr::SSEAlignCheck< dim, ScalarExp >
 
struct  mshadow::expr::SSEAlignCheck< dim, Tensor< cpu, dim > >
 
struct  mshadow::expr::SSEAlignCheck< dim, UnaryMapExp< OP, TA, etype > >
 
struct  mshadow::expr::SSEAlignCheck< dim, BinaryMapExp< OP, TA, TB, etype > >
 

Namespaces

 mshadow
 namespace for mshadow
 
 mshadow::sse2
 namespace to support sse2 vectorization
 
 mshadow::expr
 namespace for abstract expressions and expressions template, have no dependecy on tensor.h, These data structure takes no charge in computations, they are only used to define operations and represent expression in a symbolic way
 

Functions

void * mshadow::sse2::AlignedMallocPitch (size_t &pitch, size_t lspace, size_t num_line)
 analog to cudaMallocPitch, allocate a aligned space with num_line * lspace cells More...
 
void mshadow::sse2::AlignedFree (void *ptr)
 free aligned space More...
 
bool mshadow::sse2::CheckAlign (size_t pitch)
 check if a pointer is aligned
 
bool mshadow::sse2::CheckAlign (void *ptr)
 check if a pointer is aligned
 
index_t mshadow::sse2::UpperAlign (index_t size, size_t fsize)
 get upper bound of aligned index of size More...
 
index_t mshadow::sse2::LowerAlign (index_t size, size_t fsize)
 get lower bound of aligned index of size More...
 
template<typename OP , typename TA , typename TB , int etype>
SSEPlan< BinaryMapExp< OP, TA,
TB, etype > > 
mshadow::expr::MakeSSEPlan (const BinaryMapExp< OP, TA, TB, etype > &e)
 
SSEPlan< ScalarExp > mshadow::expr::MakeSSEPlan (const ScalarExp &e)
 
template<typename T >
SSEPlan< T > mshadow::expr::MakeSSEPlan (const ContainerExp< T > &e)
 
template<typename T , int dim>
SSEPlan< T > mshadow::expr::MakeSSEPlan (const MakeTensorExp< T, cpu, dim > &e)
 
template<typename OP , typename TA , int etype>
SSEPlan< UnaryMapExp< OP, TA,
etype > > 
mshadow::expr::MakeSSEPlan (const UnaryMapExp< OP, TA, etype > &e)
 
template<typename SV , typename E , int dim>
void mshadow::MapSSEPlan (Tensor< cpu, dim > _dst, const expr::SSEPlan< E > &plan)
 use SSEPlan to compute result
 

Detailed Description

support of sse2 optimization of some operations

Author
Tianqi Chen