Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[BUG] Unsupported Name 'packed_tmp' error #445

@silvenachen

Description

@silvenachen

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 working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions