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

Clarify the meaning of different device types #727

Merged
merged 3 commits into from
Feb 20, 2025

Conversation

Pennycook
Copy link
Contributor

The description of what constitutes a CPU or GPU has always been unclear.

This commit adjusts these descriptions to clarify that it is ultimately up to the implementation to decide whether a device is identified as a specific device type. It also attempts to separate normative behaviors (like the connection between device type aspects and info::device_type) from non-normative descriptions of what a device type may mean.

Closes #7, closes #545.

The description of what constitutes a CPU or GPU has always been unclear.

This commit adjusts these descriptions to clarify that it is ultimately up to
the implementation to decide whether a device is identified as a specific
device type. It also attempts to separate normative behaviors (like the
connection between device type aspects and info::device_type) from
non-normative descriptions of what a device type may mean.
@Pennycook Pennycook added the editorial Some purely editorial problem label Feb 14, 2025
@TApplencourt
Copy link
Contributor

Amazing, thanks a lot! I wanted to make those kinds of changes but didn't know how to tackle them. They look nice!

Indicates that this device identfies itself as a CPU, and has device type

Typos, Should be identifies.

PS: I will not make any joke about using self-affirming terminology on the SYCL Spec...

@Pennycook
Copy link
Contributor Author

Typos, Should be identifies.

Good catch, thanks!

PS: I will not make any joke about using self-affirming terminology on the SYCL Spec...

Since you brought it up... I did wonder if this wording could be problematic, because somebody might think we're trying to make a joke. Maybe:

Indicates that the implementation identifies this device as a CPU, and has device type [api]#info::device_type::cpu#.

...would be better? It's arguably more accurate, too, since different implementations may choose to represent the same device in different ways. I'll make that change.

The previous wording could be read in a way that implied the (hardware) device
could somehow declare what its device type should be, which is misleading. It
is more accurate to say that the implementation identifies the device as a
specific type, since different implementations may choose to identify the same
piece of hardware differently.
@TApplencourt
Copy link
Contributor

Indicates that the implementation identifies this device as a CPU, and has device type [api]#info::device_type::cpu#.

Look good to me!


{note}A device with this aspect will typically be a dedicated accelerator
device, with a peripheral interconnect for communication.
{endnote}
Copy link
Contributor

Choose a reason for hiding this comment

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

I think FPGA devices are normally exposed as this type. Would a reader think that a "dedicated accelerator" might be an FPGA? This is an honest question. I don't know what most people would think of when reading the term "dedicated accelerator".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good question. I have no idea, and I only used this phrasing because it was already there.

My reading of "accelerator" is something like "a piece of hardware that is not the host CPU", and I think "dedicated" implies that it's not going to be used to run anything except kernels you enqueue to it (i.e., it's not running anything related to the OS). An FPGA would fit that description. I guess an implementation might also choose to expose a "GPU" without graphics API support or one that isn't running a display as an "accelerator" instead of a "GPU".

@tomdeakin
Copy link
Contributor

WG approved to merge. Fix to 2020

@gmlueck gmlueck merged commit 861c8a0 into KhronosGroup:main Feb 20, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
editorial Some purely editorial problem
Projects
None yet
Development

Successfully merging this pull request may close these issues.

A definition of a GPU Device definitions
5 participants