| commit | 41c0b8638a81f68426748a2a4ff8ae3cb80e7104 | [log] [tgz] |
|---|---|---|
| author | Lun Dong <lundong@google.com> | Sun Mar 06 19:00:08 2022 +0000 |
| committer | Lun Dong <lundong@google.com> | Mon Mar 07 23:42:06 2022 +0000 |
| tree | 942e9d40ca43f352ce32c63487486fc55f1d6916 | |
| parent | 150783ad8482ff192922c1421ebc5267ff28a58d [diff] |
RISP4ML: further optimize memory allocation and usage This change further optimizes memory allocation/usage for RISP4ML. It enables in-place operations in RISP4ML stages whenever possible and minimizes use of "malloc". Unit tests are also updated accordingly. The change has been verified by comparing output@plain-C risp4ml against output@google3. All unit tests are passed. Change-Id: I93ec0c97f75c36be764bc65e4a886f725e0b2a9a
This project contains ML model codegen and execution libraries/examples. The artifacts built from this project is targeted for RISC-V 32-bit baremetal machine (Springbok).
If you get this project from Project Shodan manifest, you are all set. If not, you need to have following projects as well to build the project successfully.
<dir>/sw/vec<dir>/toolchain/iree<dir>/ml/ml-models-publicThis project needs to be at <dir>/sw/vec_iree
If you are running from Project Shodan repo, you can build the artifacts with m iree. If you download this project alone, you need to download/build IREE's host compiler, then at the top level directory
cmake -B <output dir> -G Ninja \ -DCMAKE_TOOLCHAIN_FILE="$(realpath sw/vec_iree/cmake/riscv_iree.cmake)" \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DIREE_HOST_BINARY_ROOT="$(IREE_COMPILER_DIR)/install" \ -DRISCV_TOOLCHAIN_ROOT=$(TOOLCHAINRV32_PATH) \ <dir>/sw/vec_iree cmake --build <output dir> --target all
You can run QEMU or RENODE emulation with the built executables. In Shodan repo, qemu_sim_springbok for QEMU emulation, and sim_springbok for Renode simulation. Out-of-repo emulation is possible but require more steps.
In Shodan, this project utilizes LLVM lit and FileCheck to test the ML executable performance. The tests are defined in the *_test.txt files under samples. To run the test, at the Shodan top level directory
lit --path <Filecheck dir> -a sw/vec_iree/samples
Filecheck in Debian testing is under /usr/lib/llvm-11/bin
Add -D FEATURES=internal to enable the internal model tests. Add -D RUNNER=qemu to enable the qemu tests.