Skip to content
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

[Libxc] version 7.0.0 + CUDA binaries for aarch64 #9676

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

abussy
Copy link
Contributor

@abussy abussy commented Oct 24, 2024

This a follow up of PR #9580. Since Libxc v7.0.0 was released in the meantime, the previous PR (update to v6.2.2) was closed before merging. The following is essentially the same description.

Update Libxc version from 6.1.0 to 7.0.0.

Additionally, added recipes for the combination of aarch64 and CUDA, for Libxc_GPU_jll. Because BinaryBuilder only runs on x86_64, and nvcc is not a cross compiler, this is a non-trivial operation.

Pre-compiled binaries are available on a separate GitHub repository, specifically created for this purpose. The aarch64 BinaryBuilder recipe downloads the binary for the given CUDA version (from 11.4 to 12.6), and repackages it in the correct format.

The binaries were all generated in Docker images, for total control of the environment and reproducibility. All scripts and recipes are available in https://github.com/abussy/libxc_aarch64_gpu_binaries as well. After a discussion on the Julia slack, special care was given to the glibc version and RPATH. All glibc symbols used by the libxc.so shared library come from version 2.17, as per the BinaryBuilder requirements for aarch64.

Both x86_64 and aarch64 GPU binaries were successfully tested using the Libxc.jl and DFTK.jl packages.

include("../sources.jl")

sources = [
sources;
DirectorySource("./bundled")
# aarch64 binaries precompiled and hosted on GitHub
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps add a comment here explaining why this is done instead of building them in the recipe?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants