I'm tying to figure out the HLO structure and how we can make our own compiler to compile HLO after optimization.
After going through the XLA flags, these 3 looked most relevant to me:
Dump all HLO modules as text into the provided directory path:
TF_XLA_FLAGS=--xla_generate_hlo_text_to=/home/XLA/output python3 source.py
"Dump Hlo after all hlo passes are executed as proto binary into "
"this directory."),
TF_XLA_FLAGS=--xla_dump_optimized_hlo_proto_to=output2 python3 source.py
"Dump the compiler IR into this directory as individual files."),
TF_XLA_FLAGS=--xla_dump_ir_to=output3 python3 source.py
The output for each flag is in a different folder.
The first folder has the HLO modules, which is easier to understand (I still have problems at fusion part)
The second folder is binary (which is unreadable-ish).
The third folder is compiler IR, I don't understand this one at all and I don't get the difference between HLO modules and compiler IR. (what is the flow of going from tf graph to binary?) tf.graph --> HLOmodules --> ... where is compiler IR in relation to HLOmodules here?