YeeZ-Privacy-Computing icon indicating copy to clipboard operation
YeeZ-Privacy-Computing copied to clipboard

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

Open weixiao-zhan opened this issue 1 year ago • 3 comments

当前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的下游算子。

weixiao-zhan avatar Aug 14 '23 11:08 weixiao-zhan