google / google/CFU-Playground

Using cfu unit as storage

Open
#690 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Verilog
Stars
565
Forks
160
PR merge metrics
No merged PRs in 30d

Description

Hi @tcal-x and @mithro ,
In my network/model, I've noticed that there is a high memory bottleneck compared to computation time, so I wanted to try to use the cfu unit (single cycle) for storage/ as extra buffers used by the vexriscv core to show speedup. However, surprisingly, I'm either seeing the same runtimes or actually worse. Is it an issue with how long the core takes to interface with the cfu? Any advice on this/ any other alternative like a data-scratchpad memory? Ive tried changing the cache sizes, L2 sizes, maxxed out I-cache as well, but Im not seeing improvements.
Another weird thing Ive seen is that when I remove the condition checks for checking if the point is in the image ( in conv.h ), I'm noticing really high reduction in runtimes. For example, as in the original conv.h file, you can see this below
```
const bool is_point_inside_image =
(in_x >= 0) && (in_x < input_width) && (in_y >= 0) &&
(in_y < input_height);

if (!is_point_inside_image) {
continue;
}

```
Please let me know about this,
Thanks,
Bala.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.