Hey,
Take this with a grain of salt since I am not an official voice of the people who developed those things. The `compute` should be to register the naive/non-optimize/non-hwdependent computation rule of a Relay operator. You can think about it as a golden reference. Now, there can be many algorithmic implementations of this computation especially for different HW backends. These different implementations are normally called `schedules` and all `schedules` were gathered into TOPI. At least to my understanding, a `strategy` is something somewhat more higher order than a `schedule` but its still describes and implementation variant of a `compute`. There could be moments when given the parameters of the operator and your HW, you can already decide on an algorithmic `strategy` and tune (or used an already optimized schedule) of the appropriate strategy. If I had to give an example (warning I am not sure it's like this in the repo): * Compute == the naive conv2d implementation * Strategy == {winograd, direct convolution, im2col transformation} * although all of these will give the same nummerical value, they have considerable difference in their implementations * Schedule == {winograd({target_0, target_1}), direct convolution({target_0,...,target_n-1}), im2col({target_3, target_n})} * as you can see not all targets have `schedule` (template) implementations for each of the different `strategies` Hope this helps --- [Visit Topic](https://discuss.tvm.apache.org/t/hi-does-anyone-know-the-difference-between-reg-register-strategy-and-reg-register-compute/11452/2) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/2779ae8e817fa2d924c3e26383310101da17e1baab02937f412499ec10308dfc).