You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Motivated by #1441 we investigated different ways to store hash values with more than 64bits. This would allow you to have reversible hashing for k>32 k-mers.
Explored adding a new type that uses std::bitset or an array of bytes, or an array of different numerical types. One lesson learnt is that bitset does exactly that, packs the bits into integers in an array. Except it is smart about picking the size of the integer and can use vector instructions etc.
The khmer hashfunction uses shifts and ORs so it is hard to see how to speed things up.
The overall conclusion after some benchmarking was that this slowed down the hashing by >10x even for small k. Therefore we ditched it. Now using irreversible hashing for k>32.
The text was updated successfully, but these errors were encountered:
Motivated by #1441 we investigated different ways to store hash values with more than 64bits. This would allow you to have reversible hashing for k>32 k-mers.
Trial PRs:
Explored adding a new type that uses
std::bitset
or anarray
of bytes, or an array of different numerical types. One lesson learnt is thatbitset
does exactly that, packs the bits into integers in an array. Except it is smart about picking the size of the integer and can use vector instructions etc.The khmer hashfunction uses shifts and ORs so it is hard to see how to speed things up.
The overall conclusion after some benchmarking was that this slowed down the hashing by >10x even for small
k
. Therefore we ditched it. Now using irreversible hashing for k>32.The text was updated successfully, but these errors were encountered: