Get desktop application:
View/edit binary Protocol Buffers messages
Describes a kind of non-linearity (threshold-like mathematical function).
Used in: , , ,
Rectified linear activation: f(x) = x < 0 ? 0 : x
Rectified linear activation; where upper maximum is 6.0.
Rectified linear activation; where upper maximum specified by BatchDescriptor::value_max().
Like ReluX; but passes all values in the range [-X,X].
Exponential linear activation: f(x) = x < 0 ? e^x - 1 : x
Leaky Rectified linear activation: f(x) = x < 0 ? alpha * x : x
Gaussian Error linear unit activation: x * P(X <= x) = 0.5 * x * (1 + erf(x / sqrt(2))), where P(X) ~ N(0, 1).
Proto definition of AlgorithmConfig in "dnn.h". TODO(ruochengw): After cl/380702564 is submitted, add support for algorithm configs with cuDNN Frontend APIs.
Used in:
Use oneof to emulate optional semantics in proto2 since older version of proto3 cannot distinguish "unset field" and "default field".
Generic algorithm representation.
Used in: , , ,
Legacy algorithm enums and cuDNN Frontend engine numbers need to coexist in the same proto medium-term, until we can be confident of no longer needing the legacy cuDNN convolution API. Once the migration is complete, we can stop producing legacy algorithm enums and remove this field.
For ROCm only, it's impossible to re-query the required workspace size after running the algorithm search, so we must store the workspace size along with the choice of algorithm. For consistency and convenience, cuDNN uses this field in the same way, even though it would be possible to re-query the workspace size from cuDNN at each use. Since this message is persisted in files, we need to be able to distinguish 0 workspace size from unknown workspace size in an old message, so this is a message field.
Used in:
The GPU may operate 4x4 matrix FMA. See cuDNN's documentation for CUDNN_TENSOR_OP_MATH.
Convolution-specific parameters.
Used in:
The "accumulator" type. For example, use F32 as an accumulator for F16 convolutions. See cuDNN's cudnnConvolutionMode_t.
See cuDNN's group count.
Tensorflow node name, same as in NodeDef, for debugging purposes.
Used in:
Describe the math definition for the conv op. The popular behavior is actually called cross-correlation in math, despite the operation is often referred as convolution. See cuDNN cudnnConvolutionMode_t.
Used in:
Describes how a convolution input or output layer's data is formatted.
Used in:
Naming convention: Y <-> row or height X <-> column or width Batch <-> batch, or N Depth <-> feature, or channel TODO(timshen): turn them into cuDNN names, e.g. kNCHW. Note: In cudnn, kBatchDepthYX4 and kBatchDepthYX32 are the same layout (namely, NCHW_VECT_C). It differentiates between these two by using a different data type (int8x4 vs int8x32). In StreamExecutor we use different layouts for these, because we don't usually pass an explicit data type to StreamExecutor functions.
cuDNN's NHWC layout
cuDNN's NCHW layout
cuDNN's NCHW_VECT_C with 4-elem vectors (e.g. int8x4)
cuDNN's NCHW_VECT_C with 32-elem vects (e.g. int8x32)
Specifies the data type used by an operation.
Used in: , ,
Describes how a convolution filter is laid out in the memory.
Used in:
Naming convention: Y <-> row or height X <-> column or width Output <-> output feature, or N Input <-> input feature, or N TODO(timshen): turn them into cuDNN names, e.g. kNCHW.
cuDNN's NCHW layout
cuDNN's NHWC layout
cuDNN's NCHW_VECT_C layout with 4-elem vectors
cuDNN's NCHW_VECT_C layout with 32-elem vectors
Generic tensor representation.
Used in: