-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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 CI stack for ML packages #31592
Add CI stack for ML packages #31592
Conversation
TODO: add |
@scottwittenburg any tips to get this pipeline to run? |
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.
Advice from a fellow traveler on this road (#31598). See comments below.
Still no luck. |
@spackbot run pipeline |
I've started that pipeline for you! |
I think it's working! Like there are still concretization issues I need to resolve, but it gets far enough that it tries to concretize the environment! |
73ddeb7
to
00a9ba2
Compare
@aweits can you investigate the build issues with JAX in CI? |
replicated a build failure locally w/ bazel 5.2.0, builds fine with 4.1.0... |
On what OS? I was hoping that Bazel 5 build failures would only be on macOS arm64... |
linux-rhel7-skylake_avx512 I think it's this: |
Okay, so from reading that, it seems like the problem is at the package level, not the bazel level. So would the right approach be to lock down supported Bazel versions until those rules are updated? |
That's quite probably the "right" way to do it - alternatively, the workaround in that thread seems to work: diff --git a/var/spack/repos/builtin/packages/py-jaxlib/package.py b/var/spack/repos/builtin/packages/py-jaxlib/package.p
index eb543a2..3ad4399 100644
--- a/var/spack/repos/builtin/packages/py-jaxlib/package.py
+++ b/var/spack/repos/builtin/packages/py-jaxlib/package.py
@@ -67,3 +67,19 @@ def patch(self):
"build/build_wheel.py",
string=True,
)
+
+ matchtext = '''load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")'''
+ newtext = '''
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+ name = "build_bazel_rules_apple",
+ sha256 = "0052d452af7742c8f3a4e0929763388a66403de363775db7e90adecb2ba4944b",
+ urls = [
+ "https://github.com/bazelbuild/rules_apple/releases/download/0.31.3/rules_apple.0.31.3.tar.gz",
+ ],
+)
+'''
+ filter_file(matchtext,
+ newtext,
+ 'WORKSPACE',
+ string=True) |
8386040
to
9b6ef23
Compare
@spackbot run pipeline |
I've started that pipeline for you! |
This reverts commit de8bfa8.
a19172f
to
98f25b5
Compare
I think this PR is finally ready to merge! All new pipelines are passing. Some caveats:
|
This looks really awesome to me -- thanks for all the work everyone. Once we merge, this should start getting tested on every PR. We may still have issues on |
Basic stack of ML packages we would like to test and generate binaries for in CI.
Closes #31551
@tgamblin @scottwittenburg I said this when I was working on #27798, but this is the least intuitive and least user friendly thing I've ever done in Spack. I basically copy-n-pasted a gigantic file containing a million settings that have absolutely no meaning to me in the hopes that it works and I didn't make any mistakes. If there is even a single setting that is wrong in this file, someone is going to have to help me fix it, because I'm unaware of any documentation explaining what all of these mysterious keywords mean. Does this have to be this complicated? Can we have a file of defaults somewhere and I only need to override the ones I care about? I don't see why this should be any more than a simple environment file like: