tqchen edited a comment on pull request #9848:
URL: https://github.com/apache/tvm/pull/9848#issuecomment-1018622458


   Thanks @electriclilies  let me try to dissect what you said:
   
   -  C0: Right now device propagation is not fully completed(through 
WithFields or other mechanisms), as a result funcion->body may not be property 
setup with the right device choice.
   - C1: There might be a need to properly annotate the return device type of 
function, which then can be used to inform, or enforce the planning of 
functions.
   
   Note that C0 and C1 are slightly different. I believe you are talking about 
C0, but seems there is also a slightly indication of C1(which will indeed imply 
storing something on the function node(e.g. like the annotation of return type) 
).
   
   In a fully heterogenous setting, the input and return value's device might 
be different. In such cases, "execute on" can become ambiguous and differ from 
the "result of return value". The current change proposes to use 
`fn->virtual_device()` as the result of return value. It might be good to 
document this choice in FunctionNode(or virtual_device member function) and 
revisit once device propagation is fully compeled. As the data structure is the 
common exchange among different passes and what pass writer will refer to for 
semantics informaton.
   
   These are high-level discussions for your information and hope that they 
will help clarifying the semantics of virtual device field. They are not asks 
about specific kind of implementation. So feel free to take the information and 
make a call, while documenting the rationales that might help future refactors.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to