-
Notifications
You must be signed in to change notification settings - Fork 336
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
vector.shape_cast operation fails on s390x #3068
Comments
Commands used to generate failure: Can generate failures in debug and release mode. I am testing on a z16 LoZ s390x environment.
When Dockerfile I believe defaults to -03.
Failure:
Sucess:
|
Some other failures attempting to debug with
Output:
|
@AlexandreEichenberger @tungld, please let me know if you can continue debugging this information or if you have any other questions. Are we at a point where we can go ahead with #3053 and try to resolve this ASAP? |
@christopherlmunoz will look into this |
@christopherlmunoz thanks for the instructions, I was able to reproduce the error with the Debug compiler, after uncommenting
It needs both flags to generate SIMD code, so it make sense. Let me now dive in |
FYI, this can be debugged also under x86/arm,... as we can use onnx-mlir with the target I was able to reproduce that error on my Mac and solve it there, in case your environment works better on your laptop. Also, if the fix that I suggested works (replacing the code in the if by the else): #if 0
vector::populateVectorToVectorCanonicalizationPatterns(patterns);
vector::populateVectorBroadcastLoweringPatterns(patterns);
vector::populateVectorContractLoweringPatterns(
patterns, vector::VectorTransformsOptions());
vector::populateVectorTransposeLoweringPatterns(
patterns, vector::VectorTransformsOptions());
vector::populateVectorShapeCastLoweringPatterns(patterns);
#else
vector::populateVectorToVectorCanonicalizationPatterns(patterns);
vector::populateVectorBitCastLoweringPatterns(patterns);
vector::populateVectorBroadcastLoweringPatterns(patterns);
vector::populateVectorContractLoweringPatterns(
patterns, vector::VectorTransformsOptions());
vector::populateVectorMaskOpLoweringPatterns(patterns);
vector::populateVectorShapeCastLoweringPatterns(patterns);
vector::populateVectorInterleaveLoweringPatterns(patterns);
vector::populateVectorTransposeLoweringPatterns(
patterns, vector::VectorTransformsOptions());
// Vector transfer ops with rank > 1 should be lowered with VectorToSCF.
vector::populateVectorTransferLoweringPatterns(
patterns, /*maxTransferRank=*/1);
vector::populateVectorMaskMaterializationPatterns(
patterns, /*force32BitVectorIndices*/false);
vector::populateVectorInsertExtractStridedSliceTransforms(patterns);
vector::populateVectorStepLoweringPatterns(patterns);
vector::populateVectorRankReducingFMAPattern(patterns);
#endif This is something that we see from time to time when upgrading LLVM. First step is to see if they deprecated the op that does not lower. If it's still there, it's probable that they moved the patterns to a new "populate". Fortunately, there are other places in |
8 onnx-mlir backend inferencing tests fail blocking #3053. I am commenting out the failing tests to move along with LLVM & StableHLO update. I will continue the investigation here.
Example of failure.
Failing tests:
test_dynamicquantizelinear_max_adjusted_expanded
test_dynamicquantizelinear_max_adjusted
test_dynamicquantizelinear_expanded
test_quantizelinear
test_round
test_dynamicquantizelinear
test_dynamicquantizelinear_min_adjusted
test_dynamicquantizelinear_min_adjusted_expanded
The text was updated successfully, but these errors were encountered: