Replies: 1 comment
-
Q: If the output of bar is assigned no value tag, why is the following legal?
A: The return values of value and scheduling funclets don't necessarily match one-for-one. A scheduling funclet can return whatever it wants as long as it doesn't tag those outputs. For example, a scheduling funclet could return a supplementary data structure that informs some calculation in its callee scheduling funclet, even if the value function has no such data structure. On the other hand, suppose you wrote
and implement a schedule for
This should fail typechecking. The problem is that the value funclet The confusing part is the coordinator-Caiman boundary since there isn't a distinction between value-funclet-output-tagged return values and untagged scheduling-funclet-only return values. |
Beta Was this translation helpful? Give feedback.
-
A bunch of questions I've asked and received answers to, hopefully this will be useful to others. Answers might not be up-to-date. Please correct any mistakes I made, I probably misremembered some of these answers -- my fault for not writing them down sooner!
Q: Do value functions reference value funclets or scheduling funclets? Or is it like the pipeline entry point, where it can reference either, and value funclets are explicated as necessary?
Q: Why do we see "submit->encode fence->sync" in schedules? Shouldn't fence encoding occur before submission?
Q: Follow-up: Would "encode fence->submit->sync" work as well?
Q: What's the "return value" of
encode-do-*
in CAIR?Q: What's the "return value" of
submit-*
in CAIR?Q: What's the "hierarchy" of funclets?
Q: How come some examples encode CPU external function execution on the local queue? Couldn't the local queue theoretically be on the GPU?
Q: Why can't you submit or sync on the local queue?
Q: Why does
AllocTemporary
need to know the corresponding value funclet node? What do you do if you want to "replicate" the same logical value in multiple physical locations; for example, copy a value from the CPU to the GPU?Q: Why can I return a slot that was created via
AllocTemporary
? Temporaries can't leave their scope.Beta Was this translation helpful? Give feedback.
All reactions