Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt to AVX2 #12

Open
torognes opened this issue Feb 19, 2013 · 10 comments
Open

Adapt to AVX2 #12

torognes opened this issue Feb 19, 2013 · 10 comments
Assignees
Milestone

Comments

@torognes
Copy link
Owner

torognes commented Feb 19, 2013

Adapt SWARM to AVX2 and the 256-bit registers available in the new Intel Haswell CPUs that became available in June 2013. Should allow 32-way SIMD parallellisation.

@ghost ghost assigned torognes Feb 19, 2013
@torognes
Copy link
Owner Author

Considering the relatively low number of computers in use with AVX2 and the rather limited time now spend on computing alignments, this performance improvement with AVX2 is currently rather limited.

@torognes torognes assigned torognes and unassigned torognes Oct 27, 2014
@torognes
Copy link
Owner Author

@colinbrislawn
Copy link

Parasail implements SIMD parallelisation, including using AVX2.
https://github.com/jeffdaily/parasail/

It's also very fast
https://github.com/jeffdaily/parasail/blob/2967c065de02fc2dc7e44050b4fc6ecfa064b2dc/performance.md

@frederic-mahe
Copy link
Collaborator

Thanks @colinbrislawn, I didn't know about parasail.

@torognes
Copy link
Owner Author

Parasail looks interesting and flexible. A master student of mine have been working on another solution which I think is generally faster: https://github.com/RonnySoak/libssa
His master thesis will soon be available. We hope to integrate his code in Swarm and VSEARCH.

@frederic-mahe
Copy link
Collaborator

Edlib is a very fast Levenshtein distance library, suitable for long sequences (> 1 Mb).

@frederic-mahe
Copy link
Collaborator

What are we going to do about this issue?

Considering the relatively low number of computers in use with AVX2 and the rather limited time now spend on computing alignments, this performance improvement with AVX2 is currently rather limited.

Now that AVX2 capable CPUs are more frequent, do you think it would be interesting to implement this? It is difficult for me to access the amount of work necessary, but I imagine that work could be re-used to speed-up vsearch's search function.

@frederic-mahe
Copy link
Collaborator

Recent paper on pairwise alignment. This paper introduces Scrooge and compares it to Edlib and to GenASM.

@colinbrislawn
Copy link

My first though was, 'How does this compare to the wavefront alignment algorithm (WFA2-lib)?' and they are already discussing that in this issue!

🌊 🚀🧬

@frederic-mahe
Copy link
Collaborator

Indeed, Wavefront is a very interesting alternative. There is even a GPU version now: WFA-GPU (Aguado-Puig et al. 2023).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants