|
My Project
|
Typedefs | |
| using | UnaryPointwiseOpBuilder = function_ref< Value(ValueHandle)> |
| Unary pointwise operation (with broadcast) entry point. More... | |
| using | BinaryPointwiseOpBuilder = function_ref< Value(ValueHandle, ValueHandle)> |
| Binary pointwise operation (with broadcast) entry point. More... | |
| using mlir::edsc::ops::BinaryPointwiseOpBuilder = typedef function_ref<Value(ValueHandle, ValueHandle)> |
Binary pointwise operation (with broadcast) entry point.
| using mlir::edsc::ops::UnaryPointwiseOpBuilder = typedef function_ref<Value(ValueHandle)> |
Unary pointwise operation (with broadcast) entry point.
TODO(ntv): In the future we should tie these implementations to something in Tablegen that generates the proper interfaces and the proper sugared named ops. Build a linalg.pointwise, under the current ScopedContext, at the current insert point, that computes:
This is a very generic entry point that can be configured in many ways to build a perfect loop nest of parallel loops with arbitrarily complex innermost loop code and whatever (explicit) broadcast semantics.
This can be used with both out-of-place and in-place semantics. The client is responsible for ensuring the region operations are compatible with in-place semantics and parallelism.
| Operation * mlir::edsc::ops::linalg_conv_nhwc | ( | ValueHandle | vI, |
| ValueHandle | vW, | ||
| ValueHandle | vO, | ||
| ArrayRef< int > | strides = {}, |
||
| ArrayRef< int > | dilations = {} |
||
| ) |
Build a linalg.generic, under the current ScopedContext, at the current insert point, that computes:
If dilations or strides are left empty, the default value of 1 is used along each relevant dimension.
For now ... must be empty (i.e. only 2-D convolutions are supported).
| Operation* mlir::edsc::ops::linalg_conv_nhwc | ( | Container | values, |
| ArrayRef< int > | strides = {}, |
||
| ArrayRef< int > | dilations = {} |
||
| ) |
| Operation * mlir::edsc::ops::linalg_dilated_conv_nhwc | ( | ValueHandle | vI, |
| ValueHandle | vW, | ||
| ValueHandle | vO, | ||
| int | depth_multiplier = 1, |
||
| ArrayRef< int > | strides = {}, |
||
| ArrayRef< int > | dilations = {} |
||
| ) |
Build a linalg.generic, under the current ScopedContext, at the current insert point, that computes:
If dilations or strides are left empty, the default value of 1 is used along each relevant dimension.
For now ... must be empty (i.e. only 2-D convolutions are supported).
| Operation* mlir::edsc::ops::linalg_dilated_conv_nhwc | ( | Container | values, |
| int | depth_multiplier, | ||
| ArrayRef< int > | strides = {}, |
||
| ArrayRef< int > | dilations = {} |
||
| ) |
| Operation * mlir::edsc::ops::linalg_matmul | ( | ValueHandle | vA, |
| ValueHandle | vB, | ||
| ValueHandle | vC | ||
| ) |
Build a linalg.generic, under the current ScopedContext, at the current insert point, that computes:
| Operation* mlir::edsc::ops::linalg_matmul | ( | Container | values | ) |
| Operation * mlir::edsc::ops::linalg_pointwise | ( | UnaryPointwiseOpBuilder | unaryOp, |
| StructuredIndexed | I, | ||
| StructuredIndexed | O | ||
| ) |
| Operation * mlir::edsc::ops::linalg_pointwise | ( | BinaryPointwiseOpBuilder | binaryOp, |
| StructuredIndexed | I1, | ||
| StructuredIndexed | I2, | ||
| StructuredIndexed | O | ||
| ) |
Binary pointwise operation (with broadcast) entry point.
| Operation * mlir::edsc::ops::linalg_pointwise_add | ( | StructuredIndexed | I1, |
| StructuredIndexed | I2, | ||
| StructuredIndexed | O | ||
| ) |
Build a linalg.pointwise with all parallel iterators and a region that computes O = I1 + I2. The client is responsible for specifying the proper indexings when creating the StructuredIndexed.
| Operation * mlir::edsc::ops::linalg_pointwise_max | ( | StructuredIndexed | I1, |
| StructuredIndexed | I2, | ||
| StructuredIndexed | O | ||
| ) |
Build a linalg.pointwise with all parallel iterators and a region that computes O = max(I!, I2). The client is responsible for specifying the proper indexings when creating the StructuredIndexed.
| Operation * mlir::edsc::ops::linalg_pointwise_tanh | ( | StructuredIndexed | I, |
| StructuredIndexed | O | ||
| ) |
Build a linalg.pointwise with all parallel iterators and a region that computes O = tanh(I). The client is responsible for specifying the proper indexings when creating the StructuredIndexed.
| void mlir::edsc::ops::macRegionBuilder | ( | ArrayRef< BlockArgument > | args | ) |
Build the body of a region to compute a multiply-accumulate, under the current ScopedContext, at the current insert point.
1.8.13