Open mhoemmen opened 1 year ago
FYI, TBB can be built and installed from scratch using the following repo: https://github.com/oneapi-src/oneTBB . @amklinv-nnl tested with GCC 13 and it still requires TBB for parallel algorithms to compile, alas.
@amklinv-nnl Christian Trott explained offline how specializations for different policies work.
*_is_avail
.execpolicy_mapper
to map from std::execution::parallel_policy
to a built-in policy (e.g., impl::some_happy_parallel_policy
). Then, overload matrix_vector_product
to take impl::some_happy_parallel_policy
.I don't have time to try this at the moment, but it sounds like this should fix the recursion issue (because users wouldn't ever pass in one of the internal execution policies).
@crtrott @dalg24
@amklinv-nnl has been working on parallel specialization of stdblas algorithms. The two of us tried to specialize
matrix_vector_product
forstd::execution::parallel_policy
, but keep getting run-time recursion. We're guessing that the compiler thinks the genericExecutionPolicy&&
overload is "more specialized."The test lives in
tests/native/gemv_no_ambig.cpp
. We're building using the following CMake options:Please don't merge this branch, btw; it will almost certainly conflict with other PRs.