Skip to content

hpda::processor::split 的实现不符合HPDA文档中三种状态转移的抽象 #18

@weixiao-zhan

Description

@weixiao-zhan

当前split算子会在内部为每一个下游算子生成一个rawdata实现的缓存队列,但是rawdatasplit之间的数据流是通过push操作,即rawdata.add_data实现的。该数据流不被hpda::engine所知。
所以在hpda::engine的视角,split算子是计算图的一个输出算子,rawdata实现的缓存队列们是计算图的extractor。

对于copy split,虽然实现不符合HPDA文档的状态转移,但是不会导致调度错误
对于从hpda::processor::split衍生的hash split算子,则会有问题:由于hash split不一定能立刻给栈顶的rawdata产生输出,hpda::engine会误以为栈顶的rawdata算子已经达到终止状态,从而不在唤醒该缓存及其下游算子,导致一些数据不会流过hash split的下游算子。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions