Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phase 3 presentation feedback #71

Closed
ngzhian opened this issue Apr 14, 2022 · 0 comments
Closed

Phase 3 presentation feedback #71

ngzhian opened this issue Apr 14, 2022 · 0 comments

Comments

@ngzhian
Copy link
Member

ngzhian commented Apr 14, 2022

I presented about our progress at the 2022-04-12 CG meeting, and successfully polled to advance to phase 3. This issue tracks feedback from the CG. The key feedback is about the correlation between the cases of an instruction.

CG suggested loosening the correlation between cases, e.g.
Screen Shot 2022-04-14 at 11 14 04 AM
Currently, an implementation will have to pick one column for all the cases, and the column must be the same for all cases. This might be too strict, and may be difficult to maintain this correlation when performing optimizations in the toolchain.

Besides, the behavior of such "corner cases" shouldn't be relied on by users, by requiring such correlation, there is a higher risk of people relying on such detection patterns (which already exists).

The suggestion is that for each of the cases (i.e. each row in the relaxed_min above), it is not specified that you always get the same column. Treat the results as sets return of the elements in the set. Essentially, the result is now non-deterministic, rather than implementation-defined.

I noted that we originally specified such a fixed projection to ensure that 2 consecutive instructions with the same input should return the same result. This is important for instructions like Relaxed FMA. E.g. an algorithm would use Relaxed FMA with special inputs to determine if is fused or not. At the time of presentation, I had no concrete example, but Marat has one (https://hal.inria.fr/inria-00000895/document look for Fast2Mult).

I suggest that we word it such that implementations have to pick one column for each of the listed cases, but it not be the same column for each case. This removes the correlation between cases (like in min/max), but preserves the property that a FMA is always fused or always not fused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant