Hongzheng Chen

Results 37 issues of Hongzheng Chen

It is weird that the following two code snippet represents different meanings. The first approach does not add the newly generated loop to `axis`, so `C.axis[1]` refers to the *original*...

bug

The bit slicing API was introduced in #291 , but it is confusing when it allows reversed slicing, since the ranges in Python are all left-closed right-open, while the reversed...

The current report API can only support retrieving reports from a single kernel. However, sometimes the generated code may implicitly or explicitly have multiple functions, which causes errors when displaying...

Currently, HeteroCL only supports simple reuse pattern as *[Tutorial: Memory Customization](http://heterocl.csl.cornell.edu/doc/tutorials/tutorial_06_memory.html)* depicts. However, when doing data streaming, we need to guarantee each element of an array is only read or...

enhancement

HeteroCL generates flat designs that do not have function calls. Even the same modules (stages) will be repeated in the generated code for several times, which incurs large synthesis time....

bug

I'm not sure why the access pattern in the generated VHLS code of the following example becomes so complex. Seems it only happens when the output array is larger the...

bug
High Priority

In this example, the 0th dimension of `A` is useless, since it only has size 1. ```python def test_multidimensional_array(): hcl.init() A = hcl.placeholder((1, 100), "A") def kernel(A): B = hcl.compute(A.shape,...

enhancement

Some loops with trip count one cannot be eliminated by current simplification logic (see below), when `hcl.compute` is accompanied by the `attr` argument, which is very common in current `hlib`...

bug

See the following example. ```python A = hcl.placeholder((8, 8), "A") B = hcl.placeholder((8, 8), "B") def kernel(A, B): C = hcl.compute((8, 8), lambda y, x: A[y][x] + 1, name="add") D...

bug
In Progress

When I stack two conv layers as shown below, ```python def double_conv(): A = hcl.placeholder((1,1,16,16), "A") w1 = hcl.placeholder((1,3,3,3), "w1") w2 = hcl.placeholder((3,6,3,3), "w2") def kernel(A, w1, w2): conv1 =...

bug
In Progress