-
Notifications
You must be signed in to change notification settings - Fork 94
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
Images availability for OS/ARCH other than linux/amd64 #396
Comments
Unfortunately, there is no plan for that. We only support and test That said, I'd be interested to hear how it goes if anybody does put some time into building these images for other platforms! https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/ |
That is a shame, because beside this POWER9 machine I was planing to run these images on ARM-based machines (and I guess that others may also be interested) I started to rebuild with However the
Any idea about how I should adapt that? |
I do think we should provide ARM builds though :D |
There are two parts for this, and I suggest starting without docker and just getting a conda environment for your architecture:
I quickly tried re-creating the pangeo-notebook environment on AWS (
|
The very same packages are also missing for the |
We usually do "arch migrations" in conda-forge where both aarch64 and ppc64le go hand-in-hand. If you want this to progress, you will have to push for these packages to be added. Start here: https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/main/recipe/migrations/arch_rebuild.txt --- submit a PR with missing packages and then the bots will take care of ensuring to take care of dependencies and opening PRs for all missing ones that any package depends on, etc. and then you will want to follow up in each feedstock with progress |
For example, just looking at ciso, https://github.com/conda-forge/ciso-feedstock/blob/main/recipe/meta.yaml, it looks rather straightforward, so I suspect it will be an easy migration for that one. |
The version of mambaforge appropriate for the architecture that the docker build is running on is built this way. Ref pangeo-data#396
#399 should remove the only hardcoding of amd64 in the dockerfiles. After this, images can be built to run arm64 / ppc46le once conda-forge has all the packages required for them. |
The version of mambaforge appropriate for the architecture that the docker build is running on is built this way. Ref pangeo-data#396
Apparently I got nerdsniped by this, and #399 now implements most of what is needed in this repo. Based on #399, here is the list of packages so far that need to be supported in conda-forge: pangeo-notebookBoth
|
I don't have any conda-forge experience so I can't really work on these. If someone else does and gets all these packages working, please ping me here again and I'll try get #399 to completion. |
when I read this I thought we would be in big trouble, but it is actually already done: https://anaconda.org/conda-forge/h5py (I would have been super surprised if h5py wasn't already migrated!) Getting tensorflow, pytorch, and jaxlib ready for ppc will be a HUGE undertaking, especially that nobody that I know (and I am involved in all these three packages) has access to ppc machines. The pangeo-notebook image should be doable though. |
@ngam yeah, hence I think ARM is more likely than PPC64. I think there are significant cloud cost savings to be had with ARM... |
@ngam tensorflow already supports aarch64 (see https://pypi.org/project/tensorflow/2.10.0/#files for wheel), and so does torch https://pypi.org/project/torch/#files. jaxlib supports arm64 macos but not an aarch64 wheel (https://pypi.org/project/jaxlib/0.3.22/#files) but i suspect that shouldn't be too much work? |
@ngam here is the error I get for h5py when making ppc64le:
|
We are trying to build arm64 packages for the pangeo project, and these are the missing packages: pangeo-data/pangeo-docker-images#396 (comment)
@ngam okkkk i made a PR conda-forge/conda-forge-pinning-feedstock#3533 |
This looks like a wild misleading error from mamba/conda. Did you try that in a fresh env? It could be some random dep. -- jaxlib should be okay, we are just waiting for some final touches from upstream before pursuing it. Pytorch (cpu only) is also already available for aarch64 (linux arm) in conda-forge. I will try to get something going for tensorflow soon for aarch64. We could potentially get a cuda-enabled aarch64 setup going as well! |
@ngam it is just from
|
Ah, I see, the solver is definitely getting confused by the other packages. |
This is the image we use most, so that would be a great start |
For now I simply commented the lines of the environment related to missing ppc64el packages and the build still fails with this error:
|
I eventually got it built, the error was due to the presence in the same directory of the I guess that this would not happen if there was no hard-coded CPU architecture in the Dockerfiles |
Which ones are these? Same as above? I have just merged the PR for |
|
Yes, it is:
|
It seems OK for ciso and pykdtree, but there is now pyresample >=1.10.3 (also needed by satpy) which is missing |
Just wanted to revive this discussion in case people are motivated for pushing on package availability on other systems. It looks like
|
Jun 2023 update. Tried running the following for aarch64:
and it looks like only 2 packages in
For
I'll update Yuvi's checklist at #396 (comment) to keep track. |
@weiji14 let's try to get these two packages done:
Note we added aarch64 to jaxlib recently, so jax is good to go (so is pytorch). On the other hand, ppc64le is going to be much harder, I think... so I'd focus our efforts on aarch64 for now. |
Thanks @ngam for getting those last packages over the finish line for Shall we revive @yuvipanda's PR at #399 to add in |
yay amazing, that would be great, @weiji14 |
I'm motivated to see this through now that I'm having to use
|
I'm tempted to drop |
Just documenting that Docker Desktop 4.30.0 on
|
* Don't hardcode CPU architecture in dockerfile The version of mambaforge appropriate for the architecture that the docker build is running on is built this way. Ref #396 * Build conda lock files for amd64, aarch64 & ppcle64 * [condalock-command] autogenerated conda-lock files * Dynamically pick conda-lock file based on architecture * Generate multi-arch lock files in Makefile * tidy dockerfile and make, comment out arm-incompatible packages * Update pangeo-notebook/environment.yml Co-authored-by: Wei Ji <[email protected]> * Update .github/workflows/CondaLock.yml Co-authored-by: Wei Ji <[email protected]> * miniforge3 not mambaforge * multiarch cmds in makefile and github actions * Test multiarch * Apply suggestions from code review Co-authored-by: Wei Ji <[email protected]> --------- Co-authored-by: pangeo-bot <[email protected]> Co-authored-by: Scott Henderson <[email protected]> Co-authored-by: Scott Henderson <[email protected]> Co-authored-by: Wei Ji <[email protected]>
Ok, we've got Just circling back to the original request for Question is how far do we want to support ppc64le? Up to |
To get ppc64le builds, xref pangeo-data/pangeo-docker-images#396.
@scottyhq
I would like to use your docker images (in particular pangeo/pangeo-notebook and pangeo/ml-notebook) on an IBM POWER9 machine and I was wondering if there was any plan to make these available for linux/ppc64le?
The text was updated successfully, but these errors were encountered: