Skip to content

Commit

Permalink
Adding multi-operation quantization tests (openxla#2413)
Browse files Browse the repository at this point in the history
Adds multi-operation quantized test cases

There aren't many multi-operation testdata files in
https://github.com/openxla/stablehlo/tree/main/stablehlo/testdata
satisfying
1. The file should cover ops from the list `cbrt, ceil, cosine, divide,
exponential, exponential_minus_one, floor, log, log_plus_one, logistic,
multiply, negate, sign, sine, sqrt, subtract, tanh,`
2. The file should test only `f32` type


Going forward will will be expanding on the op/type coverage.
  • Loading branch information
sdasgup3 authored Jul 2, 2024
1 parent 00da85d commit 5f52ca3
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// RUN: stablehlo-translate --interpret -split-input-file %s

module attributes {jax.uses_shape_polymorphism = true} {
func.func @main() -> tensor<i1> {
%cst = stablehlo.constant dense<"0x59A173BF75FDAFBFBE38563FD0A237C09F52A1C05D43B1BFD3F69B3F7741ED3F363F944099B99DBEE25377BE57E82FBFD5F425C01EF902C08F94953F48D2AEBF389D713D8AAE10404A3A1740C815393F428ADBBEBB48824017B4D13F6314494067CAE1C0A9AEDF3F1520A1C0835BC5BFE21337405EDE3340390842BEA3FD07403D8CD0BFD0451C40586701BF46DCAC3FCD50EB3DACDFE43F4813B140359CBF3ECDE94EC03A4E713F18851FC02F601A403B6989C019BC96C02495E63F0B4540C0AFEEA83FFC22A1C0DA1C82C0839713406D3A68C015D2CDBE1460FEBFFE775E401D9471BE71D9553E0FCF19C09AF3FEBF20FF80BE294BDEC01CD4E0BFC2EC25401DC58D3D29D09540DE6D0140351C314011EECBBFDF5C43C069CFA0BF973D2DC01293E2BC6B803640229A7040850DDBBFF794ACC0C1D84EBD11F32EBE4FABFF3FA5B5AF3FAE045A400564063EB899454053EFA0BFCDA128C0516312C03695534086FA95BFCD88B7BDAB36C33FB97638402D11E2C092C0A4C098559E400A3926BECA5F2440EDDE89BF3E61C13FE7681EC05AD22FBF9656D73F338A024033FF564024E390405AA65140BDF7A1C05CDB26C0C6777FC06543A340521C42407E3B81C039FB8CC079CA5CBE55407BC0FA1203405E2C6540168E2AC0B6AB2640781366401F32B0C05BE763C05349FABFF481A13EA15B9BBFF78D5BC0E32A07C09F5687C02A931AC0CCDB10C0B1A430BEFA2D1B40CEF533C029E4A9C0C340C6BFA7B1DBC0D4D2AB3FE619753EA6315B408732C03E942F25403357E2BFE6107A40A04F953F5CB908BF0D66C3C0F9A435BF3C468440A59A603F30FF993F944491BA28BF0C40E723E5BEBA103BBF16AD783E4F34EB3E1964E93F9C344F402922BDC0F237C83E0C5A03C04433084005A9E8408827A040CA00644071EF4EC0D09E653F2371903E5D4095C06ACB02C05DDC353F4B303640E4A5624025ACDD40596F844032467CC08AB2D33E77992A3FF7941340F6F2EDBFE5FFAEC0EEF984403D457CC02B67C73F880E12C0858501C0DB9621C0758DE3BF583F5340B9C0A8BE6DB0C8C0068AA6C0DE2AC0C04949F9BFDD6814C08D470C3F526285C0CC5AD0BE10FD92BFE52E7A40F4282E40275002C0A9594DC02378B13DD3FA3C40588C8E40A0BE63C021FF6A40A8B0B2403E1FE3BC712EEE3EBCDD2A40DCDE5EC0FB30B63EE2EC50C0BCB75DBF427380C01BBB393F9FB722BF322B70408285DABFCB0BCDC032599D4042C6DF3FA4914DC03179003E258304C1B0DFA93FB0E5A3C036CD5CBF60C821C03E14BE3FEF7612C008C3693EBC9F2F404C8AD63F153750C0B9EFD3C0FE6C97C0C161694075D6B7BF11F4A8C068DCFC3E97C11AC0152DE1BEDB943FBE59541540B6826FBEEAFE77C02B243BC0525AB4BF110879BFBB2DDC3F11AA523F84575EC03D3E7F40F96F6240D6A2ABBFD46981406407004067B9C53F3B8FC33FBE2C414046A46DC05418633FD48CC9BE40045CC085CA973FBE254FC01F1FDD3FD68ACFC079BC93C02E515240F0CB17BF954167404193AFBFB89F9540D33BBEC088A695406BB5034078EEDDBF2DCFCDBF9E5694C0AFD727C0445E1DC18830C540AFD14640318DA03F4F62EDBEB5DA05C0367C84BFB66C88401967EC3F9E3026C0AD6088C0198A00C051704ABFAFB6AEBF90F298BFF2B802C0D008C24071E44FC03A17B93E2183BA3F783408C0E46BABBF1EC81EC094CF5AC017F509BE2890253FD4BAA5BF0C2B8A40AAED14400A928E3ECEF734C0FA7B88BE09A24240E3C1B3BEE5201640C2B3623FA575A240D140013F0F8A6DC0930BC53FC47347C08DDD5A40692F82C0C1E603BFE7A0C2C0C9E6D5BF5FC7303FDEF8A2BE867E81402647D93F376D3EC07E6F26C02A025CBF04096C40409C30BFC2931E40FCC0C13EC9AC7DBF187DCD3E020CB83F88EBB13F82A6DD3F51852B3E1E8887BF00269CBFA61D92BEDF110E4080ACB33F688F7E40B191D9BF21273CC04B1ED240D7F64EC0494E92C00B5B00C0A1C15F3F45AC0EBFC4DCC6C03BA52B3E530186C0609F69BFB703224005E9FFBFBFDE7DC07B35EB3F7D4AC2404E691AC06C85BD3E1D3A89408C4682BFD6FDF83EA233E7BFD69ABC40CF372DC04D769FC0E2BE3F3F5ECF2AC0E139E440A7AA683FF9FD9EBF6E8A8240B26030BE55B8B8BEE20602C03016873BCADE03BF1DDC27BFECD92E3FE66D3A407DD088BF8A6260C07A5385C0F3A30FBF14464AC0D73B95BD57DED44020809C4088F489C0C60455404BBF9B3E73BDEA3FA13F5ABFEEED9F3F5A2932BF0D90A43F77DF98C00E59A540E389D13EB64C9BBF139FCBBEF56CE13F40D200C0D10912C06E2E09C0742D2CC0E2472DBF93C90F3F06E5A43FCACFE63F3391B3BFE4C90E40DED6B5BF57EBE0BFFCD72CC024A79540B4A8144064283CC0ABE072C0F445624072539CBFB9762640569355C0B91F08C073C5A13FD0B2883E7D6985BF95CF11409DF5BD3FFEAEBF3F2A9593C0A9AB8C3E50FCF33F8E2B8BC094942BC0DFB1B740483774BF09F3004050D605C0710929C0244FCBBFFF8F3ABFDAF1B1BFFEEBBE4098BF8FC02672E8BFDB889540E9F720408DBCAC3F31C09CC0F35C223F3A760F3F656A7D40F8A849BFE2E412406454CB3F98BD94BF2567093FE7EF5A40C1A9B7C0137F0E4038EC9D403EAC4AC0B4CBB6BFE881EFC00E727BC0B1F09C3FBDD75ABC32AADE3F4B35FABF911C19BF35B8D1BFAB5D9A3FDDDCDD3FB4955C3F998708401CBE7A3EB479D13F310A21C021C20040504106C09DA9853E4556BFBE695BEE3F92FEF43F3963CABEAA790EC0C35287BF9B097ABF097270C0EA1CC83F11F1844001BC0E419647E93F38692EBE33DAE0C0DAFF204065D27FC0088CB6BE46A24740722B0A3D3EB504BF6CB69AC0F8E294BF7929F9BF9E5B75BF324AEF4044FBA140D350E4BEB6984EBF84A9CEBFBD38C83EEAB44C40A14601C099377AC0BA958DC0F218ACBF25A677BF4AB161409A9A9540ECC151BFCB2B8FBE7C8C623F60D6ABBEC80B18C0C40F8C40B49751405865D840B123193FE84570C067AA2A40BC71E9BF2DAAC9C02DA26DC0D7FA35BF555C2B3EE1839C3F29D2D0BFA09FF23FF14872408F5F203FCD9252C0042978C0BAF7C7BFF7F41240FCE06440EFEF0EC0AF05C3BF3EED023F6F85C1BDF07703406D48D53F9A967240EF9416C0E722CF3F2E3471C0AF811940D9E8A740667287C0BA8BE43FA61DB6BFF08B1D40985DB1BC85A907BF7563993F056486BEF2D8F73DC45A7E3E3F2708C095AAA7C08072B93E8FB5DE40167F0141A81E803F04E73E4040F96AC09D35C540E9E24DBEC7668A3F0D7D0FBF1EFC913F7E8289C0C556E4BF4B91C2BDF5E0523F3250D1C0836759C0"> : tensor<20x30xf32>
%cst_0 = stablehlo.constant dense<"0x0000000000000000FD94153F000000000000000000000000FAFE7F3FFAFE7F3FFAFE7F3F0000000000000000000000000000000000000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3FFCBFC03E00000000FAFE7F3FFAFE7F3FFAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3F00000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3FFAFE7F3FFBCF503D00000000FBD4553F00000000FAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3F000000000000000000000000FAFE7F3F00000000FD7F003C0000000000000000000000000000000000000000FAFE7F3F00000000FAFE7F3FFAFE7F3FFAFE7F3F0000000000000000000000000000000000000000FAFE7F3FFAFE7F3F00000000000000000000000000000000FAFE7F3FFAFE7F3FFAFE7F3FFD7F803BFAFE7F3F000000000000000000000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3FFAFE7F3F00000000000000000000000000000000FAFE7F3FFAFE7F3F00000000FAFE7F3FFAFE7F3F000000000000000000000000FD7F003D00000000000000000000000000000000000000000000000000000000FAFE7F3F00000000000000000000000000000000FAFE7F3FFD7F803CFAFE7F3FFBDF603DFAFE7F3F00000000FAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3FFCAC2D3FFAFE7F3F00000000FAFE7F3F0000000000000000FD7F803CFBC7C83DFAFE7F3FFAFE7F3F00000000FAEF703D00000000FAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F00000000FCB8393FFCBFC03C0000000000000000FCB5B63EFAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F00000000FD8F903DFC95963EFAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F00000000000000000000000000000000FAFE7F3F000000000000000000000000000000000000000000000000FCA7283E000000000000000000000000FAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3FFAFE7F3F00000000FAFE7F3FFAFE7F3F00000000FBCFD03DFAFE7F3F00000000FCAF303D000000000000000000000000FBC1C23E00000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3F00000000FD7F803B00000000FAFE7F3F000000000000000000000000FAFE7F3F00000000FCBF403CFAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3F0000000000000000FAF7F83D000000000000000000000000FAFE7F3F0000000000000000000000000000000000000000FAFE7F3FFD8D0E3F00000000FAFE7F3FFAFE7F3F00000000FAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F00000000FCB0313F0000000000000000FAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3FFAFE7F3F0000000000000000000000000000000000000000FAFE7F3FFAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3FFAFE7F3F00000000000000000000000000000000000000000000000000000000FAFE7F3F00000000FCBF403DFAFE7F3F0000000000000000000000000000000000000000FD898A3E00000000FAFE7F3FFAFE7F3FFCBFC03C0000000000000000FAFE7F3F00000000FAFE7F3FFCB0313FFAFE7F3FFD83043E00000000FAFE7F3F00000000FAFE7F3F00000000000000000000000000000000FCA7A83E00000000FAFE7F3FFAFE7F3F000000000000000000000000FAFE7F3F00000000FAFE7F3FFBDF603D00000000FD7F803DFAFE7F3FFAFE7F3FFAFE7F3FFD7F803B000000000000000000000000FAFE7F3FFAFE7F3FFAFE7F3F0000000000000000FAFE7F3F000000000000000000000000FCAA2B3F0000000000000000FD7F803B0000000000000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3F00000000FBCF503DFAFE7F3F00000000FBE7E83D00000000FAFE7F3F0000000000000000FBD5D63E00000000FAFE7F3FFCBF403F00000000FAFE7F3F000000000000000000000000000000000000000000000000FCA1A23EFAFE7F3F000000000000000000000000000000000000000000000000FAFE7F3FFAFE7F3F00000000FAFE7F3FFBDFE03CFAFE7F3F00000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3FFD87883D0000000000000000FAFE7F3F0000000000000000000000000000000000000000FCB3343EFAFE7F3FFAFE7F3F00000000FAFE7F3F000000000000000000000000FAFE7F3FFAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3FFC9FA03C00000000FAFE7F3FFAFE7F3FFAFE7F3F00000000FC9FA03CFAFE7F3F0000000000000000FAFE7F3F00000000FAFE7F3F0000000000000000000000000000000000000000FAFE7F3F0000000000000000FAFE7F3FFAFE7F3FFAFE7F3F00000000FD81823EFCB3343EFAFE7F3F00000000FAFE7F3FFAFE7F3F00000000FC9F203EFAFE7F3F00000000FAFE7F3FFAFE7F3F00000000000000000000000000000000FAFE7F3F00000000FAFE7F3F000000000000000000000000FAFE7F3FFAFE7F3FFCA3243FFAFE7F3FFD7F803CFAFE7F3F00000000FAFE7F3F00000000FC9FA03C00000000FAFE7F3FFAFE7F3F0000000000000000000000000000000000000000FAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F0000000000000000FAFE7F3F0000000000000000FAFE7F3F000000000000000000000000000000000000000000000000FAFE7F3FFAFE7F3F000000000000000000000000FAEF703DFAFE7F3F0000000000000000000000000000000000000000FAFE7F3FFAFE7F3F0000000000000000FCB0313F0000000000000000FAFE7F3FFAFE7F3FFAFE7F3FFBDB5C3E00000000FAFE7F3F00000000000000000000000000000000FD7F803BFAFE7F3F00000000FAFE7F3FFAFE7F3FFAFB7C3E000000000000000000000000FAFE7F3FFAFE7F3F0000000000000000FD87083E00000000FAFE7F3FFAFE7F3FFAFE7F3F00000000FAFE7F3F00000000FAFE7F3FFAFE7F3F00000000FAFE7F3F00000000FAFE7F3F0000000000000000FAFE7F3F0000000000000000FD7F803C0000000000000000FCBF403DFAFE7F3FFAFE7F3FFAFE7F3FFAFE7F3F00000000FAFE7F3F00000000FAFE7F3F00000000FAFE7F3F000000000000000000000000FD8D0E3F0000000000000000"> : tensor<20x30xf32>
%0 = stablehlo.uniform_quantize %cst : (tensor<20x30xf32>) -> tensor<20x30x!quant.uniform<i8:f32, 0.0039215482917486456:-128>>
%1 = stablehlo.multiply %0, %0 : (tensor<20x30x!quant.uniform<i8:f32, 0.0039215482917486456:-128>>, tensor<20x30x!quant.uniform<i8:f32, 0.0039215482917486456:-128>>) -> tensor<20x30x!quant.uniform<i8:f32, 0.00392152795604631:-128>>
%2 = stablehlo.multiply %0, %1 : (tensor<20x30x!quant.uniform<i8:f32, 0.0039215482917486456:-128>>, tensor<20x30x!quant.uniform<i8:f32, 0.00392152795604631:-128>>) -> tensor<20x30x!quant.uniform<i8:f32, 0.0039215076203439753:-128>>
%3 = stablehlo.uniform_dequantize %2 : (tensor<20x30x!quant.uniform<i8:f32, 0.0039215076203439753:-128>>) -> tensor<20x30xf32>
%4 = stablehlo.custom_call @check.eq(%cst_0, %3) : (tensor<20x30xf32>, tensor<20x30xf32>) -> tensor<i1>
return %4 : tensor<i1>
}
}
Loading

0 comments on commit 5f52ca3

Please sign in to comment.