>From the [discussion about running sparse 
>CNNs](https://discuss.tvm.ai/t/running-a-cnn-using-sparsity-convertor/7267/11),
> I have implemented prototypes of a dense NCHW GEMM convolution, and what I 
>think is a working CSR NCHW GEMM convolution.

I will share the code once it's a bit more mature.

I'm doing sparse GEMM convolution first, rather than sparse spatial pack, since 
there are already sparse GEMM methods in TVM I can leverage, whereas a sparse 
spatial pack would require some cleverness.


However, when building my standalone function as a module, I am getting the 
following error:

```
from tvm.contrib import sparse


# create placeholder tensors
...
n = out_c
k = kdim_h * kdim_w * in_c
sparse_weights = sparse.placeholder((n,k), nonzeros=(1-sparsity)*n*k, name='W') 
# weights 
...


# create output using compositions of te.compute 
conv = gemm_conv_sparse(sparse_weights, ...)


# build function
s = te.create_schedule(conv.op)
dtype = 'float32'

func = tvm.build(s, [data, sparse_weights, conv], target=target, 
name='gemm_conv2d')

# ^ returns ValueError: args must be Tensor, Buffer or Var
```

Any ideas on how I'd pass my `sparse.placeholder` to `tvm.build`?





---
[Visit Topic](https://discuss.tvm.ai/t/pass-sparse-tensor-to-tvm-build/7739/1) 
to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.ai/email/unsubscribe/a68bc10b57cb3d7036e664665391a73545c8a1383018fe3568079f633ff36114).

Reply via email to