-
Notifications
You must be signed in to change notification settings - Fork 56
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Allo throws RuntimeError: Unsupported Name 'packed_tmp' during IR building when packed_tmp is used.
To Reproduce
multiple test cases under the dataflow path, including tests/dataflow/test_multi_cache_gemm.py and tests/dataflow/test_daisy_chain_gemm.py
Simply run these testcases with python3 test_multi_cache_gemm.py will reproduce the issues.
Buggy output
/export/hdd/scratch/sli3079/allo/allo/_mlir/exceptions.py:76: RuntimeWarning:
[Data Type] NumPy does not support bitwidths larger than 512, so you cannot use NumPy
for simulation, but you can still generate the corresponding MLIR module.
warnings.warn(self.message, category=self.category)
Traceback (most recent call last):
File "/export/hdd/scratch/sli3079/allo/allo/ir/infer.py", line 1330, in visit_stmts
results.append(visit_stmt(ctx, stmt))
File "/export/hdd/scratch/sli3079/allo/allo/ir/visitor.py", line 227, in __call__
res = method(ctx, node)
File "/export/hdd/scratch/sli3079/allo/allo/ir/infer.py", line 318, in visit_Assign
rhs = visit_stmt(ctx, node.value)
File "/export/hdd/scratch/sli3079/allo/allo/ir/visitor.py", line 227, in __call__
res = method(ctx, node)
File "/export/hdd/scratch/sli3079/allo/allo/ir/infer.py", line 442, in visit_Subscript
value = visit_stmt(ctx, node.value)
File "/export/hdd/scratch/sli3079/allo/allo/ir/visitor.py", line 227, in __call__
res = method(ctx, node)
File "/export/hdd/scratch/sli3079/allo/allo/ir/infer.py", line 135, in visit_Name
raise RuntimeError(f"Unsupported Name `{node.id}`")
RuntimeError: Unsupported Name `packed_tmp`
Error: Unsupported Name `packed_tmp`
╭────────────────── Traceback (most recent call last): Line: 122 ───────────────────╮
│ 117: packed_c: UInt(M * 8) = 0 │
│ 118: for m in range(Rt): │
│ 119: if m == i - 1: │
│ 120: packed_c[m * 8:(m + 1) * 8] = c │
│ 121: else: │
│ 122: packed_c[m * 16:(m + 1) * 16] = packed_tmp[m * 16:(m + │
│ 1) * 16] │
│ 123: L1_C[i - 1, j - 1].put(packed_c) │
╰─────────────────────────────────── Source Code ───────────────────────────────────╯
Expected behavior
Allo should correctly handle packed_tmp and generate LLVM or HLS code.
Additional context
Add any other context about the problem here.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working