volesti
volesti copied to clipboard
Use of SIMD computation in CRHMC walk
Expanding on PR #239 we use the SIMD capabilities of PackedCSparse and present a vectorized CRHMC walk. This way we can have speed up on medium to large datasets, depending on the systems architecture. Changes from #239 :
- Changes in CRHMC walk instead of using
n-dimensional vectors we usen * simd_len-dimensional matrices. In this way we do simd_len parallel CRHMC walks without spawning additional threads. - Changes in testing and benchmarking files to test the behavior of the added code.
Codecov Report
Merging #245 (03a08c5) into develop (074a562) will decrease coverage by
0.15%. The diff coverage is47.48%.
:exclamation: Current head 03a08c5 differs from pull request most recent head 1c03920. Consider uploading reports for the commit 1c03920 to get more accurate results
Additional details and impacted files
@@ Coverage Diff @@
## develop #245 +/- ##
===========================================
- Coverage 54.67% 54.52% -0.15%
===========================================
Files 107 106 -1
Lines 6337 6369 +32
Branches 2942 2958 +16
===========================================
+ Hits 3465 3473 +8
+ Misses 962 958 -4
- Partials 1910 1938 +28
| Files | Coverage Δ | |
|---|---|---|
| include/preprocess/crhmc/opts.h | 0.00% <ø> (ø) |
|
| include/ode_solvers/oracle_functors.hpp | 28.57% <50.00%> (ø) |
|
| include/preprocess/crhmc/crhmc_input.h | 80.43% <86.66%> (+4.67%) |
:arrow_up: |
| include/preprocess/crhmc/analytic_center.h | 28.20% <25.00%> (+4.82%) |
:arrow_up: |
| ...random_walks/crhmc/additional_units/auto_tuner.hpp | 53.33% <25.00%> (+6.66%) |
:arrow_up: |
| include/preprocess/crhmc/lewis_center.h | 20.93% <0.00%> (+0.93%) |
:arrow_up: |
| include/preprocess/crhmc/two_sided_barrier.h | 60.93% <84.00%> (+24.93%) |
:arrow_up: |
| include/sampling/random_point_generators.hpp | 72.22% <75.00%> (+2.22%) |
:arrow_up: |
| include/ode_solvers/implicit_midpoint.hpp | 58.33% <37.50%> (+0.70%) |
:arrow_up: |
| ...lude/preprocess/crhmc/weighted_two_sided_barrier.h | 60.00% <71.42%> (+5.00%) |
:arrow_up: |
| ... and 9 more |
@iakoviid there are some issues still in CI tests (most probably new). There is one SEGFAULT with clang-12 and an error in R tests in windows (where some psrf is NaN). Could you please check?
I'm closing this PR since it is included in https://github.com/GeomScale/volesti/pull/286