Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub

Types used in Synet Framework. More...

Data Structures

struct  SimdConvolutionParameters
 

Typedefs

typedef struct SimdConvolutionParameters SimdConvolutionParameters
 

Enumerations

enum  SimdConvolutionActivationType {
  SimdConvolutionActivationIdentity = 0 ,
  SimdConvolutionActivationRelu ,
  SimdConvolutionActivationLeakyRelu ,
  SimdConvolutionActivationRestrictRange ,
  SimdConvolutionActivationPrelu ,
  SimdConvolutionActivationElu ,
  SimdConvolutionActivationHswish ,
  SimdConvolutionActivationMish ,
  SimdConvolutionActivationHardSigmoid ,
  SimdConvolutionActivationSwish ,
  SimdConvolutionActivationGelu
}
 
enum  SimdSynetCompatibilityType {
  SimdSynetCompatibilityDefault = 0 ,
  SimdSynetCompatibilityFmaUse = 0 ,
  SimdSynetCompatibilityFmaNoTail = 1 ,
  SimdSynetCompatibilityFmaAvoid = 2 ,
  SimdSynetCompatibilityFmaMask = 3 ,
  SimdSynetCompatibility8iPrecise = 0 ,
  SimdSynetCompatibility8iOverflow = 4 ,
  SimdSynetCompatibility8iNarrowed = 8 ,
  SimdSynetCompatibility8iMask = 12 ,
  SimdSynetCompatibility16bfAvoid = 0 ,
  SimdSynetCompatibility16bfHard = 16 ,
  SimdSynetCompatibility16bfSoft = 32 ,
  SimdSynetCompatibility16bfMask = 48 ,
  SimdSynetCompatibility16fpAvoid = 0 ,
  SimdSynetCompatibility16fpHard = 64 ,
  SimdSynetCompatibility16fpSoft = 128 ,
  SimdSynetCompatibility16fpMask = 192
}
 
enum  SimdSynetEltwiseOperationType {
  SimdSynetEltwiseOperationProduct ,
  SimdSynetEltwiseOperationSum ,
  SimdSynetEltwiseOperationMax ,
  SimdSynetEltwiseOperationMin
}
 
enum  SimdSynetUnaryOperation32fType {
  SimdSynetUnaryOperation32fAbs ,
  SimdSynetUnaryOperation32fCeil ,
  SimdSynetUnaryOperation32fCos ,
  SimdSynetUnaryOperation32fErf ,
  SimdSynetUnaryOperation32fExp ,
  SimdSynetUnaryOperation32fFloor ,
  SimdSynetUnaryOperation32fLog ,
  SimdSynetUnaryOperation32fNeg ,
  SimdSynetUnaryOperation32fNot ,
  SimdSynetUnaryOperation32fRcp ,
  SimdSynetUnaryOperation32fRsqrt ,
  SimdSynetUnaryOperation32fSin ,
  SimdSynetUnaryOperation32fSqrt ,
  SimdSynetUnaryOperation32fTanh ,
  SimdSynetUnaryOperation32fZero
}
 
enum  SimdTensorFormatType {
  SimdTensorFormatUnknown = -1 ,
  SimdTensorFormatNchw ,
  SimdTensorFormatNhwc
}
 
enum  SimdTensorDataType {
  SimdTensorDataUnknown = -1 ,
  SimdTensorData32f ,
  SimdTensorData32i ,
  SimdTensorData8i ,
  SimdTensorData8u ,
  SimdTensorData64i ,
  SimdTensorData64u ,
  SimdTensorDataBool ,
  SimdTensorData16b ,
  SimdTensorData16f
}
 

Detailed Description

Types used in Synet Framework.

Typedef Documentation

◆ SimdConvolutionParameters

Enumeration Type Documentation

◆ SimdConvolutionActivationType

Describes type of activation function. It is used in SimdSynetConvolution32fInit, SimdSynetConvolution8iInit, SimdSynetDeconvolution32fInit, SimdSynetInnerProduct32fInit, SimdSynetMergedConvolution32fInit and SimdSynetMergedConvolution8iInit.

Enumerator
SimdConvolutionActivationIdentity 

Identity (activation function is absent).

SimdConvolutionActivationRelu 

ReLU activation function.

dst[i] = Max(0, src[i]);
SimdConvolutionActivationLeakyRelu 

Leaky ReLU activation function. It has one parameter: slope (params[0]).

dst[i] = src[i] > 0 ? src[i] : slope*src[i];
SimdConvolutionActivationRestrictRange 

The activation function restricts range. It has two parameters: lower (params[0]) and upper (params[1]) bound.

dst[i] = Min(Max(lower, src[i]), upper);
SimdConvolutionActivationPrelu 

Leaky PReLU activation function. It has m parameters: slopes[m] (m = dstC, n = dstH*dstW).

dst[i*n + j] = src[i*n + j] > 0 ? src[i*n + j] : slopes[i]*src[i*n + j];
SimdConvolutionActivationElu 

Leaky ELU activation function. It has one parameter: alpha (params[0]).

dst[i] = src[i] >= 0 ? src[i] : alpha*(Exp(src[i]) - 1);
SimdConvolutionActivationHswish 

H-Swish (https://arxiv.org/pdf/1905.02244.pdf) activation function. It has two parameters: shift (params[0]) and scale (params[1]).

dst[i] = Max(Min(src[i], shift) + shift, 0)*scale*src[i];
SimdConvolutionActivationMish 

Mish (https://arxiv.org/abs/1908.08681) activation function. It has parameter: threshold (params[0]).

dst[i] = src[i] > threshold ? src[i] : src[i] * tanh(log(exp(src[i]) + 1));
SimdConvolutionActivationHardSigmoid 

HardSigmoid (https://pytorch.org/docs/stable/generated/torch.nn.Hardsigmoid.html) activation function. It has two parameters: scale (params[0]) and shift (params[1]).

dst[i] = Max(0, Min(src[i] * scale + shift, 1));
SimdConvolutionActivationSwish 

Swish (https://en.wikipedia.org/wiki/Swish_function) activation function. It has one parameter: slope (params[0]).

dst[i] = src[i]/(1 + Exp(-slope*src[i]));
SimdConvolutionActivationGelu 

GELU (https://en.wikipedia.org/wiki/Activation_function) activation function.

dst[i] = src[i] * (1 + erf(src[i]/sqrt(2))) / 2;

◆ SimdSynetCompatibilityType

Describes Synet calculation compatibility flags. This type used in functions SimdSynetAdd8i, SimdSynetScaleLayerForward, SimdSynetConvert32fTo8u, SimdSynetConvert8uTo32f, SimdSynetInnerProduct8i, SimdSynetScale8iInit, SimdSynetConvolution32fInit, SimdSynetConvolution8iInit, SimdSynetMergedConvolution32fInit, SimdSynetMergedConvolution8iInit.

Enumerator
SimdSynetCompatibilityDefault 

Default compatibility value.

SimdSynetCompatibilityFmaUse 

Fast (No compatibility for fast code).

SimdSynetCompatibilityFmaNoTail 

Not use FMA instructions at row tail.

SimdSynetCompatibilityFmaAvoid 

Not use FMA instructions.

SimdSynetCompatibilityFmaMask 

Bit mask of options of FMA instructions using.

SimdSynetCompatibility8iPrecise 

Using of precise 8-bit integer multiplication (VNNI, or its 16-bit emulation).

SimdSynetCompatibility8iOverflow 

Allow 16-bit integer overflow.

SimdSynetCompatibility8iNarrowed 

Using of narrowed range (signed: [-90 .. 90], unsigned: [0 .. 180]) to awoid 16-bit integer overflow.

SimdSynetCompatibility8iMask 

Bit mask of options of 8-bit integer multiplication.

SimdSynetCompatibility16bfAvoid 

Not use BFloat16 (Brain Floating Point) format.

SimdSynetCompatibility16bfHard 

Use BFloat16 (Brain Floating Point) format only if hardware support exists.

SimdSynetCompatibility16bfSoft 

Use BFloat16 (Brain Floating Point) format always (in mode of software emulation if hardware support does not exist).

SimdSynetCompatibility16bfMask 

Bit mask of options of BFloat16 (Brain Floating Point) format.

SimdSynetCompatibility16fpAvoid 

Not use 16-bit floating point (Half Precision) format.

SimdSynetCompatibility16fpHard 

Use 16-bit floating point (Half Precision) format only if hardware support exists.

SimdSynetCompatibility16fpSoft 

Use 16-bit floating point (Half Precision) format always (in mode of software emulation if hardware support does not exist).

SimdSynetCompatibility16fpMask 

Bit mask of options of 16-bit floating point (Half Precision) format.

◆ SimdSynetEltwiseOperationType

Describes operation type used in function SimdSynetEltwiseLayerForward.

Enumerator
SimdSynetEltwiseOperationProduct 

Product.

SimdSynetEltwiseOperationSum 

Weighted sum.

SimdSynetEltwiseOperationMax 

Maximum.

SimdSynetEltwiseOperationMin 

Minimum.

◆ SimdSynetUnaryOperation32fType

Describes operation type used in function SimdSynetUnaryOperation32f.

Enumerator
SimdSynetUnaryOperation32fAbs 

Gets absolute value for every point of input tensor.

SimdSynetUnaryOperation32fCeil 

Gets ceil for every point of input tensor.

SimdSynetUnaryOperation32fCos 

Gets erf (error function) for every point of input tensor.

SimdSynetUnaryOperation32fErf 

Gets cosine function for every point of input tensor.

SimdSynetUnaryOperation32fExp 

Gets exponent for every point of input tensor.

SimdSynetUnaryOperation32fFloor 

Gets floor for every point of input tensor.

SimdSynetUnaryOperation32fLog 

Gets logarithm for every point of input tensor.

SimdSynetUnaryOperation32fNeg 

Gets negative for every point of input tensor.

SimdSynetUnaryOperation32fNot 

Gets reciprocal for every point of input tensor.

SimdSynetUnaryOperation32fRcp 

Performs logical NOT operation for every point of input tensor.

SimdSynetUnaryOperation32fRsqrt 

Gets reverse square root for every point of input tensor.

SimdSynetUnaryOperation32fSin 

Gets sine function for every point of input tensor.

SimdSynetUnaryOperation32fSqrt 

Gets square root for every point of input tensor.

SimdSynetUnaryOperation32fTanh 

Gets hyperbolic tangent for every point of input tensor.

SimdSynetUnaryOperation32fZero 

Gets zero value for every point of input tensor.

◆ SimdTensorFormatType

Describes Synet Framework 4D-tensor format type.

Enumerator
SimdTensorFormatUnknown 

Unknown tensor format.

SimdTensorFormatNchw 

NCHW (N - batch, C - channels, H - height, W - width) 4D-tensor format of (input/output) image.

SimdTensorFormatNhwc 

NHWC (N - batch, H - height, W - width, C - channels) 4D-tensor format of (input/output) image.

◆ SimdTensorDataType

Describes Synet Framework tensor data type.

Enumerator
SimdTensorDataUnknown 

Unknown tensor data type.

SimdTensorData32f 

32-bit floating point (Single Precision).

SimdTensorData32i 

32-bit signed integer.

SimdTensorData8i 

8-bit signed integer.

SimdTensorData8u 

8-bit unsigned integer.

SimdTensorData64i 

64-bit signed integer.

SimdTensorData64u 

64-bit unsigned integer.

SimdTensorDataBool 

8-bit Boolean.

SimdTensorData16b 

16-bit BFloat16 (Brain Floating Point).

SimdTensorData16f 

16-bit floating point (Half Precision).