[SOLVED] Can not Understand One VTA Runtime Code, is that a typo?


#1

Hi There,

As following VTA runtime.cc::DepPush shown , there is a logic to check ‘to’ value, and seems like that CHECK would always be true whatever the input, is that a typo? , could I know what is the expecting logic here?

void DepPop(int from, int to) {

>>>517 CHECK(to != kLoadStage || to != kComputeStage);
}

@tqchen


#2

@hijang I think this is a bug indeed, the check should make sure that we don’t introduce an illegal dependence. The illegal dependence include kLoadStage -> kStoreStage and kStoreStage -> kLoadStage.


#3

@thierry, thanks for the explain, yes that make sense, for original kLoadStage and kComputeStage case either 2 to 1 or 1 to should be correct and that make me confuse, if that is kStoreStage to kLoadStage for sure that is a illegal dependence and should get check.
about this bug, do you want me to file a PR for fix?


#4

yes, feel free to create a PR for this fix