-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
Hi Sir Tan @tancheng ~ I fully manually verified the whole compiled gemv kernel and figure out the problem of PHI_START and PHI_CONST mentioned before.
First we define the two clearly.
PHI_START: in first run, it chooses src0 and does not consume src1. In others, it consumes both and chooses according to the predicates. predicates can be both F (output value is arbitary) or one T one F (normal). Both T is not allowed.
PHI_CONST: in first run, it chooses src0 and does not consume src1. In others, it consumes both and always choose src1.
- It seems by now all the generated
PHI_XarePHI_STARTin literal. - Some of the
PHI_Xcan bePHI_CONST(eg. the leftmost node on the graph below), but according to my observation, these positions could also bePHI_START, since src0's predicates are always guaranteed byGRANT_ONCE. I am quite not sure about that,but I did not think of a counter example.
FYI, I paste a verified fully-annotated DFG of gemv here. It shows all the nodes' function in this kernel. They are manually verifed.
Thanks @ShangkunLi for sync with me~
Reactions are currently unavailable
Metadata
Metadata
Labels
No labels