Skip to content

[CI] Introduce driver and nightly containers #4777

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

Merged
merged 7 commits into from
Dec 1, 2021

Conversation

alexbatashev
Copy link
Contributor

@alexbatashev alexbatashev commented Oct 18, 2021

This pull request is a followup on #4754, that adds two more Docker containers: a container with Intel drivers installed and a container with pre-installed nightly build of DPC++ from this repository.

"Intel drivers" container includes all the latest version of low-level runtimes for Intel devices.

The "nightly" container is derived from "Intel drivers" container, and provides the latest nightly build of SYCL.

Requires: #4773
Documentation: #4778

@bader
Copy link
Contributor

bader commented Oct 19, 2021

  • Recommended versions of Intel drivers are installed (a.k.a. stable versions). These versions are taken from devops/dependencies.json file. The motivation for a new file is that buildbot/dependency.conf specifies the driver versions, without their dependencies or instructions on how to get those drivers. The JSON file, on the other hand, specifies git tags as versions, so that Docker scripts can take drivers from GitHub.

Can we employ Dependabot to update the dependencies?
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically

@@ -0,0 +1,10 @@
{
"linux": {
Copy link
Contributor

Choose a reason for hiding this comment

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

Are you going to add Windows drivers support?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Eventually

check:
runs-on: ubuntu-20.04
if: github.repository == 'intel/llvm'
strategy:
Copy link
Contributor

Choose a reason for hiding this comment

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

Hm... I thought we can re-use the workflow added by #4773. I see a lot of duplicated commands from .github/workflows/sycl_linux_build_and_test.yml.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, that's the intention. I'll fix that before moving PR to ready for review.

- sycl
jobs:
check:
runs-on: ubuntu-20.04
Copy link
Contributor

Choose a reason for hiding this comment

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

Can't we re-use of the containers to avoid configuring the system from scratch?

runs-on: ubuntu-latest
needs: ubuntu2004_build_test
steps:
- uses: actions/checkout@v2
Copy link
Contributor

Choose a reason for hiding this comment

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

Ideally, we should save the time on checking out sources by using an image where some old SHA is checked out already and we need just update it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure saving 1 minute on a 1,5 hour build is a significant improvement.

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe not significant, but still an improvement!
I'm okay to get back to this after we configure everything else.

@alexbatashev
Copy link
Contributor Author

Can we employ Dependabot to update the dependencies?
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically

No, it only support certain build tools. But we can still make some bot, that'll check for updates.

@bader
Copy link
Contributor

bader commented Oct 19, 2021

No, it only support certain build tools.

What do you mean by "build tools"?

@alexbatashev
Copy link
Contributor Author

No, it only support certain build tools.

What do you mean by "build tools"?

Rust's cargo or npm as examples

@bader
Copy link
Contributor

bader commented Oct 19, 2021

No, it only support certain build tools.

What do you mean by "build tools"?

Rust's cargo or npm as examples

I think these are called "package managers" and as I can see there is a way to configure "github-actions" package manager, which should be able to update packages releases through GitHub, but haven't tried it myself. Does it make sense?

@alexbatashev
Copy link
Contributor Author

No, it only support certain build tools.

What do you mean by "build tools"?

Rust's cargo or npm as examples

I think these are called "package managers" and as I can see there is a way to configure "github-actions" package manager, which should be able to update packages releases through GitHub, but haven't tried it myself. Does it make sense?

It updates actions, used in workflow, published in https://github.com/marketplace. This isn’t what we need.

Comment on lines 3 to 7
"compute_runtime_tag": "21.37.20939",
"igc_tag": "igc-1.0.8517",
"tbb_tag": "v2021.4.0",
"fpgaemu_tag": "2021-07",
"cpu_tag": "2021-07"
Copy link
Contributor

Choose a reason for hiding this comment

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

we have duplicated version here. Is there a chance that this data will be read from https://github.com/intel/llvm/blob/sycl/buildbot/dependency.conf?
We can change the format of the dependency file to match expectations if needed.

Copy link
Contributor Author

@alexbatashev alexbatashev Oct 21, 2021

Choose a reason for hiding this comment

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

@vladimirlaz we can discuss this offline. As PR description says, this file specifies git tags, so that CI can download dependencies from public sources. I don't see a pattern in dependency.conf to construct a download URL, but it would be nice to avoid duplication (also it does not specify IGC version, but that's the least of my concerns with that file).

@alexbatashev
Copy link
Contributor Author

I suggest to proceed with latest drivers for now and figure out how to set preferred version later.

@alexbatashev alexbatashev marked this pull request as ready for review November 7, 2021 18:38
bader
bader previously approved these changes Nov 18, 2021
Copy link
Contributor

@bader bader left a comment

Choose a reason for hiding this comment

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

I think #4778 should be updated with instructions on how to make use of these containers.

Please, file a bug report for pre-commit failure. It looks like CI exposes flaky issue.

dpkg -i *.deb && rm *.deb

# Install NEO
RUN python3 /get_release.py intel/compute-runtime $compute_runtime_tag \
Copy link
Contributor

Choose a reason for hiding this comment

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

is ocloc installed as part of this installation?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it's part of intel-opencl-icd_smth.deb

@bader bader requested a review from vladimirlaz November 21, 2021 17:48
@alexbatashev alexbatashev requested a review from bader December 1, 2021 05:52
@bader bader merged commit f0547ed into intel:sycl Dec 1, 2021
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.

3 participants