Skip to content

TIR Printer bugs #6413

Description

@xqdan

Thanks for participating in the TVM community! We use https://discuss.tvm.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking. You are always welcomed to post on the forum first :)

Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.

For bug reports, to help the developer act on the issues, please include a description of your environment, preferably a minimum script to reproduce the problem.

For feature proposals, list clear, small actionable items so we can track the progress of the change.

Hi,

I am trying to use tir printer to dump ir for each pass:

__TRACE_COUNTER__ = 0
def dumpir(module, info, is_before):
    global __TRACE_COUNTER__
    if bool(is_before) == False:
        __TRACE_COUNTER__ += 1
        pname = str(__TRACE_COUNTER__).rjust(2,'0')  + "_" + info.name + ".ir"
        with open(pname, "a") as f:
            f.write(str(module))

def tx_conv2d(input_shape, filter_shape, pad, stride):
    fmap = te.placeholder(input_shape, name="feature_map", dtype="float16")
    weight = te.placeholder(filter_shape, name="filter", dtype="float16")
    conv_res = tx_conv_compute(fmap, weight, pad, stride)
    sch = tx_conv2d_schedule(conv_res)
    with tvm.transform.PassContext(opt_level=3, trace=dumpir):
        (tvm.lower(sch, [fmap, weight, conv_res], simple_mode=True))

1, check failed for local buffer
https://github.com/apache/incubator-tvm/blob/82d157f0b83ae17fde7bbfca14110aa2f2b80b61/src/printer/tir_text_printer.cc#L196

such as: buffer(result.shared_LLB, 0x11b7170), which is not in buffer_map

2, so I comment this, then I find ir dump for 01_tir.InjectPrefetch.ir, missing buffer for a store name, which looks werid:

 attr [] "realize_scope" = "shared_LLB";
        realize(, [0:1, 0:1, 0:16, 0:32], True {
          attr [IterVar(ax0_1: int32, (nullptr), "DataPar", "")] "pragma_dma_copy" = 1;
          for (ax2_1: int32, 0, 16) {
            for (ax3_1: int32, 0, 32) {
              [0, 0, ax2_1, ax3_1] = filter[0, 0, ax2_1, ax3_1]
            }
          }

3, is this an extra ')' here ?
https://github.com/apache/incubator-tvm/blob/82d157f0b83ae17fde7bbfca14110aa2f2b80b61/src/printer/tir_text_printer.cc#L304

for load , what we print is
fmap_l1[(((i1*896) + (i2*16)) + i3)] = (float16*)feature_map.shared_LLB[(((i1*896) + (i2*16)) + i3)]) -> extra ')'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions