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

Ttg device support master coro - util/device.h #5

Open
wants to merge 93 commits into
base: ttg-device-support-master-coro
Choose a base branch
from

Commits on Oct 14, 2022

  1. Mock of ttg::make_device_tt and views

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 14, 2022
    Configuration menu
    Copy the full SHA
    a5c5ba7 View commit details
    Browse the repository at this point in the history
  2. Add new header to CMake files

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 14, 2022
    Configuration menu
    Copy the full SHA
    dad4a6c View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2022

  1. Add device_mock example to compile the ttg device mock API

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    977048d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b86f1b0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    834f5f2 View commit details
    Browse the repository at this point in the history
  4. [example/device_mock] cleanup

    evaleev committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    cb9b74f View commit details
    Browse the repository at this point in the history
  5. Partial implementation of ttg::make_device_tt

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    775a5db View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2022

  1. Merge branch 'master' into ttg-device-support-master

    # Conflicts:
    #	examples/CMakeLists.txt
    evaleev committed Oct 25, 2022
    Configuration menu
    Copy the full SHA
    7d9ed91 View commit details
    Browse the repository at this point in the history
  2. fixup span.h for when using c++20

    (cherry picked from commit 8147ac0)
    evaleev committed Oct 25, 2022
    Configuration menu
    Copy the full SHA
    aa77974 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2022

  1. Configuration menu
    Copy the full SHA
    a24eadc View commit details
    Browse the repository at this point in the history
  2. Encapsulate callables passed to make_device_tt mock in a regular task

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    5e49bd2 View commit details
    Browse the repository at this point in the history
  3. Use the new multiindex key type in device mock example

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    efaa252 View commit details
    Browse the repository at this point in the history
  4. Remove superfluous todos

    The views on the device will be handled by the backend, not in ttg::make_view
    
    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    ed01b32 View commit details
    Browse the repository at this point in the history
  5. Provide a scope for views and replace ttg::span with ttg::ViewSpan

    [ttg|std]::span is not a good fit because it carries a size template
    argument that we don't care about but makes handling more difficult.
    Plus, we need to encode the scope for each span.
    
    Three scopes are available:
    1) SyncIn: copy host data to device before invoking the kernel callable.
    2) SyncOut: copy the device data back to the host before invoking the output callable.
    3) Allocate: allocate but do not synchronize in or out.
    
    Both SyncIn and SyncOut will allocate sufficient memory on the device.
    
    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    097d653 View commit details
    Browse the repository at this point in the history
  6. Add missing view include in madness backend

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    9a6251b View commit details
    Browse the repository at this point in the history
  7. Rename CUDA precompile guards:

    - TTG_HAVE_CUDA enables CUDA support: synchronizing the stream between
      the kernel call and the output call.
    - TTG_USE_CUDA_PREFETCH enables support for prefetching based on the view scope.
    
    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    339f296 View commit details
    Browse the repository at this point in the history
  8. Remove noexcept from from default View ctor

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    2100f17 View commit details
    Browse the repository at this point in the history
  9. Add missing terminal name in mock device example

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 26, 2022
    Configuration menu
    Copy the full SHA
    8e6b6ff View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. Add a fence to the mock device test to make the termdet happy

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    8d19b20 View commit details
    Browse the repository at this point in the history
  2. Add iovec.h to list of installed files.

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    0fac7e5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    293fe68 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1fda791 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2022

  1. Configuration menu
    Copy the full SHA
    781c5f5 View commit details
    Browse the repository at this point in the history
  2. avoid infinite recursion in ttg::{set_size,finalize}<i> that do not t…

    …ake outterm as an argument
    evaleev committed Oct 28, 2022
    Configuration menu
    Copy the full SHA
    0b1f136 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. ttg_parsec::TT::static_op{,_noarg} return parsec_hook_return_t in pre…

    …paration for suspendable tasks
    evaleev committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    75a2fce View commit details
    Browse the repository at this point in the history
  2. cleanup

    evaleev committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    ca4ab38 View commit details
    Browse the repository at this point in the history
  3. find <coroutine>

    evaleev committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    a5ae409 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0da8a01 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    35277bc View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9f6f581 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    199ef88 View commit details
    Browse the repository at this point in the history
  8. bump BTAS tag to support gcc 10 with -std=c++20, it seemingly provide…

    …s __cplusplus < 202002L
    evaleev committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    acdde42 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    83839fe View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    2084d4a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    4f9ef86 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Configuration menu
    Copy the full SHA
    35c333a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ebfe2be View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2022

  1. Configuration menu
    Copy the full SHA
    0f67a99 View commit details
    Browse the repository at this point in the history
  2. fixup

    evaleev committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    3f8c6a7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2331f57 View commit details
    Browse the repository at this point in the history
  4. return type propagated further up the call stack to allow proper supp…

    …ort for coroutines
    
    also plan to support functions that do `return std::pair(key,value);` or `return value` (no key) or `return std::tuple{key};` instead of send
    evaleev committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    5ea00ac View commit details
    Browse the repository at this point in the history
  5. ttg_parsec::TT::static_op now receives nonnull ptr to the coroutine s…

    …tate, if it suspended, ready to implement logic for dealing with suspended coroutines
    evaleev committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    cc2971d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e39e25d View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2022

  1. parsec reruns suspended tasks successfully

    the only missing piece now is event monitoring and resubmission by the worker threads
    evaleev committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    33b7d67 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6ac6d02 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2022

  1. cleanup + annotation of of the coroutine classes + cleanup of the PaR…

    …SEC implementation
    
    - introduced ttg::coroutine_handle<> = TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle<resumable_task_state>
    - tested custom new/delete for coroutines, works but commented out; added notes sketching out the interaction with the runtime that will allow heap-free operation
    - parsec impl is back to optimal for ordinary function ops; coroutine-based TT::op() returns coroutine_handle instead of ptr to resumable_task_state
    evaleev committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    84205cd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    41c79df View commit details
    Browse the repository at this point in the history
  3. adapted madness backend to do same (incomplete) handling of coroutine…

    …s as in parsec. enough for proof of concept.
    
    - fibonacci-coro is the only working example, with dummy events that get cleared manually, etc. ...
    evaleev committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    ac475f3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e6a1a0a View commit details
    Browse the repository at this point in the history
  5. [cmake] fixup

    evaleev committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    d3769bf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a9a1a55 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. Configuration menu
    Copy the full SHA
    482ee2f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    583a912 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3c9c029 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    df75b3e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0a027fe View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bdcb6f8 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2f68385 View commit details
    Browse the repository at this point in the history
  8. [cmake] when checking for std coroutine header try without and with -…

    …std flags to try to enable c++20
    evaleev committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    458132e View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. [cmake] when compiling std coroutine example try without and with -st…

    …d flags to try to enable c++20
    evaleev committed Nov 9, 2022
    Configuration menu
    Copy the full SHA
    7a3fba8 View commit details
    Browse the repository at this point in the history
  2. [cmake] do not do separate header and compile checks for coroutine do…

    …es not work (headers may be present but not usable, etc.)
    evaleev committed Nov 9, 2022
    Configuration menu
    Copy the full SHA
    82b9a0f View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2022

  1. Merge pull request #4 from TESSEorg/ttg-device-support-coro

    proof-of-concept support for coroutines
    devreal authored Nov 10, 2022
    Configuration menu
    Copy the full SHA
    f6d80e8 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2022

  1. [cmake] bump PaRSEC tag to pull in TESSEorg/parsec#18 so that Debug C…

    …I jobs pass (fingers crossed)
    evaleev committed Nov 12, 2022
    Configuration menu
    Copy the full SHA
    c2b590b View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2023

  1. Remove device_mock from test executables

    It's using the old interface that will eventually be removed again...
    
    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 10, 2023
    Configuration menu
    Copy the full SHA
    e835805 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2023

  1. Initial implementation of coroutine-based device support with PaRSEC

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 24, 2023
    Configuration menu
    Copy the full SHA
    cb1ad14 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2023

  1. Compiler fixes

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 25, 2023
    Configuration menu
    Copy the full SHA
    0897f9c View commit details
    Browse the repository at this point in the history
  2. Add device_coro.cc test file

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 25, 2023
    Configuration menu
    Copy the full SHA
    945595e View commit details
    Browse the repository at this point in the history
  3. Switch to a Thomas' branch that is close to PaRSEC master

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 25, 2023
    Configuration menu
    Copy the full SHA
    7dfe4ea View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2023

  1. Configuration menu
    Copy the full SHA
    c203dac View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2023

  1. Some more device coroutine examples

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    987e98c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f3544fb View commit details
    Browse the repository at this point in the history
  3. Update to appropriate version of parsec; use arrays of chars to store…

    … the key in the profiling info under the parsec driver
    therault authored and devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    7ab4a1e View commit details
    Browse the repository at this point in the history
  4. Up to latest parsec version

    therault authored and devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    ce71227 View commit details
    Browse the repository at this point in the history
  5. Update to latest parsec version

    therault authored and devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    5cf5388 View commit details
    Browse the repository at this point in the history
  6. Porting over PaRSEC master: addto_nb_pa has been renamed and tasks de…

    …fine a core mask, not a core id
    therault authored and devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    58603aa View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a7388f4 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6292ab5 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6eaa97d View commit details
    Browse the repository at this point in the history
  10. Use Thomas's github for the patched parsec branch

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    ce07798 View commit details
    Browse the repository at this point in the history
  11. Make device coro tasks actually compile

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Jan 27, 2023
    Configuration menu
    Copy the full SHA
    62c1113 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2023

  1. Many fixes to coro-based device tasks

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Feb 1, 2023
    Configuration menu
    Copy the full SHA
    45183ce View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2023

  1. Configuration menu
    Copy the full SHA
    a51b130 View commit details
    Browse the repository at this point in the history
  2. Clean up code from ttg::meta::is_detected debugging

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Feb 3, 2023
    Configuration menu
    Copy the full SHA
    9d3d975 View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2023

  1. Implement ttg::buffer and ttg::devicescratch in the PaRSEC backend

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Feb 27, 2023
    Configuration menu
    Copy the full SHA
    522967a View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2023

  1. Support for moving between device and host tasks, much more

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    98a7a89 View commit details
    Browse the repository at this point in the history
  2. get_ptr is not an awaitable operation

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    e07ebe5 View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2023

  1. Configuration menu
    Copy the full SHA
    2a0e47f View commit details
    Browse the repository at this point in the history
  2. Fix msg header ctor and non-device tasks

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Mar 9, 2023
    Configuration menu
    Copy the full SHA
    de259c2 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2023

  1. Expose a backend allocator for the devices

    Refactor allocator API to be more object-oriented
    therault committed Mar 15, 2023
    Configuration menu
    Copy the full SHA
    7a08f07 View commit details
    Browse the repository at this point in the history
  2. Draft for sending out of a device task

    Signed-off-by: Joseph Schuchart <[email protected]>
    devreal committed Mar 15, 2023
    Configuration menu
    Copy the full SHA
    63b889c View commit details
    Browse the repository at this point in the history
  3. Expose a backend allocator for the devices

    Refactor allocator API to be more object-oriented
    therault committed Mar 15, 2023
    Configuration menu
    Copy the full SHA
    1bb638f View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2023

  1. conflict during merge

    therault committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    035406e View commit details
    Browse the repository at this point in the history
  2. Fix conflict during pull

    therault committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    ab8184f View commit details
    Browse the repository at this point in the history