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

Make scale work for std::execution::par #257

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Commits on Jun 24, 2023

  1. Add LINALG_ENABLE_TBB CMake option

    Document option in README.md.
    mhoemmen committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    22df996 View commit details
    Browse the repository at this point in the history
  2. Replace MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES

    ... macro with LINALG_HAS_EXECUTION.
    In the next commit, we'll conditionally define it
    in a common place.
    mhoemmen committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    83be96d View commit details
    Browse the repository at this point in the history
  3. Conditionally define LINALG_HAS_EXECUTION in macros.hpp

    Make sure that LINALG_ENABLE_TBB is defined as a macro,
    if set as a CMake option.  It's conditionally defined
    in the generated header file linalg_config.h
    (which already exists and conditionally defines other macros).
    
    Also, make sure that macros.hpp includes the generated
    header file linalg_config.h.
    Given that linalg_config.h already had macros defined in it,
    other stdBLAS headers really should have been including it.
    mhoemmen committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    1312fdd View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

  1. Check return type of execpolicy_mapper

    Customization point execpolicy_mapper remains the same,
    but algorithms now use it in a wrapper that checks the return type,
    to ensure that infinite recursion errors are checked at compile time.
    
    Also, fix <execution> header include guard.
    mhoemmen committed Jun 29, 2023
    Configuration menu
    Copy the full SHA
    6106d5e View commit details
    Browse the repository at this point in the history
  2. Make scale(std::execution::par, ...) work

    Use ranges (views::iota, optionally also views::cartesian_product)
    to make the algorithm work for any mdspan with unique layout.
    mhoemmen committed Jun 29, 2023
    Configuration menu
    Copy the full SHA
    09998e6 View commit details
    Browse the repository at this point in the history