You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment, each Op is passed a datum and one or more keys to broadcast along with the data. However, the new ttg::broadcast allows broadcasting to multiple output terminals, resulting in Ops connected to each output terminal broadcasting individually. In POTRF, that means that we're sending the same data up to three times (from TRSM to SYRK and to two instances of GEMM).
I propose a new entity that sits on top of the output terminals and broadcasts the data first to each relevant process and from there to each Op. That requires the following additions:
Output terminals have to provide key-process-mapping and the op_id from the Op to the broadcast entity (extension to interface between ttg::Out and the Op).
Backends that support distributed execution have to expose either a broadcasting capability (could use PaRSEC's broadcast API for that) with callbacks back into the broadcast entity at the targets or an AM layer to implement broadcasts manually.
This can be made optional such that at compile-time we decide whether to use the centralized broadcast or not, depending on whether the backend provides what we need. If not, we fall back to what we have today.
The text was updated successfully, but these errors were encountered:
At the moment, each Op is passed a datum and one or more keys to broadcast along with the data. However, the new
ttg::broadcast
allows broadcasting to multiple output terminals, resulting in Ops connected to each output terminal broadcasting individually. In POTRF, that means that we're sending the same data up to three times (from TRSM to SYRK and to two instances of GEMM).I propose a new entity that sits on top of the output terminals and broadcasts the data first to each relevant process and from there to each Op. That requires the following additions:
ttg::Out
and the Op).The text was updated successfully, but these errors were encountered: