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

Add a way to see all possible values for -fsycl-targets flag #15641

Open
AlexeySachkov opened this issue Oct 9, 2024 · 5 comments
Open

Add a way to see all possible values for -fsycl-targets flag #15641

AlexeySachkov opened this issue Oct 9, 2024 · 5 comments
Labels
confirmed enhancement New feature or request

Comments

@AlexeySachkov
Copy link
Contributor

Is your feature request related to a problem? Please describe

This is split from #1191 where folks were confused about which targets are supported by our SYCL implementation and which spelling should be used for them, i.e. what are the possible values for -fsycl-target compiler flag?

Describe the solution you would like

There is no proposal for this yet and the solution/interface should be developed as part of this issue. Original issue mentioned -fsycl-targets=list as an example of how it could be used. Displaying the full list under --help is also an option

Describe alternatives you have considered

No response

Additional context

No response

@ayylol
Copy link
Contributor

ayylol commented Oct 9, 2024

Hey, just wondering: Would this list all possible -fsycl-targets? or just the ones supported by the build of the compiler? (For example, if we build the compiler without cuda support it wouldn't list the nvptx64-nvidia-cuda target)

@christgau
Copy link

For example, if we build the compiler without cuda support it wouldn't list the nvptx64-nvidia-cuda target

From a user's perspective, this would be bad. It would be best if only those targets supported by the compiler (or its plugins 😬) will be listed

@AlexeySachkov
Copy link
Contributor Author

Hey, just wondering: Would this list all possible -fsycl-targets? or just the ones supported by the build of the compiler? (For example, if we build the compiler without cuda support it wouldn't list the nvptx64-nvidia-cuda target)

Theoretically, yes. Our build scripts have a knowledge about which targets/backends are being built. I'm not entirely sure if those have a direct mapping to SYCL targets, but that is definitely something that we can propagate ourselves through our own CMake options from our configure.py script if that would be needed.

@AlexeySachkov
Copy link
Contributor Author

For example, if we build the compiler without cuda support it wouldn't list the nvptx64-nvidia-cuda target

From a user's perspective, this would be bad. It would be best if only those targets supported by the compiler (or its plugins 😬) will be listed

Plugins are dynamically loaded and compiler can't know which plugins will be available on a system that is going to execute an application. There maybe zero plugins available during build and that's fine. Therefore, I don't think that we will be able to be precise (or even reasonable) with our assumptions about available plugins at compile-time.

@christgau
Copy link

Sorry, my quote was wrong. What would be bad is:

Would this list all possible @-fsycl-targets@?

Plugins are dynamically loaded and compiler can't know which plugins will be available on a system that is going to execute an application.

I see. Makes sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants