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 a single EmitC test and run it
- Generate EmitC tests with Builder
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/TTNNOr 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 EmitC tests with Builder
Builder offers support for building EmitPy modules from ttir or stablehlo ops. Refer to Builder documentation.
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 emitc build/test/ttmlir/EmitC/TTNN/eltwise_binary/add.mlir.so --flatbuffer build/test/ttmlir/EmitC/TTNN/eltwise_binary/add.mlir.ttnn