Skip to content

Add Overview #1

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

Merged
merged 8 commits into from
Oct 7, 2021
Merged

Add Overview #1

merged 8 commits into from
Oct 7, 2021

Conversation

rossberg
Copy link
Member

@rossberg rossberg commented Oct 5, 2021

With some delay, this is a proposal repo for language profiles, as discussed at the 2021-03-02 meeting.

@rossberg rossberg requested a review from lukewagner October 5, 2021 10:59
@rossberg
Copy link
Member Author

rossberg commented Oct 5, 2021

With some delay, this is a proposal repo for language profiles, as discussed at the 2021-03-02 meeting.

@sunfishcode
Copy link
Member

Overall, this looks like a useful direction, thanks for putting this together!

One question I have is about whether modules should have a way of depending on a particular profile. For example, some floating-point algorithms depend on a true fma, and the nondeterministic qfma proposed in the relaxed-simd proposal would not be reliable. The deterministic profile might restrict qfma to deterministically behave like true fma, however would applications that need a true fma have a way of depending on that? Or, should we propose a separate true-fma instruction, so that applications that need to depend on it can do so?

@rossberg
Copy link
Member Author

rossberg commented Oct 6, 2021

@sunfishcode:

One question I have is about whether modules should have a way of depending on a particular profile. For example, some floating-point algorithms depend on a true fma, and the nondeterministic qfma proposed in the relaxed-simd proposal would not be reliable. The deterministic profile might restrict qfma to deterministically behave like true fma, however would applications that need a true fma have a way of depending on that? Or, should we propose a separate true-fma instruction, so that applications that need to depend on it can do so?

Hm, interesting question. I think the latter.

Generally, a producer should not (have to) depend on certain behaviours being absent in a profile. They should view profiles as possible restrictions to cope with, not as guarantees to depend on. Although we cannot enforce this view, we should still enable it.

But I believe that this question can actually be answered independently of profiles. Profiles are chosen globally by an ecosystem, not by an individual producer. If producers have, say, a programmatic need for true fma as you describe, then why would that need only arise in deterministic ecosystems? That's unlikely, so any solution should be applicable in an unrestricted environment with "full" profile as well. That suggests that the full language should have two different instructions.

Copy link
Member

@lukewagner lukewagner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, looks great; this seems valuable.

@rossberg rossberg merged commit 2573d42 into main Oct 7, 2021
@rossberg rossberg deleted the overview branch October 7, 2021 06:03
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

Successfully merging this pull request may close these issues.

3 participants