masahi commented on PR #13532:
URL: https://github.com/apache/tvm/pull/13532#issuecomment-1353715208
Turns out, for winograd fp16, the issue was due to the following `cse_vars`
```
let cse_var_11 = (0h*2h)
let cse_var_10 = (0h*2.5h)
let cse_var_9 = (0h*1h)
let cse_var_8 = (0h*1.5h)
let cse_var_7 = (0h*0h)
let cse_var_6 = (0h*0.5h)
let cse_var_5 = (0h*-2h)
let cse_var_4 = (0h*-2.5h)
let cse_var_3 = (0h*-1h)
let cse_var_2 = (0h*-1.5h)
let cse_var_1 = (0h*-0.5h)
```
which are used by two kernels in winograd, so they are computed on the host
once and passed to the winograd kernels via `SplitHostDevice`. I'm going to
update the arithmetic simplifier to remove such useless much (surprised it
doesn't do it already).
@AndrewZhaoLuo I wonder, for layer_norm what variables are being passed
between two kernels? Useless variables like above or something meaningful?
--
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]