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

Implement SIMD code to quickly compute skippable connections #6

Merged
merged 17 commits into from Sep 22, 2021

Conversation

althonos
Copy link
Owner

@althonos althonos commented Sep 22, 2021

This PR adds two SIMD implementations (using SSE2 or AVX2) to compute which node pairs can be ignored when scoring connections between dynamic programming nodes. The code supports compile-time and runtime detection of CPU features using the additional cpu_features library.

@althonos althonos added the enhancement New feature or request label Sep 22, 2021
@codecov
Copy link

codecov bot commented Sep 22, 2021

Codecov Report

Merging #6 (71fb662) into master (9776a9e) will increase coverage by 0.71%.
The diff coverage is 94.94%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage   92.74%   93.46%   +0.71%     
==========================================
  Files           8        9       +1     
  Lines        2123     2294     +171     
==========================================
+ Hits         1969     2144     +175     
+ Misses        154      150       -4     
Flag Coverage Δ
CPython 93.46% <94.94%> (+0.71%) ⬆️
Linux 93.46% <94.94%> (+0.71%) ⬆️
OSX 92.50% <82.58%> (-0.25%) ⬇️
PyPy 98.37% <100.00%> (+0.29%) ⬆️
Windows 99.77% <100.00%> (+0.04%) ⬆️
v3.5 93.38% <94.85%> (+0.71%) ⬆️
v3.6 93.43% <94.85%> (+0.71%) ⬆️
v3.7 93.43% <94.85%> (+0.71%) ⬆️
v3.8 93.46% <94.94%> (+0.71%) ⬆️
v3.9 93.46% <94.94%> (+0.71%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
pyrodigal/_pyrodigal.pyx 91.95% <91.66%> (+0.69%) ⬆️
pyrodigal/tests/__init__.py 100.00% <100.00%> (ø)
pyrodigal/tests/test_connection_scorer.py 100.00% <100.00%> (ø)
pyrodigal/tests/test_nodes.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9776a9e...71fb662. Read the comment docs.

@althonos althonos merged commit 4a9ecc7 into master Sep 22, 2021
@althonos althonos deleted the feat-simd branch September 23, 2021 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant