aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/main.cpp
AgeCommit message (Collapse)Author
2024-03-05Fix the usage of command line arguments for reference_modelJerry Ge
- Users have to specify the --test_desc filename argument for using reference_model - Update the initTestDesc function to allow users to use pure command line arguments to specify all test descriptions Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: Ia23d4ba550aace6c3cd202e21bc8fbe6e0be1cf0
2024-01-29Simplify bfloat16 truncate and verify codeEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I85595b1ea82e3a9db8e5f654767a911fa58c842f
2023-12-04Path fixes for ref model and librariesJeremy Johnson
Support relative desc.json paths in refmodel of just "desc.json". Catch when generate and verify library paths are None and provide help in tosa_verif_check_result. Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Ie52ac399ea002e5fcdcc1eec3d9df6153a778e88
2023-11-16Support loading shared libraries for custom operatorsJerry Ge
- Add a new command line option to allow users to specify a custom defined dll library - Add a custom registry to store all registered libraries - Add a dummy example (custom_op_example.cpp) for demonstrating this new feature Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I7c360835933f77e33fcbd772cabfe01d82282d47
2023-11-16Main Compliance testing support for EXP & POWJeremy Johnson
Added new ABS_ERROR mode to verify lib and ref model. Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Ifb78290675833d3df7df91a4d6cef336b02b64a4
2023-11-10[fix] Fix the parsing failure during splitting multiple files to the argumentTatWai Chong
The second parameter of std::string::substr holds the number of characters to include in the substring, rather than the index of the end of the capture. Change-Id: Ie8c36efcb1850fcc1f44d430569f18646f6bfd45 Signed-off-by: TatWai Chong <tatwai.chong@arm.com>
2023-10-02Support for compliance checking testingJeremy Johnson
Updated to conformance generator to not generate tests with results for compliance tests. Updated test runner to run compliance mode version (precise & abs mode) of reference model to create test results to use against SUT results. Updated reference model to enable abs_mode on correct desc.json flags. Updated test checker to support compliance checking using verifier lib. Seperated color printing from test checker. Change-Id: I7e2fbfc6883916caa5d94d4ece122c48bf45f530 Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
2023-09-15[reference_model] Support StatefulOps and the tests for CallOnceOpTai Ly
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I03cb878736ccd7e1f5e1f780d7171949a19a9de2
2023-09-06Update TosaVersion compatibility check to match with serialization_libJerry Ge
Serialization_lib change: https://eu-gerrit-1.euhpc.arm.com/c/mltech/mirrors/tosa/serialization_lib/+/542261 Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I59752a3ba7981c356634b911160cedf30fb2599e
2023-07-27Enable lazy tensor allocationJerry Ge
- The previous ref_model was allocating the memory for all tensors in the graph upfront which is unnecessary and wasteful. - This patch changes to only allocate initial input tensors on the entry point using the allocateInputTensor() function. - The output tensors are ensured to have been allocated before executing a node. The output tenosrs are the inputs for the next node. - When a node's evaluation is finished, its input tensors will be freed if they will no longer be used by anyone else. Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: Ibb3e8c9e6344f6cd9eb20532a03b2097b93247f9
2023-07-25Run clang-format and update copyrightJerry Ge
- Also added run clang-format to pre-commit runs Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I4e59ac0afbaa30dce0773aa63d92a1a3b119e2f3
2023-05-18Add abs calculations under precise_modeTai Ly
This adds a second run of reference model under precise_mode when test_desc.json contains a "compliance" dictionary which contains a "mode" entry with value "dot product". In this second run, abs_mode will be set to true, which causes: 1. evaluation will take absolute values of inputs for these operators: conv2d, conv3d, depthwise_conv2d, fully_connected, matmul, transpose_conv2d, fft2d, rfft2d reduce_sum, avg_pool2d 2. output files will have prefix "bounds_" prepended to them Signed-off-by: Tai Ly <tai.ly@arm.com> Change-Id: I7070ecc7ead2d2ea3375c44663d653c6772b88e0
2023-04-20Add level checking to TOSA Ref modelJerry Ge
Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I5689d7c6b902a319a68fa4628b59e0bcc23aeca4
2023-04-11revert to GetBlockByName "main"Tai Ly
Signed-off-by: Tai Ly <tai.ly@arm.com> Change-Id: Icefa594b25739ebaa331af2352bdcae1aaf81cf5
2023-04-06[reference model] support multiple regionsTai Ly
This allows IF/WHILE serialization to use regions instead of blocks to serialize nested regions. For backward compatibility, both region and block serialization are supported for IF/WHILE ops. Signed-off-by: Tai Ly <tai.ly@arm.com> Change-Id: Icf935561f9f5db38767ff76410bcd36896119395
2023-01-13Reference model update for control flow operators supportJerry Ge
Rationale for making this change: - In the original design, for control flow operators like WhileOp, child blocks couldn't read the tensor variables (global consts) in the root level block, this patch added the machanism for child blocks to access their parent level block's tensors. - This change also relies on another serialization change on adding another layer of abtraction called Region: - Serialization patch: [region] Add TosaSerializationRegion to serialization_lib - Updated the corresponding python version of the serialization code: TosaSerializerRegion to python version of serialization_lib - This change also relies on the TOSA MLIR Translator change: Add RegionBuilder to TOSA MLIR Translator - Added the WhileOp related test cases: While, LSTM, GRU, RNN - Other related fixes Signed-off-by: Jerry Ge <jerry.ge@arm.com> Change-Id: I13ae33628ad07e41d248e88652ce1328654694ab
2022-11-29Fix error messages/comments using old -C arguments.Jeremy Johnson
Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: Ib4c4fe433485282713d396b92d8acec812a17188
2022-11-09Add BF16 support to reference modelJames Ward
* Upgrade Eigen to 3.4.0 (for bfloat16 support) and add work- arounds for reduce.any() and reduce.all() bugs (introduced between 3.3.7 and 3.4.0) * Truncation to bfloat16 now performed in eval() methods Signed-off-by: James Ward <james.ward@arm.com> Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com> Change-Id: If5f5c988d76d3d30790acf3b97081726b89205fe
2022-10-07Add IModelRunner interface to TOSA Reference ModelMatthew Sloyan
* Added IModelRunner interface using pimpl idiom, which allows a user to initialize, configure and run the model. * Added unit tests for IModelRunner. * Added doctest as third-party submodule. * Added user options to specify paths for dependencies. * Moved general func_config functions to separate utility, which removes cxxopts dependency. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: If42f1f82cd6dadf18911a48dcd5fa579b719aff2
2022-09-12Update reference model version to 0.41 draftEric Kunze
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I862b4d0fa66328535d555d3d4624a5f3dd856cc0
2022-08-30Update revision to 0.40.v0.40.0v0.40Eric Kunze
In preparation for next release. Also include new version of the serialization library Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I577406339d527dd29f14196d6ff1bcd0ac3ffd78 Change-Id: Ia140cd16b21133c674f8ef1cf31e665982478c81
2022-08-22Simplify the argument parsing and debug codeEric Kunze
Change-Id: Ia681aa0eb1d42fa31a4658badb376f7b32b2e338 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-07-08Update reference model version to 0.31 draftEric Kunze
Include new submodule for serialization library. Change-Id: I38cdea3ed8ea3968d1dc06c689dab248d21b14fd Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2022-06-16Remove draft status from reference modelEric Kunze
Preparation for v0.30 release Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I65f6ee429a840d562c104c48335f8dcb51f79667
2022-06-15Remove quantization info from serialization attributesEric Kunze
Any needed information moves into the attributes for each operator. New serialization library version removes teh quantization information attributes from the schema Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: Icf6165687ab1fd34a01f64c01b0b92b2820e72fa
2022-06-13Update transpose_conv2d to align with TOSA specTatWai Chong
Rename outpad to out_pad, and also fix the dilation in the generator. Change-Id: I4c1599871f0d0b41856e819d8c644a85ca6d8267 Signed-off-by: TatWai Chong <tatwai.chong@arm.com>
2022-03-19Usability cleanupJared Smolens
- Error check on missing test description file instead of throwing json exception - Removed outdated help option Signed-off-by: Jared Smolens <jared.smolens@arm.com> Change-Id: Ia8780a88f4306af19ce63eaa679c84669f5c2ad9
2021-11-04Update reference model version to 0.24.0 draftEric Kunze
Change-Id: I1de45a21779ec014a0fda2c971dbc8f91df45bdb Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2021-11-03Remove draft tag for 0.23 releasev0.23.0v0.23Eric Kunze
Update to the corresponding serialization library Change-Id: I323bf306d409b51bbf53447927953edd0fd79983 Signed-off-by: Eric Kunze <eric.kunze@arm.com>
2021-10-26Add version to reference modelKevin Cheng
- update serialization_lib hash - check model version against serializer version - add "-v" to command line option to print out model version Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: I554cf0fdead22e7e5f91d2e98831459286c40a2d
2021-10-18More ERROR_IF supportsKevin Cheng
- Also delay tensor allocation after operator being validated ERROR_IF can be caught first before 0 or negative dimension set the graph_status to UNPREDICTABLE - Rescale, Argmax, FullyConnected, Matmul, Pad, Reshape, Slice, Transpose, Clamp, Concat, Equal, Greater, GreaterEqual, Table Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: I4e1b3e5794fe195ce1a37e28443ae584645a3b91
2021-09-30Add SUBGRAPH_ERROR_IF() to catch graph-level error.Kevin Cheng
- Also replace SIMPLE_FATAL_ERROR() with FATAL_ERROR() since they're duplicate - Replace FATAL_ERROR()/ASSERT_MSG() with ERROR_IF_SUBGRAPH() if the condition is a graph error FATAL_ERROR()/ASSERT() should only be used by model internal/runtime error like file reading. Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: If1e1e2488054a0ecd800fb0f2ea6487019282500
2021-09-27Op that violates rank requirement now runs to the end and return ERROR ↵Kevin Cheng
instead of bailing out. Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: I61e163cfdb54057f65dc967394decc3fad53eb89
2021-08-20Replace node level check ASSERT_MSG_NODE()/FATAL_ERROR_NODE() with REQUIRE() ↵Kevin Cheng
or ERROR_IF() - Adding return code enum class: {VALID, UNPREDICTABLE, ERROR} - Runtime errors (e.g. memory allocation failure) will abort immediately, or will return one of the three return codes Part of the codes are re-written to pass REQUIRE() to the top-level (e.g. apply_scale_32/16()) - Update setExpectedFailure() to setExpectedReturnCode() on test generation script - Update test regression script to interface with reference model change Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: Ia063c936bcb2a54d6e379a5bb6801aa72d1186f1
2021-07-01Adding option -Coutput_dir= to control output location.Kevin Cheng
- If not specified, will be initialized with dirname(test_desc) - Like -Cflatbuffer_dir, reference model isn't responsible for creating directory. User need to make sure target directory path exists. Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: I9cfcc801cff648e53306f8de8ea8d5eaaf87ea80
2021-06-04Rewrite model frontend to be json-driven.Kevin Cheng
Change-Id: Iac786eff96183938d2fd11cde9313c6e8e1270a5
2021-04-27Replace serialization/ and verif/ with MLPlatform's serialization_lib submoduleKevin Cheng
- Remove Usage and Format - Run black on verif/*.py scripts Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: Ie81515891eb0039540f614894f4b6b0e0e78ba74
2020-10-14Initial checkin of TOSA reference_model and testsEric Kunze
Change-Id: I2f8e7fa63e2ae40203e57d2cc8814bde3b312cb6 Signed-off-by: Eric Kunze <eric.kunze@arm.com>