-
Notifications
You must be signed in to change notification settings - Fork 50
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
Notes on kickstarting the RISC-V software layer #552
Comments
The repository that we use is For now we first focus on generic builds (added to easybuild in easybuilders/easybuild-framework#4489). Flags for optimized builds are still lacking, see https://github.com/easybuilders/easybuild-framework/blob/develop/easybuild/toolchains/compiler/gcc.py#L82. |
In order to get EasyBuild installed, I've used the following:
We explicitly override some variables to reflect the new repo/version/CPU target, and then it sort of mimics what the bot would do by taking the diff file from #537 and running the install script. This worked perfectly fine. 🎉 |
Now EasyBuild is available in the repo, one could easily start trying to build additional software interactively:
|
As a first attempt, I tried building GCC 13.2.0, but that failed due to the hook that sets up a wrapper for I've opened a PR at the Gentoo repo to change the Meanwhile I worked around the issue by hardcoding it in the hook to:
Furthermore, With these small changes I could successfully build GCC 13.2.0 (not ingested yet). |
FFTW fails due to:
Looks like our GCC doesn't include libquadmath, I suppose it doesn't work on RISC-V (?). This Fedora page has a message edit: I was checking the FFTW easyblock, and I found that this is already disabled for Arm and PowerPC, so we should make a PR to do the same for RISC-V: edit2: PR created: easybuilders/easybuild-easyblocks#3314 |
When trying to build foss 2023b, I ran into the next issue with UCX, which has an outdated
So we need to patch this by providing a newer version of edit:
This allows the configure step to complete, but the build fails almost immediately due to:
edit2: looks like RISC-V support was added in UCX 1.16.0 (which was released 10 days ago). |
The I also have a patch that backports RISC-V support into UCX 1.15.0: easybuilders/easybuild-easyconfigs#20429. |
Next issue: the foss 2023b toolchain has UCC 1.2.0, but RISC-V support was only added in 1.3.0: openucx/ucc#829. Edit: solved in PR easybuilders/easybuild-easyconfigs#20432. |
BLIS 0.9.0 fails in the configure step:
There are some BLIS PRs related to adding RISC-V functionality, so I'll have a look at those. |
Backported RISC-V support to BLIS 0.9.0: easybuilders/easybuild-easyconfigs#20468. OpenBLAS also built without any issues, so we're getting really close to having a full foss/2023b toolchain. |
FlexiBLAS and ScaLAPACK also installed without issues, so we now have foss/2023b! |
R 4.3.3 is now available as well. It required some (small) changes in the easyblocks/easyconfigs of Mesa, LLVM, and Java. I'll open PRs for those and list them here. RISC-V support for Java: RISC-V support for Mesa: RISC-V support for LLVM: In order to replace the dependency on Java 11 by Java 21, I used the following hook:
|
dlb (https://pm.bsc.es/dlb) built without issues. Attached is the corresponding tar file. |
While trying to install GROMACS, I ran into issues with its dependency SciPy-bundle, some numpy tests fail:
I found numpy/numpy#25246 which disables most of these on RISC-V, so for now I've ignored the test failures. Now GROMACS itself is failing in the test step as well:
Full output of the failing test:
|
@bedroge Could that be simply due to insufficient memory on your SiFive Unmatched board? |
I don't know, didn't see any Killed / OOM messages. I tried again, this time using the slightly modified easyconfig from easybuilders/easybuild-easyconfigs#20522, and then it failed in the second iteration:
I don't have a clue what that's about, so I just did another attempt, and then the installation completed successfully (all tests of all four iterations passed) 🎉 🤷♂️ |
GMP easyconfigs have Feedback from Julian:
edit: fixed in easybuilders/easybuild-framework#4576. |
With x264 I'm running into an outdated edit: the same hook that I used before works fine and allows the installation to complete:
edit2: |
And almost the same happens with LAME: it looks like the edit: fixed in easybuilders/easybuild-easyconfigs#20970. |
libdwarf-0.9.2 installed. This is the corresponding tar file to be ingested: |
With x265 I ran into the following issue:
This can be solved by adding edit: fixed in easybuilders/easybuild-easyconfigs#20971. |
Boost-1.83.0-GCC-13.2.0 has already been installed (this is the last Extrae dependency). The corresponding TAR file can be downloaded here: |
FFmpeg failed because of:
It looks like it needs This should be fixed upstream by adding edit: done in easybuilders/easybuild-easyconfigs#20686. |
Installation of Extrae is giving me this error:
I'm trying now to install binutils (although I thought it was already provided by the compat layer). |
@julianmorillo See #554 (comment) You probably need the full hook in 41149ac |
Thanks, @ocaisa!! |
The hooks file is being stored on github (it will be picked up by EasyBuild when doing the actual builds), so we just needs the PR from @boegel being merged in order to have it available. But feel free to already use it locally for your Extrae builds. |
I have just done a PR:
|
Wow, awesome! |
My fault, I removed the file due to quota limits. This link should work: |
@bedroge , Some dependencies of |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , |
@bedroge , following software ready to be ingested:
|
@bedroge , following software ready to be ingested:
|
@bedroge , |
@bedroge , following software ready to be ingested:
|
@bedroge , |
@bedroge , following software ready:
eessi-20240402-software-linux-riscv64-generic-1734346491.tar.gz |
@bedroge , following software ready:
|
@bedroge , |
@bedroge , |
@bedroge |
With a compatibility layer (EESSI/compatibility-layer#204) and software build container (EESSI/filesystem-layer#132 and https://github.com/orgs/EESSI/packages/container/package/build-node) in place, we are ready to start working on a RISC-V software layer. In this issue we can keep track/notes of the work being done and issues that we encounter.
The text was updated successfully, but these errors were encountered: