Argument ${WORKLOAD_CONFIG}
--workload-configuration: path to the prefix of execution trace files
The naming rule for execution traces follows the format {path_prefix}.{npu_id}.et.
Note
Execution traces can be created using Chakra tools. You have the option of using either execution trace generator (et_generator) or execution trace converter (et_converter).
Using Execution Trace Generator (et_generator)
et_generator can be used to define and generate any execution traces, functioning as a test case generator. You can generate execution traces with the following commands:
$ cd ${ASTRA_SIM}/extern/graph_frontend/chakra/et_generator
$ cmake CMakeLists.txt && make -j$(nproc)
$ ./et_generator --num_npus 64 --num_dims 1
To run one of the example traces (twoCompNodesDependent), execute the following command:
$ cd -
$ ./build/astra_analytical/build/AnalyticalAstra/bin/AnalyticalAstra \
--workload-configuration=./extern/graph_frontend/chakra/et_generator/twoCompNodesDependent \
--system-configuration=./inputs/system/sample_fully_connected_sys.txt \
--network-configuration=./inputs/network/analytical/fully_connected.json \
--memory-configuration=./inputs/memory/analytical/no_memory_expansion.json
Upon completion, ASTRA-sim will display the number of cycles it took to run the simulation.
1sys[0] finished, 10 cycles
2sys[1] finished, 10 cycles
3...
4sys[62] finished, 10 cycles
5sys[63] finished, 10 cycles
Using Execution Trace Converter (et_converter)
et_converter is a trace schema conversion tool, supporting PyTorch and FlexFlow execution traces, as well as ASTRA-sim 1.0 input files. You can convert ASTRA-sim 1.0 text input files into Chakra traces with the following commands:
$ cd ${ASTRA_SIM}/extern/graph_frontend/chakra/
$ python3 setup.py install --user
$ python3 -m et_converter.et_converter \
--input_type Text \
--input_filename ../../../inputs/workload/ASTRA-sim-1.0/Resnet50_DataParallel.txt \
--output_filename ../../../inputs/workload/ASTRA-sim-2.0/Resnet50_DataParallel \
--num_npus 64 \
--num_dims 1 \
--num_passes 1
Run the following command:
$ cd -
$ ./build/astra_analytical/build/AnalyticalAstra/bin/AnalyticalAstra \
--workload-configuration=./inputs/workload/ASTRA-sim-2.0/Resnet50_DataParallel \
--system-configuration=./inputs/system/sample_fully_connected_sys.txt \
--network-configuration=./inputs/network/analytical/fully_connected.json \
--memory-configuration=./inputs/memory/analytical/no_memory_expansion.json
Upon completion, ASTRA-sim will display the number of cycles it took to run the simulation.
1sys[62] finished, 187442108 cycles
2sys[61] finished, 187442108 cycles
3...
4sys[0] finished, 187442108 cycles
5sys[63] finished, 187442108 cycles