EmitC testing
NOTE: This is a developer's guide on how to test EmitC as a feature. For usage of EmitC, please refer to ttnn-standalone
docs.
Prerequisites
-
Activated virtual environment:
source env/activate
-
Saved system descriptor file:
ttrt query --save-artifacts
Table of Contents
Generate all EmitC tests and run them
-
Generate flatbuffers and .cpp files for EmitC tests
If you don't have SYSTEM_DESC_PATH environment variable exported, you can run:
SYSTEM_DESC_PATH=/path/to/system_desc.ttsys llvm-lit -sv test/ttmlir/EmitC/TTNN
Or if you have SYSTEM_DESC_PATH exported, you can omit it:
llvm-lit -sv test/ttmlir/EmitC/TTNN
-
Compile generated .cpp files to shared objects
tools/ttnn-standalone/ci_compile_dylib.py
-
Run flatbuffers + shared objects and compare results
ttrt run --emitc build/test/ttmlir/EmitC/TTNN
Generate a single EmitC test and run it
-
Generate flatbuffers and .cpp files for EmitC test
SYSTEM_DESC_PATH=/path/to/system_desc.ttsys llvm-lit -sv test/ttmlir/EmitC/TTNN/eltwise_binary/add.mlir
-
Compile generated .cpp files to shared objects
Assuming default build directory path:
tools/ttnn-standalone/ci_compile_dylib.py --file build/test/ttmlir/EmitC/TTNN/eltwise_binary/add.mlir.cpp
-
Run the flatbuffer + shared object and compare results
ttrt run --emitc build/test/ttmlir/EmitC/TTNN/eltwise_binary/add.mlir.ttnn