当前split算子会在内部为每一个下游算子生成一个rawdata实现的缓存队列,但是rawdata与split之间的数据流是通过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的下游算子。