doc: doesn't -> does not

This commit is contained in:
Roman Dubtsov
2020-06-16 16:38:09 -07:00
parent 3c0de88e4f
commit bc4404427c
19 changed files with 29 additions and 29 deletions
@@ -312,7 +312,7 @@ So we came up with another solution using zero-padding. The idea is to round the
channels up to make them multiples of the block size and pad the resulting tail
with zeros (in the example above, `24 = div_up(17, 8) * 8`). Then primitives
like convolutions might work with a rounded-up number of channels instead of
the original ones and compute the correct result (adding zeros doesn't change
the original ones and compute the correct result (adding zeros does not change
the result).
That enables supporting an arbitrary number of channels with almost no changes
+2 -2
View File
@@ -143,7 +143,7 @@ represented by the u8 data type, the non-symmetric quantization is assumed.
Namely, the formula is:
- \f$data_{f32}[:] = \frac{1}{scale}(data_{u8}[:] - shift)\f$.
But similarly to the other primitives, the LSTM primitive doesn't handle
But similarly to the other primitives, the LSTM primitive does not handle
potential overflows automatically. It is up to the user to specify the
appropriate quantization parameters (see
dnnl::primitive_attr::set_rnn_data_qparams() and
@@ -264,7 +264,7 @@ the implementations are given below:
2. **s8/s8 GEMM** (dnnl_gemm_s8s8s32()) does nothing to handle the overflow
issue. It is up to the user to prepare the data so that the
overflow/saturation doesn't occur. For instance, the user can specify
overflow/saturation does not occur. For instance, the user can specify
s7 `[-64, 63]` instead of s8 for the second input.
@warning
+1 -1
View File
@@ -12,7 +12,7 @@ primitive implementations, etc. It can significantly reduce primitive creation
overhead, especially when an application or a framework creates primitives
for every instance of inference or iteration of training process.
The primitive cache is global hence a user doesn't have to maintain any
The primitive cache is global hence a user does not have to maintain any
persistent oneDNN resources to benefit from the primitive cache.
## Managing Memory Consumption
+2 -2
View File
@@ -283,7 +283,7 @@ In Intel MKL-DNN v1.0, constructing a memory object using special value
`MKLDNN_MEMORY_ALLOCATE` for a handle results in the buffer being allocated by
the library. This makes the behavior of the C API memory object constructor
aligned with its C++ API `mkldnn::memory` counterpart. Note that the C++ API
memory object class still has an extra constructor that doesn't take a handle
memory object class still has an extra constructor that does not take a handle
at all, and asks the library to allocate the buffer (that is, the same behavior
as calling with the handle equal to `MKLDNN_MEMORY_ALLOCATE`).
@@ -346,7 +346,7 @@ These changes bring new data types and functions, such as:
// create a memory
// native_handle can:
// - point to the user allocated memory, i.e. valid handle. In this case the
// library doesn't own allocated memory.
// library does not own allocated memory.
// - be MKLDNN_NATIVE_HANDLE_ALLOCATE to ask the library to allocate and
// attach memory. In this case the library owns allocated memory.
// - be MKLDNN_NATIVE_HANDLE_NONE to create mkldnn_memory w/o attached memory.
+4 -4
View File
@@ -16,9 +16,9 @@ standard @ref dev_guide_conventions):
where \f$c = C_1 + .. + C_{i-1} {}_{} + c'\f$.
The concat primitive doesn't have a notion of forward or backward propagations.
The backward propagation for the concatenation operation is simply an identity
operation.
The concat primitive does not have a notion of forward or backward
propagations. The backward propagation for the concatenation operation is
simply an identity operation.
## Execution Arguments
When executed, the inputs and outputs should be mapped to an execution argument index as specified by the following table.
@@ -55,7 +55,7 @@ meaning associated with any logical dimensions.
### Post-ops and Attributes
The concat primitive doesn't support any post-ops or attributes.
The concat primitive does not support any post-ops or attributes.
## Implementation Limitations
+1 -1
View File
@@ -220,7 +220,7 @@ if the scales are not known at the primitive descriptor creation stage.
In this case, the user must provide the scales as an additional input memory
object with argument `DNNL_ARG_ATTR_OUTPUT_SCALES` during the execution stage.
@note The library doesn't prevent using post-ops in training, but note that
@note The library does not prevent using post-ops in training, but note that
not all post-ops are feasible for training usage. For instance, using ReLU
with non-zero negative slope parameter as a post-op would not produce an
additional output `workspace` that is required to compute backward propagation
+2 -2
View File
@@ -126,7 +126,7 @@ meaning associated with any logical dimensions.
### Post-ops and Attributes
The eltwise primitive doesn't support any post-ops or attributes.
The eltwise primitive does not support any post-ops or attributes.
@anchor dg_eltwise_impl_limits
## Implementation Limitations
@@ -151,7 +151,7 @@ The eltwise primitive doesn't support any post-ops or attributes.
- Moreover, such operations can be fused as a
[post-op](@ref dev_guide_attributes) with the previous operation if that
operation doesn't require its \dst to compute the backward
operation does not require its \dst to compute the backward
propagation (e.g., if the convolution operation satisfies these
conditions).
+1 -1
View File
@@ -76,7 +76,7 @@ argument index as specified by the following table.
### Post-ops and Attributes
The logsoftmax primitive doesn't support any post-ops or attributes.
The logsoftmax primitive does not support any post-ops or attributes.
### Data Type Support
+1 -1
View File
@@ -113,7 +113,7 @@ of any preceding compute-intensive primitive.
### Post-ops and Attributes
The LRN primitive doesn't support any post-ops or attributes.
The LRN primitive does not support any post-ops or attributes.
@anchor dg_lrn_impl_limits
+1 -1
View File
@@ -134,7 +134,7 @@ argument with index set to
1. Check @ref dev_guide_data_types.
2. The CPU engine doesn't support `u8` data type for weights.
2. The CPU engine does not support `u8` data type for weights.
## Performance Tips
+1 -1
View File
@@ -47,7 +47,7 @@ Average pooling supports two algorithms:
#### Difference Between Forward Training and Forward Inference
- Max pooling requires a `workspace` for the #dnnl_forward_training propagation
kind, and doesn't require it for #dnnl_forward_inference (see details below).
kind, and does not require it for #dnnl_forward_inference (see details below).
### Backward
+1 -1
View File
@@ -120,7 +120,7 @@ source and destination memory objects:
### Post-ops and Attributes
The resampling primitive doesn't support any post-ops or attributes.
The resampling primitive does not support any post-ops or attributes.
## Implementation Limitations
+1 -1
View File
@@ -106,7 +106,7 @@ of any preceding compute-intensive primitive.
### Post-ops and Attributes
The shuffle primitive doesn't support any post-ops or attributes.
The shuffle primitive does not support any post-ops or attributes.
@anchor dg_shuffle_impl_limits
+1 -1
View File
@@ -67,7 +67,7 @@ argument index as specified by the following table.
### Post-ops and Attributes
The softmax primitive doesn't support any post-ops or attributes.
The softmax primitive does not support any post-ops or attributes.
### Data Type Support
+2 -2
View File
@@ -15,7 +15,7 @@ The sum primitive sums \f$N\f$ tensors (the variable names follow the standard
\src_i(\overline{x})
\f]
The sum primitive doesn't have a notion of forward or backward propagations.
The sum primitive does not have a notion of forward or backward propagations.
The backward propagation for the sum operation is simply an identity operation.
## Execution Arguments
@@ -40,7 +40,7 @@ argument index as specified by the following table.
### Post-ops and Attributes
The sum primitive doesn't support any post-ops or attributes.
The sum primitive does not support any post-ops or attributes.
### Data Types Support
+2 -2
View File
@@ -53,7 +53,7 @@ dnnl_primitive_attr_set_SOMETHING_ELSE(attr, other_params);
dnnl_primitive_desc_t op_pd; // operation primitive descriptor
dnnl_primitive_desc_create(&op_pd, &op_d, attr, engine, hint_fwd_pd);
// changing attr object here doesn't have any effect on op_pd
// changing attr object here does not have any effect on op_pd
// once attr is no more used we can immediately destroy it
dnnl_primitive_attr_destroy(attr);
@@ -96,7 +96,7 @@ create a primitive descriptor with the attributes they set, it might happen
that there is no primitive implementation that supports such a configuration.
In this case, the library will return #dnnl_unimplemented in the case of the C
API or throw a corresponding @ref dnnl::error exception in the case of the C++
API. Unfortunately, the library doesn't currently provide any hints about what
API. Unfortunately, the library does not currently provide any hints about what
exactly is going wrong in this case. The corresponding section of the
documentation simply documents the primitives' capabilities.
+1 -1
View File
@@ -50,7 +50,7 @@ primitive::primitive_desc op_pd(params, attr); // create a pd with the attr
@warning
Different primitives may have different post-ops support. Moreover, the
support might also depend on the actual implementation of a primitive. For
instance, the library generally doesn't support post-ops for reference
instance, the library generally does not support post-ops for reference
primitives (which are typically very slow, so there is no point in doing
the actual fusion). Robust code should handle errors accordingly. See the
[section on attributes error handling](@ref dev_guide_attributes_error_handling).
@@ -45,7 +45,7 @@ For the rest of this guide, we will assume that \f$0_{x\_int8} = 0\f$.
Depending on the architecture, the behavior of int8 computations might slightly
vary. For more details, refer to @ref dev_guide_int8_computations.
This guide doesn't cover how the appropriate scaling factor can be found.
This guide does not cover how the appropriate scaling factor can be found.
Refer to the materials in the [Introduction](@ref dgaq_intro).
### Example: Convolution Quantization Workflow
@@ -80,7 +80,7 @@ where
- \f$downconvert\_f32\_to\_s8()\f$ converts an `f32` value to `s8` with
potential saturation if the values are out of the range of the INT8 data type.
Note that in order to perform the operation, one doesn't need to know the
Note that in order to perform the operation, one does not need to know the
exact scaling factors for all the tensors; it is enough to know only the
\f$output\_scale\f$. The library utilizes this fact: a user needs to provide
only this one extra parameter to the convolution primitive (see the [Output
@@ -140,7 +140,7 @@ where
## API
The library API to support for INT8 was designed for the model described above.
However, it doesn't require users to follow exactly this model. As long as
However, it does not require users to follow exactly this model. As long as
users can fit their model into the given functionality everything should work
fine. Having this in mind we tried to design a minimal and simple yet powerful
enough quantization API.
@@ -136,7 +136,7 @@ dnnl::primitive::primitive_desc op_pd(op_d, attr, engine);
// Query the scratchpad memory descriptor
dnnl::memory::desc scratchpad_md = op_pd.scratchpad_desc();
// Note, that a primitive doesn't consume memory in this configuration:
// Note, that a primitive does not consume memory in this configuration:
assert(op_pd.query_s64(dnnl::query::memory_consumption_s64) == 0);
// Create a primitive