NVlabs / timeloop

Timeloop performs modeling, mapping and code-generation for tensor algebra workloads on various accelerator architectures.
https://timeloop.csail.mit.edu/
BSD 3-Clause "New" or "Revised" License
309 stars 99 forks source link

Segfault with Sparse Optimization #159

Open dhasteer opened 1 year ago

dhasteer commented 1 year ago

Hi there,

I'm trying to get Sparseloop working on a Gemmini-like architecture. Specifically, I'm just trying to get a toy example matmul (described as a convolution) running.

I seem to run into a segfault when I include the mm_sparse_opt.yaml file into my timeloop-model call: Segmentation fault (core dumped). Without the sparse_opt file, however, things run smoothly through Timeloop.

I've tried to describe sparse optimizations in more layers of the memory hierarchy, but that doesn't seem to help. Any ideas what the issue might be here? I greatly appreciate the time and help – let me know if I should provide anything else to make the issue clearer.

mm_arch.txt mm_map.txt mm_prob.txt mm_sparse_opt.txt mm_SRAM.txt

nellie-wu commented 1 year ago

Thanks for providing the input files!

There is a bug that's triggered when the storage has a block size larger than 64, I'm working on a fix. I'll update this thread once the issue is fixed.

In the meantime, you can try to set the DRAM block size to be <=32 to perform your studies, e.g., block_size: 32.