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
install intel icx open source #1039
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments as I looked through things; will see if I can rephrase more simply to use our existing installation types! Thanks!
check_exe: bin/clang++ --version | ||
check_stderr_on_stdout: true | ||
targets: | ||
- name: 2023.0618 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As phrased this will once and once only install 2023.0618
. We need to ensure this is tagged as nightly
with
if: nightly
somewhere, and we will need to consider how to do the nightly "rotation". There are two choices: either we force: yes
or similar (I forget the exact syntax), which will unconditionally re-install "over the top" of the current build (probably ok), or else we need to have a daily_script
type:
which does the necessary care and feeding of the symlinks we use in other cases.
targets: | ||
- name: 2023.0618 | ||
fetch: | ||
- https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230618/dpcpp-compiler.tar.gz dpcpp-compiler.tar.gz |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is sycl the same as C++ here?
- name: 2023.0618 | ||
fetch: | ||
- https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230618/dpcpp-compiler.tar.gz dpcpp-compiler.tar.gz | ||
script: &intel-os-install-script | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This script appears to do nothing the normal installation process does...I think this can be rephrased in terms of a normal install, which would fix the "daily" part too! Will sketch out soemthing!
So this diff: intel-os-cpp:
dir: "intel-os-cpp-{name}"
type: tarballs
check_exe: bin/clang++ --version
compression: gz
untar_dir: dpcpp_compiler
nightly:
if: nightly
type: nightlytarballs
url: https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230618/dpcpp-compiler.tar.gz
targets:
- trunk is all we need to make it daily download that
but I'm not sure why there's a 20230618 in there, or a SYCL? Perhaps I'm misunderstanding what this compiler is: should this be a "trunk" still? (or will we have other "trunk"s later for different dated SYCL/non-SYCL things?) |
(in the example above the There doesn't seem to be a latest release on https://github.com/intel/llvm/releases/ - just a named dated branch. We'd have to add new support to somehow script the datetime (and handle when it's not there etc)...but I wonder if we've done this before elsewhere... |
Doesn't look like it after all: we could try and write some "find latest build" stuff for github specifically if we really needed it though. Seems like something useful... BUT! https://github.com/intel/llvm/tags I found this and it seems like maybe the https://github.com/intel/llvm/releases/tag/sycl-web%2Fsycl-latest-good might be a good one? Do you know if this is the appropriate tag to use? |
One approach is to build from sources. It could make a tag from the date and try to check it out and then build it. It has been a while since I built, but it was not hard. It would use a lot more compute resources. If it could not find a tag, it would not build a compiler. It looks like you do this for other compilers. Do you usually have a tag that indicates latest? If you have that, it is fully automated? Another approach is to use the nightly build. I expect we would have to use github APIs to find the latest release, then get the URL's for the attached assets, and then download/install (that part is in this PR). This would require some work specific to this particular compiler. I did a simpler variation for nightly build where I hardcode the URL of a specific release, and would have to use PR's to manually update it, similar to what I do for oneapi product releases. Building from source is probably the right thing to do if it can be fully automated and would work like other compilers you publish. If you let me know how you want to proceed and what would be needed, I can investigate some more. |
Closing. Building from source will allow directly enabling non-intel GPU: #1046 |
@rscohn2, I was just made aware that there is work ongoing towards enabling the non-intel GPU support in the nightly builds, but it doesn't seem to work just yet - the libraries are still missing from the tar file. Possibly this will be available in the near future: intel/llvm#9850 |
Thanks for letting me know. I will ask James if the nightly build support for other hardware will be something suitable for use beyond their Ci. I will leave the PR closed, the other issue was that this PR required manual updates. |
Download daily build from https://github.com/intel/llvm
It is possible to build from source, but they build, test, and publish a binary every day.