Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NNPA] Use F16 as element type for zTensor #2611

Merged
merged 3 commits into from
Nov 9, 2023

Conversation

tungld
Copy link
Collaborator

@tungld tungld commented Nov 9, 2023

Currently F32 is used in zTensor, e.g. tensor<1x28x28x1xf32, #zhigh.layout<{dataLayout = "NHWC"}>> which is not good because the element type of a zTensor is DLFloat16. Since MLIR does not support DLFLOAT16, this patch will use F16 as element type for zTensors, e.g. tensor<1x28x28x1xf16, #zhigh.layout<{dataLayout = "NHWC"}>>

Several type issues were exposed by using F16 and also fixed in this path.

This is the first step toward implementing stickify/unstickify in onnx-mlir.

@@ -197,7 +197,7 @@ Value getLSTMGRUGetYc(
return noneValue;

zhigh::ZHighUnstickOp unstickOp =
rewriter.create<zhigh::ZHighUnstickOp>(loc, val.getType(), val);
rewriter.create<zhigh::ZHighUnstickOp>(loc, val);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By using f16, stickifified and unstickified tensors have different element types.

Signed-off-by: Tung D. Le <[email protected]>
Copy link
Collaborator

@AlexandreEichenberger AlexandreEichenberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tungld tungld merged commit 1972bfb into onnx:main Nov 9, 2023
5 checks passed
@jenkins-droid
Copy link
Collaborator

Jenkins Linux amd64 Build #13307 [push] [NNPA] Use F16 as elemen... started at 09:45

@jenkins-droid
Copy link
Collaborator

Jenkins Linux s390x Build #13332 [push] [NNPA] Use F16 as elemen... started at 10:45

@jenkins-droid
Copy link
Collaborator

Jenkins Linux ppc64le Build #12325 [push] [NNPA] Use F16 as elemen... started at 10:53

@jenkins-droid
Copy link
Collaborator

Jenkins Linux amd64 Build #13307 [push] [NNPA] Use F16 as elemen... failed after 1 hr 15 min

@jenkins-droid
Copy link
Collaborator

Jenkins Linux ppc64le Build #12325 [push] [NNPA] Use F16 as elemen... passed after 1 hr 56 min

@jenkins-droid
Copy link
Collaborator

Jenkins Linux s390x Build #13332 [push] [NNPA] Use F16 as elemen... passed after 1 hr 58 min

cjvolzka pushed a commit to cjvolzka/onnx-mlir that referenced this pull request Nov 15, 2023
* detect LayerNorm in presence of reciprocal and div of 1 (onnx#2609)

Signed-off-by: Alexandre Eichenberger <[email protected]>

* [NNPA] Use F16 as element type for zTensor (onnx#2611)

* Use f16 as element type for zTensor

Signed-off-by: Tung D. Le <[email protected]>

---------

Signed-off-by: Tung D. Le <[email protected]>

* Layernorm: convert instance norm and group norm to layer norm. (onnx#2595)

Signed-off-by: Alexandre Eichenberger <[email protected]>
Co-authored-by: Tung D. Le <[email protected]>

* Parse and set --mcpu in onnx-mlir-opt command (onnx#2614)

Signed-off-by: Tung D. Le <[email protected]>

* Update sqrt.mlir

* Update sqrt.mlir

* Update invsqrt.mlir

* Update invsqrt.mlir

* Update invsqrt.mlir

* Update invsqrt.mlir

Co-authored-by: Alexandre Eichenberger <[email protected]>
Co-authored-by: Tung D. Le <[email protected]>
Co-authored-by: C-P2PN897 <[email protected]>
cjvolzka added a commit to cjvolzka/onnx-mlir that referenced this pull request Nov 15, 2023
* detect LayerNorm in presence of reciprocal and div of 1 (onnx#2609)

Signed-off-by: Alexandre Eichenberger <[email protected]>

* [NNPA] Use F16 as element type for zTensor (onnx#2611)

* Use f16 as element type for zTensor

Signed-off-by: Tung D. Le <[email protected]>

---------

Signed-off-by: Tung D. Le <[email protected]>

* Layernorm: convert instance norm and group norm to layer norm. (onnx#2595)

Signed-off-by: Alexandre Eichenberger <[email protected]>
Co-authored-by: Tung D. Le <[email protected]>

* Parse and set --mcpu in onnx-mlir-opt command (onnx#2614)

Signed-off-by: Tung D. Le <[email protected]>

* Import dim_param for model inputs and outputs (onnx#2616)

* Import dim_param for model inputs and outputs
* use argument attributes

Signed-off-by: Tung D. Le <[email protected]>

---------

Signed-off-by: Tung D. Le <[email protected]>
Co-authored-by: Alexandre Eichenberger <[email protected]>

* [DialectBuilder] add builder funcrions for ONNXSumOp and ONNXConvOp (onnx#2572)

The DialectBuilder class seems to be missing the function create the
ONNXSumOp and ONNXConOp nodes and check their shape.  This patch adds
the necessary functions.

Signed-off-by: Ashay Rane <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Co-authored-by: Alexandre Eichenberger <[email protected]>

* [StableHLO] Lowers PadOp (constant mode) & GatherElements Op to StableHLO (onnx#2602)

* [Stablehlo] Pad constant mode & GatherElements to Stablehlo

Signed-off-by: chongsong.chen <[email protected]>
Signed-off-by: Yan Xu <[email protected]>
Co-authored-by: chongsong.chen <[email protected]>
Co-authored-by: Alexandre Eichenberger <[email protected]>

* [build] Add cmake option to enable/disable Java components build (onnx#2613)

* Add ONNX_MLIR_ENABLE_JAVA cmake option (default TRUE)

Signed-off-by: Boyana Norris <[email protected]>
Co-authored-by: Alexandre Eichenberger <[email protected]>

Co-authored-by: Alexandre Eichenberger <[email protected]>
Co-authored-by: Tung D. Le <[email protected]>
Co-authored-by: Ashay Rane <[email protected]>
Co-authored-by: Yan Xu <[email protected]>
Co-authored-by: chongsong.chen <[email protected]>
Co-authored-by: Boyana Norris <[email protected]>
cjvolzka added a commit to cjvolzka/onnx-mlir that referenced this pull request Nov 15, 2023
* 'main' of github.ibm.com:zosdev/onnx-mlir:
  Use dim_params in dynamic dimension analysis (onnx#2620)
  Update rapidcheck to include the fix for missing <cstdint> include (onnx#2623)
  Initial changes for llvm uplift (onnx#2568)
  [build] Add cmake option to enable/disable Java components build (onnx#2613)
  [StableHLO] Lowers PadOp (constant mode) & GatherElements Op to StableHLO (onnx#2602)
  [DialectBuilder] add builder funcrions for ONNXSumOp and ONNXConvOp (onnx#2572)
  Import dim_param for model inputs and outputs (onnx#2616)
  Parse and set --mcpu in onnx-mlir-opt command (onnx#2614)
  Layernorm: convert instance norm and group norm to layer norm. (onnx#2595)
  [NNPA] Use F16 as element type for zTensor (onnx#2611)
  detect LayerNorm in presence of reciprocal and div of 1 (onnx#2609)

# Conflicts:
#	test/mlir/conversion/onnx_to_krnl/NN/Normalization_O3_SIMD_canonicalize.mlir
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants