Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Original implementation from @drewpersigehl: https://github.com/drewpersigehl/L1MET_EmbeddingLayer
Addresses #422
Simple test script: https://gist.github.com/jmduarte/302c1d629747d86b926fa13b485a1682
io_parallel
implementationio_stream
implementationA few peculiarities to note (not yet enforced):
weight_t
should always be equal tores_t
data_t
should always be[u]int
orap_[u]int<X>
Example HLS latency/resources for
n_in = 100
,vocab_size = 13
,n_out = 8
,ap_uint<4>
for inputs, andap_fixed<16,6>
for outputs.io_parallel
:io_stream
: Note the long latency/II is due to the fact that the input data is put in a stream of size 100 (so we read have to wait to read in the full data)