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

Docs: DPC++ Compiler #17421

Closed
wants to merge 3 commits into from
Closed

Docs: DPC++ Compiler #17421

wants to merge 3 commits into from

Conversation

ax3l
Copy link
Member

@ax3l ax3l commented Jul 7, 2020

Document on how to set up the dpcpp compiler with spack.

cc @becker33 @jeffhammond @rscohn2

Comment on lines +603 to +605
^^^^^^^^^^
SYCL/DPC++
^^^^^^^^^^
Copy link
Member

Choose a reason for hiding this comment

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

I don't think this belongs in the "getting started" section.

Maybe it could go in the longer section on intel tools?

Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Member Author

@ax3l ax3l Jul 7, 2020

Choose a reason for hiding this comment

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

Wasn't sure, that section reads:

Vendor-Specific Compiler Configuration

With Spack, things usually “just work” with GCC. Not so for other compilers. This section provides details on how to get specific compilers working.

It sets up ICC, PGI and NAG compilers in detail and lacks so far details on how to set environment vars for them. I think its activation details are unique enough to add value for the section.

Copy link
Contributor

Choose a reason for hiding this comment

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

I struggled with DPCPP just last week so this is well timed.

Copy link
Member

Choose a reason for hiding this comment

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

@frankwillmore Can you look at the compilers.yaml?

Copy link
Member

Choose a reason for hiding this comment

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

@rscohn2 That stanza looks pretty involved for an example. I've never had to add that much stuff, by ymmv.
I stopped naming the compiler as 'clang' a while back, in favor of 'oneapi', because I think it's important to distinguish the intel version, as with the cray version of it. All of the environment stuff may well be necessary and valid for that particular installation, and I don't see anything fundamentally wrong, but imho it looks a bit cluttered.

In my work, I've used icpx instead of dpcpp. afaik it will compile dpcpp code, just needs a few extra include paths. And I would set up the environment in a module, but this may just be a matter of taste.

Copy link
Member

Choose a reason for hiding this comment

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

I also stopped using dpcpp driver and instead add -fsycl to compile and link. All the cmake docs discourage changing the driver.
Unfortunately, you may also need -fscyl-unnamed-lambda for compile, but I hope they make that unnecessary.

@ax3l ax3l force-pushed the doc-dpcpp branch 3 times, most recently from 95243b4 to 4622e97 Compare July 7, 2020 23:10
Document on how to set up the `dpcpp` compiler.
@jeffhammond
Copy link
Contributor

I don't use Spack much but my primary use for it in this case would be to get the PTX back-end without having to build it myself. Is that working (in Spack)?

@ax3l
Copy link
Member Author

ax3l commented Jul 8, 2020

Here I am just trying to use the pre-built, distributed dpcpp to build a spack software stack.

For building advanced binary variants of dpcpp that do not come with that release, one would need to add to the llvm package in Spack (or create/derive a new package). I have not yet seen someone working on that.

Co-authored-by: Robert Cohn <rscohn2@gmail.com>
lib/spack/docs/getting_started.rst Outdated Show resolved Hide resolved
lib/spack/docs/getting_started.rst Outdated Show resolved Hide resolved
lib/spack/docs/getting_started.rst Outdated Show resolved Hide resolved
lib/spack/docs/getting_started.rst Outdated Show resolved Hide resolved
lib/spack/docs/getting_started.rst Outdated Show resolved Hide resolved
@ax3l ax3l added the intel label Oct 21, 2020
@tldahlgren
Copy link
Contributor

Closing and re-opening this PR to see if the two required build and clingo will finally have their status reported (after re-running).

@tldahlgren tldahlgren added the ecp label Dec 9, 2020
@tldahlgren
Copy link
Contributor

Closing and re-opening again to see if we can get past the unreported results from required tests.

@ax3l
Copy link
Member Author

ax3l commented Mar 19, 2021

I currently have no capacity to update this PR further and I think something similar was merged recently :)
Feel free to scavenge as needed, this was more of a proof-of-concept.

@ax3l ax3l closed this Mar 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

7 participants