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

Simplify the introduction #694

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Pennycook
Copy link
Contributor

The changes in this commit aim to simplify the introduction, by:

  • Simplifying complex sentences;
  • Removing (most) statements that do not apply to all implementations;
  • Consolidating references to C++, OpenCL, etc to avoid repetition; and
  • Highlighting the key features of SYCL with shorter bullet points.

The result is a significantly shorter introduction (300 words vs 1200 words) that succinctly summarizes what SYCL is and why developers should use it.


Some of the changes I've made here might be a little bit contentious, so I want to provide a little more insight into how I decided what to cut and what to keep.

First, I wrote out a list of questions that I think a reader would hope to be able to answer by reading the introduction. (You can see these questions as comments in the AsciiDoc). Then I reordered all the paragraphs in the existing introduction under those headings, and it became apparent that there was quite a lot of repetition around alignment with C++, access to low-level OpenCL features, etc. So I tried to collapse all of that together.

Second, I took out (almost) everything that described how SYCL implementations work. I convinced myself a lot of this was outdated and probably didn't apply to most implementations. For example, there were claims that it is always possible to use SYCL with arbitrary host compilers and/or without special linkers. I made an exception for a statement that SYCL implementations could choose to be implemented on top of nothing but standard C++, because I think that highlights an interesting aspect of SYCL's design philosophy.

Third, I tried to boil everything down to the really important points, inspired by the introduction to the OpenCL specification. We've got the rest of the specification to explain how features like buffers work, and I think it makes more sense to just point interested readers to the relevant sections.

The changes in this commit aim to simplify the introduction, by:

- Simplifying complex sentences;
- Removing (most) statements that do not apply to all implementations;
- Consolidating references to C++, OpenCL, etc to avoid repetition; and
- Highlighting the key features of SYCL with shorter bullet points.

The result is a significantly shorter introduction (300 words vs 1200 words)
that succinctly summarizes what SYCL is and why developers should use it.
@Pennycook Pennycook added the editorial Some purely editorial problem label Jan 23, 2025
@Pennycook Pennycook requested a review from gmlueck January 23, 2025 14:30
@jbrodman
Copy link
Contributor

I think this is a very nice simplification. It is clear and to the point.

@tomdeakin tomdeakin removed the editorial Some purely editorial problem label Jan 23, 2025
@tomdeakin
Copy link
Contributor

Quick review on this please.

Copy link
Contributor

@tomdeakin tomdeakin left a comment

Choose a reason for hiding this comment

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

LGTM, just one potential nitpick.

// How does SYCL relate to C++?
SYCL is designed to be as close to standard {cpp} as possible, and some
implementations of SYCL may be able to use a standard {cpp} compiler to target
CPU architectures.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
CPU architectures.
CPU devices.

Copy link
Contributor

Choose a reason for hiding this comment

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

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.

4 participants