xflouris / libpll

Phylogenetic Likelihood Library
GNU Affero General Public License v3.0
26 stars 6 forks source link

AVX vectorization of likelihood derivatives #61

Closed ddarriba closed 6 years ago

ddarriba commented 8 years ago

Implement the AVX version of update_sumtable and compute_likelihood_derivatives

ddarriba commented 8 years ago

Sumtable (inner-inner) vectorized in experimental branch

amkozlov commented 8 years ago

Vectorized sumtable (tip-inner) and derivative computation: https://github.com/xflouris/libpll/commit/3035dd1842e6bde3f368691436aa4ce4c8e77484

There is still room for improvement, but even current version together with removal of unneeded log()s (https://github.com/xflouris/libpll/commit/c0f1cb018322028e171cc72a80a7fc482d9337d3) yields > 2x speedup in my tree search tests (DNA data).

xflouris commented 8 years ago

@amkozlov : nice job. A gentle reminder though to follow the project coding rules:

https://github.com/xflouris/libpll/wiki/Contributing-to-libpll

particularly the 80 character long lines. I understand you may not like them, but it's a collaborative project.

amkozlov commented 8 years ago

@xflouris: Fixed.

particularly the 80 character long lines. I understand you may not like them

That's true, especially functions with intrinsics are long&ugly enough as they are :)

xflouris commented 8 years ago

thanks alexey :)

ddarriba commented 7 years ago

Note: Verify for 'odd' number of states (e.g., 5)

xflouris commented 7 years ago

@ddarriba : when you get time, can you extend the odd-states/derivative tests with the following two cases?

amkozlov commented 7 years ago

@ddarriba: thanks, this is fixed now. The new version (my last commit) is also significantly faster.

ddarriba commented 7 years ago

I already have the one with odd states. I created it for checking where did an error in the modules repository come from. I will add both new tests together tomorrow.

On 03.08.2016 18:25, Tomas Flouri wrote:

@ddarriba https://github.com/ddarriba : when you get time, can you extend the odd-states/derivative tests with the following two cases?

  • a case where an odd number of states /and/ invariant sites are used together (we had a bug that was not found by the tests)
  • derivatives with odd states (the bug you found was not detected by the tests)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/xflouris/libpll/issues/61#issuecomment-237270211, or mute the thread https://github.com/notifications/unsubscribe-auth/AC_YcXVHobP9-WRFUR4FjAyRj0SHNv8mks5qcMEKgaJpZM4Hc7Rf.

Dr. Diego Darriba Phone: +49-6221-533-292 Fax: +49-6221-533-298

E-Mail: Diego.Darriba@h-its.org

HITS gGmbH Schloss-Wolfsbrunnenweg 35 D-69118 Heidelberg

Amtsgericht Mannheim / HRB 337446 Managing Director: Dr. Gesa Schönberger Scientific Director: Prof. Dr. Rebecca Wade

amkozlov commented 7 years ago

Can we close this one or is there something still missing?