-
-
Notifications
You must be signed in to change notification settings - Fork 16
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
PowerPC builds #8
Comments
cc @jayfurmanek |
I saw the doxygen build going. Looks like it timed out (10mins no output). A couple things we could try there:
Also: Anaconda doesn't provide newer cudatoolkit versions for ppc64le, unfortunately, although IBM does. I don't know if anyone has tried ocl-icd on ppc64le. I know NVIDIA doesn't provide OpenCL for ppc64le so it may not be worth doing much with ocl-icd unfortunately. |
Thanks for the valuable feedback @jayfurmanek!
We changed the provider to
Didn't know that, nice! One less thing to worry about.
Is there any official way to use the IBM channels with
If that's the case (I didn't know that either) then you are right, then there is probably no point in trying until we have official CUDA builds in Thanks again! |
The IBM channel is here: There is a license that needs to be accepted at package install time with an environment variable. It currently has various levels of CUDA 10.1 for ppc64le and x86-64. |
Hi, |
In particular, @giadefa pointed out that there are now new Power9 supercomputers with powerful GPUs: |
I recall |
We would love to start running on ORNL GPU's soon, so this would be great to get finalized! |
Also, forge does have up to date |
Once openmm/openmm#2993 is accepted for release, I'll work on the CF machinery to put the PPC builds out there! |
@peastman: Can we prioritize a 7.5.1 bugfix release to enable the ppc64le openmm toolchain to start building? |
The thing blocking 7.5.1 is finding someone with an ARM Mac who can test that. If we either drop the ARM Mac support, or clearly mark it as untested, we can move ahead with releasing 7.5.1. |
We can leave the existing warnings for 7.5.1 on |
+1 for just keeping the warnings. We've had the minimal tests run, and you didn't want us to send you an ARM machine, while I'm still months away from being allowed to use one by MSK. Let's get it out there so people can give us feedback. |
Ok! |
OpenMM 7.5.1rc1 is out (https://anaconda.org/conda-forge/openmm/files?version=7.5.1rc2), but I don't see the packages for PowerPC. Are we still on track to support PowerPC in OpenMM 7.5.1? |
Yes, I thought it was building for it. @jaimergp do you know why it didn't? |
Because we (I) haven't rolled out support for CUDA on PPC yet. I was half hoping somebody else would do it while we fixed its support in OpenMM, but that didn't happen, so I'll get to it. It shouldn't delay the release of the other builds though; I can work on it in the meantime. |
@jaimergp thanks for the update. Do you have an estimate when the PowerPC packages will be available? |
We need three (cascading) pieces of infrastructure:
So I can't give an estimate, but at least you can see the progress here. |
Thanks! No need to hold up anything else while we wait for it. |
I see that conda-forge/docker-images#178 and conda-forge/nvcc-feedstock#66 have been merged. What is the situation with the last step? |
I am working on it. I'll submit a PR later! |
PPC builds used to be made on CI and uploaded to conda-forge until 7.6.0 (and they worked great btw). This does not seem to be the case for 7.7.0 any more. Any chance to resume them? |
PPC builds no longer work when built with the compilers used by conda-forge. A lot of the test cases fail or segfault. They work fine when built using the standard system compilers. I've tried to track down the problem but without success. I believe it's caused by a compiler bug. Unfortunately, this means distributing PPC builds through conda-forge is now impossible |
Oh no. Is there a "single place" for the local build instructions? (I used to have an attempt at https://github.com/giorginolab/miniomm/wiki/%5BOBSOLETE%5D-Compiling-OpenMM-on-M100 , but not sure how much they can be trusted). |
Instructions on building from source are at http://docs.openmm.org/latest/userguide/library/02_compiling.html. We haven't done a survey of compilers to figure out which specific ones work and which fail. My general impression has been that
|
By chance, is this a problem that only appears in CI? From what I understand conda-forge runs PPC64LE through emulation by default, which in my impression is buggy especially for numerics. A native (local) conda-build with conda-forge gcc 12.1.0-16 seems to work. (But there are other quirks, like CMake not finding CUDA) |
I don't know. I don't have access to an actual PPC Linux system, so the only way I'm able to test it is through emulation. I can say, though, that it has all the hallmarks of a compiler bug. For example, I store some values into memory, load that memory into a SIMD register, and the register ends up with the wrong values. But if I print out the memory locations I just stored to before loading them into the register, then it ends up with the right values. That's the sort of behavior you tend to see if there's a bug in the compiler's optimization stage. This also isn't the first time I've run into a bug in gcc on PPC. |
ppc64le
are technically possible, but in reality there are some barriers. I will collect relevant issues and PRs here.All
doxygen
has noppc64le
build yet. I am submitting a PR here.openmm
.CUDA
conda-forge
assumes a one-to-one relationship between CUDA versions and Docker images because it only considersx64
architectures. This should be addressed inconda-smithy
andnvcc
. Tracking issue.ppc64le
. PR here.defaults
only providescudatoolkit
v9.0 forppc64le
. There are no plans to change that indefaults
, butconda-forge
might get their own permissions.OpenCL
ocl-icd
could be used to trigger the compilation of the OpenCL parts.We could get an OpenCL + CPU build with relatively low effort if we fix
doxygen
andocl-icd
. Would this be enough?The text was updated successfully, but these errors were encountered: