You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KhronosGroup/SPIRV-Tools provides some helper utilities for SPIR-V, the majority of which only work on the binary form, but spirv-cfg generates a control flow visualisation diagram using GraphViz - this is similar to what is done by the compiler currently.
""" Generates Graphviz dot graphs of the dataflow of a function. Requires the ``graphviz`` package.
Args:
file_name_suffix: String to append to the filename.
clean_nodes: List of clean/optimised nodes.
"""
The outputs of both Titan and spirv-cfg should (in theory) be identical, but differences may reveal issues in generating the nodes properly. Similarly, MaikKlein/rspirv-cfg may prove to be more useful, as it contains slightly more information about the program.
spirv-val validates the binary form of the given SPIR-V (which can be generated using spirv-as), but may be helpful in determining whether the SPIR-V assembly output of the program is correct and valid, so that it can be used with other SPIR-V capable hardware. This would provide some much needed testing for the outputs.
spirv-opt could potentially be useful to optimise a SPIR-V binary, then disassemble it using spirv-dis and generate SystemVerilog off of that.
The downside is that as of the time of writing this post, the majority of their tools are still listed as being in development, so it's probably worth returning to this at a later date.
The text was updated successfully, but these errors were encountered:
KhronosGroup/SPIRV-Tools provides some helper utilities for SPIR-V, the majority of which only work on the binary form, but
spirv-cfg
generates a control flow visualisation diagram using GraphViz - this is similar to what is done by the compiler currently.titan/titan/compiler/node.py
Lines 511 to 517 in ee247b6
The outputs of both Titan and
spirv-cfg
should (in theory) be identical, but differences may reveal issues in generating the nodes properly. Similarly, MaikKlein/rspirv-cfg may prove to be more useful, as it contains slightly more information about the program.spirv-val
validates the binary form of the given SPIR-V (which can be generated usingspirv-as
), but may be helpful in determining whether the SPIR-V assembly output of the program is correct and valid, so that it can be used with other SPIR-V capable hardware. This would provide some much needed testing for the outputs.spirv-opt
could potentially be useful to optimise a SPIR-V binary, then disassemble it usingspirv-dis
and generate SystemVerilog off of that.The downside is that as of the time of writing this post, the majority of their tools are still listed as being in development, so it's probably worth returning to this at a later date.
The text was updated successfully, but these errors were encountered: