-
Notifications
You must be signed in to change notification settings - Fork 705
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
Clarify/decide on how to do the NVHPC based toolchains #16066
Comments
I think the former favours putting CUDA in the toolchain (
|
I think you are correct, though i think it's not that bad either way for downstream; if you have a good template to follow, just --try-amend and it should be really easy to switch anyway. Plus, you'd have to consider stuff from GCCcore, UCX-CUDA, UCC-CUDA, NCCL regardless, which diminishes the differences even more. We discussed this during the zoom meeting and the conclusions were
I plan to make a pr with essentially:
Thomas asked @SebastianAchilles what they did for BLAS in their toolchains:
But I think with FlexiBLAS we should have the option of using any CPU backend, so that's just better i think (I still haven't tried switching BLAS backend with flexiblas, so i'm not sure how that actually works) |
I would also be interested in defining a NVHPC based toolchain 👍 Just for reference these are the previous attempts to create the
Currently at JSC we are using the toolchain The reason for adding the the Personally I would prefer For the top level toolchain NVHPC+OpenMPI+FlexiBlas+FFWT I would like to add to |
I got stuck on this because there were several things that didn't wanna build easily OpenMPI, BLIS has issues. @bartoldeman suggested some patches he wrote for CC, but i haven't had time to test anything out yet. I have no strong opinion of it's called "nvompic" or "nvompi". The motivation for the latter was mostly to make it similar to So.. nvompi, nvompic, meh. Sure On a related note: i recently found that CUDA bundles nvcc. Considering we exclude all the bundled stuff it kinda makes me wonder if we even need NVHPC itself for anything..? |
I've also had a second thought when encountering yet more stuff to fix for the ever broken nvcc compiler; Is nvcc any good at building CPU code in general? It certainly doesn't seem well tested and nvidia themselves doesn't seem to bother to use So, spending time patching a build of OpenMPI or OpenBLAS or whatever just for the sake of using Perhaps
could both speed things up and avoid annoying patching due to the limitations of nvcc. Maybe i'm wrong, perhaps nvcc is fricking amazing at CPU stuff as well, or maybe i should just stick to foss/2022a and use the nvcc compiler bundled with CUDA to build my ~2 top level applications that use it. |
My opinion on this is to just use Now I did install an NVHPC 22.7 locally yesterday. Here are some notes:
and
for the FlexiBLAS component (since nvfortran, like ifort, uses the g77 api for returning complex numbers in functions). Then there is also the issue that the lib is called
|
found what causes some issues with Open MPI and also FFTW. This comes from for
but for
this caused some strange errors linking shared libraries. |
For ref. spack/spack#29899 |
Hi there. The need for MPI/OpenACC use is definitively there and getting the NVHPC toolchains in place would be awesome. What is remaining here? Just compiling with NVHPC and not using CUDA certainly has use cases. If CUDA should be automatically installed or available, when loading say a NVHPC toolchain I do not know, but maybe not to keep it as slim as possible. |
Someone needs to do it.
That's not a reason we actually care about. We need to keep a separate CUDA package becuase
|
@bartoldeman did you (or someone else) mention at a previous conference call that there's something that needs to be taken into account regarding the various openmp libraries? Particularly if using |
Thanks for the update.
Maybe we can contribute. I will check.
Good, so can we then consider the CUDA side of this settled then? Since we anyway need CUDA as a separate package and that there are certainly use cases of using the |
I dusted off my old easyconfigs, adding all the stuff @bartoldeman mentioned into #16724 |
We have a toolchain now (edit: cfr. #16724) |
Perhaps everyone already knows this and I'm just slow, but it's not clear to me how we want to deal with NVHPC, nvompi, nvompic.
Some questions I have are
NVHPC
and thennvompi
and only useFoo-1.2.3-nvompi-22.7-CUDA-11.7.0.eb
?In my mind these toolchains aren't like GCC, there is no compatibility with CUDA to worry about, and anyone using it definitely wants to use CUDA as well, so there just isn't any real need to offer an "opt-in".
I would have just done
NVHPC
with a particular system CUDA, and then just build OpenMPI (depending on UCX-CUDA right away) and call thatnvompic
. Nonvompi
.The text was updated successfully, but these errors were encountered: