lhutton1 commented on PR #104:
URL: https://github.com/apache/tvm-rfcs/pull/104#issuecomment-1881431496

   A change that has not yet been included in the prototype was the predicate 
representation on buffer loads/stores in TVMScript programs. This was briefly 
referenced in the RFC: 
https://github.com/apache/tvm-rfcs/pull/104/files#diff-6724c2a24eb34f7094b4ff2e8562f7812e6e22c8197f51792f4b5cdfa811fec4R214.
   
   So far we have explored the following options:
   ```
   1. A[i:i+4, predicate=T.get_active_lane_mask(0, 4)]
   ```
   In python, keyword arguments within subscripts are not supported. Without a 
keyword argument, e.g. `[i:i+4, T.get_active_lane_mask(0, 4)]`, it wouldn't be 
easy to tell (when reading the TVMScript) if the last argument refers to 
another dimension of the buffer or a predicate.
   
   ```
   2. A[i:i+4](predicate=T.get_active_lane_mask(0, 4))
   ```
   When this approach is used to represent a buffer store (the expression is to 
the left of an assignment), it creates invalid python code: "cannot assign to a 
function call".
   
   ```
   3. A(predicate=T.get_active_lane_mask(0, 4))[i:i+4]
   ```
   This is the only syntactically valid approach. However, the predicate is now 
associated with the buffer itself, as opposed to the buffer load/store.
   
   I'm curious to hear from folks more familiar with TVMScript if there are any 
other options we've not considered?


-- 
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