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
}
 
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
}
 
enum  SimdSynetEltwiseOperationType {
  SimdSynetEltwiseOperationProduct ,
  SimdSynetEltwiseOperationSum ,
  SimdSynetEltwiseOperationMax ,
  SimdSynetEltwiseOperationMin
}
 
enum  SimdSynetUnaryOperation32fType {
  SimdSynetUnaryOperation32fAbs ,
  SimdSynetUnaryOperation32fExp ,
  SimdSynetUnaryOperation32fLog ,
  SimdSynetUnaryOperation32fNeg ,
  SimdSynetUnaryOperation32fRsqrt ,
  SimdSynetUnaryOperation32fSqrt ,
  SimdSynetUnaryOperation32fTanh ,
  SimdSynetUnaryOperation32fZero
}
 
enum  SimdTensorFormatType {
  SimdTensorFormatUnknown = -1 ,
  SimdTensorFormatNchw ,
  SimdTensorFormatNhwc ,
  SimdTensorFormatNchw4c ,
  SimdTensorFormatNchw8c ,
  SimdTensorFormatNchw16c ,
  SimdTensorFormatNchwXc ,
  SimdTensorFormatOiyx ,
  SimdTensorFormatYxio ,
  SimdTensorFormatOyxi4o ,
  SimdTensorFormatOyxi8o ,
  SimdTensorFormatOyxi16o ,
  SimdTensorFormatOyxiXo
}
 
enum  SimdTensorDataType {
  SimdTensorDataUnknown = -1 ,
  SimdTensorData32f ,
  SimdTensorData32i ,
  SimdTensorData8i ,
  SimdTensorData8u ,
  SimdTensorData16b
}
 

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]));

◆ 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.

◆ 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 SimdSynetUnaryOperation32fLayerForward.

Enumerator
SimdSynetUnaryOperation32fAbs 

Gets absolute value for every point of input tensor.

SimdSynetUnaryOperation32fExp 

Gets exponent for every point of input tensor.

SimdSynetUnaryOperation32fLog 

Gets logarithm for every point of input tensor.

SimdSynetUnaryOperation32fNeg 

Gets negative for every point of input tensor.

SimdSynetUnaryOperation32fRsqrt 

Gets reverse square root 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.

SimdTensorFormatNchw4c 

NCHW4c (N - batch, C - (channels + 3) / 4, H - height, W - width, 4c - channels gropped by 4) special 5D-tensor format of (input/output) image optimized for SSE and NEON.

SimdTensorFormatNchw8c 

NCHW8c (N - batch, C - (channels + 7) / 8, H - height, W - width, 8c - channels gropped by 8) special 5D-tensor format of (input/output) image optimized for AVX and AVX2.

SimdTensorFormatNchw16c 

NCHW16c (N - batch, C - (channels + 15) / 16, H - height, W - width, 16c - channels gropped by 16) special 5D-tensor format of (input/output) image optimized for AVX-512.

SimdTensorFormatNchwXc 

Unspecified hardware optimized 5D-tensor format of (input/output) image. Specific format (SimdTensorFormatNchw4c, SimdTensorFormatNchw8c or SimdTensorFormatNchw16c) is determinated by function SimdSynetSpecifyTensorFormat.

SimdTensorFormatOiyx 

OIYX (O - output channels, I - input channels, Y - kernel height, X - kernel width) 4D-tensor format of 2D-convolution filter.

SimdTensorFormatYxio 

YXIO (Y - kernel height, X - kernel width, I - input channels, O - output channels) 4D-tensor format of 2D-convolution filter.

SimdTensorFormatOyxi4o 

OYXI4o (O - (output channels + 3)/4, Y - kernel height, X - kernel width, I - input channels, 4o - output channels gropped by 4) special 5D-tensor format of 2D-convolution filter optimized for SSE and NEON.

SimdTensorFormatOyxi8o 

OYXI8o (O - (output channels + 7)/8, Y - kernel height, X - kernel width, I - input channels, 8o - output channels gropped by 8) special 5D-tensor format of 2D-convolution filter optimized for AVX and AVX2.

SimdTensorFormatOyxi16o 

OYXI16o (O - (output channels + 15)/16, Y - kernel height, X - kernel width, I - input channels, 16o - output channels gropped by 16) special 5D-tensor format of 2D-convolution filter optimized for AVX-512.

SimdTensorFormatOyxiXo 

Unspecified hardware optimized 5D-tensor format of 2D-convolution filter. Specific format (SimdTensorFormatOyxi4o, SimdTensorFormatOyxi8o or SimdTensorFormatOyxi16o) is determinated by function SimdSynetSpecifyTensorFormat.

◆ SimdTensorDataType

Describes Synet Framework tensor data type.

Enumerator
SimdTensorDataUnknown 

Unknown tensor data type.

SimdTensorData32f 

32-bit float point.

SimdTensorData32i 

32-bit signed integer.

SimdTensorData8i 

8-bit signed integer.

SimdTensorData8u 

8-bit unsigned integer.

SimdTensorData16b 

16-bit BFloat16 (Brain Floating Point).