Skip to content

Added Faiss#8572

Merged
giordano merged 10 commits intoJuliaPackaging:masterfrom
stemann:feature/faiss
Jan 26, 2025
Merged

Added Faiss#8572
giordano merged 10 commits intoJuliaPackaging:masterfrom
stemann:feature/faiss

Conversation

@stemann
Copy link
Contributor

@stemann stemann commented Apr 30, 2024

No description provided.

@stemann
Copy link
Contributor Author

stemann commented Apr 30, 2024

Replaces #8483

@stemann stemann force-pushed the feature/faiss branch 2 times, most recently from 5b63415 to e8ac9ed Compare December 4, 2024 09:19
* Added mingw32 patch: To make posix_memalign etc. available on mingw32.
* Dropped CUDA archs 60, 61 for CUDA 11.8+.
* Update CMake wrt. CUDA arch detection: https://github.com/Kitware/CMake/blob/v3.23.3/Modules/CMakeDetermineCUDACompiler.cmake#L654
* Fixed CUDA cmake configure: Added symlink from $prefix/cuda/lib64 to $prefix/cuda/lib
* Updated to v1.9.0
* Added header file products
* Added additional patches for mingw32
@stemann stemann marked this pull request as ready for review December 4, 2024 09:33
@stemann stemann marked this pull request as draft December 28, 2024 01:30
@stemann stemann marked this pull request as ready for review January 7, 2025 08:00
@giordano giordano marked this pull request as draft January 26, 2025 10:35
@giordano giordano marked this pull request as ready for review January 26, 2025 10:35
This reverts commit 9fc05ef.
…one `configure` as it seems to not be needed for CUDA 11.8 and CUDA 12.1
@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

@giordano Did something happen to powerpc64le support in OpenBLAS32?
https://buildkite.com/julialang/yggdrasil/builds/16739#0194a24e-577f-4249-9f91-04f5e949e418/687-785

@giordano
Copy link
Member

Yes, OpenBLAS 0.3.28 doesn't support PowerPC with libgfortran 3 and 4

@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

Ah yes, I found a385efd

What would be the proper approach here?

  1. Require GCC 11 (libgfortran 5)
  2. Drop PowerPC64LE
  3. Separate build_tarballs call for PowerPC64 with GCC 11

@giordano
Copy link
Member

Either require GCC 8 or drop powerpc, up to you.

@giordano
Copy link
Member

There's an ICE on aarch64 with gcc 8, move to the next (9)

@giordano
Copy link
Member

Sounds like this package is a magnet for GCC ICEs. Good luck

@giordano
Copy link
Member

Also, ask yourself how much you care about supporting powerpc vs aarch64

@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

powerpc vs aarch64 ... vs older Linux distributions 😊

Do we have an overview of which releases of the common/main linux distributions one looses when bumping GCC versions...?
E.g. https://access.redhat.com/solutions/19458
I guess it could make sense (just as a convenience) to add a table to https://github.com/JuliaPackaging/Yggdrasil/blob/master/RootFS.md

@giordano
Copy link
Member

Do we have an overview of which releases of the common/main linux distributions one looses when bumping GCC versions...?

https://repology.org/project/gcc/versions but I don't see how this is relevant at all.

@giordano giordano enabled auto-merge (squash) January 26, 2025 13:16
@giordano giordano merged commit 836792a into JuliaPackaging:master Jan 26, 2025
@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

When working with build recipes, I know that one should use the minimal GCC version, to link against a sufficiently early glibc, but it is (for me) a bit opaque which Linux distributions I loose when I bump, e.g., GCC v7 to v8.

@stemann stemann deleted the feature/faiss branch January 26, 2025 13:33
@giordano
Copy link
Member

I know that one should use the minimal GCC version, to link against a sufficiently early glibc

Glibc and GCC are completely orthogonal: for a given architecture, we use the same glibc for all versions of GCC, so there's no connection between the two, Glibc version only depends on the architecture, and that's what's reported in RootFS.md.

@giordano
Copy link
Member

but it is (for me) a bit opaque which Linux distributions I loose when I bump, e.g., GCC v7 to v8.

There's no connection for anyone who uses julia's default build system, e.g. when using the official binaries.

@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

Ah OK - thanks for clarifying :-)

@stemann
Copy link
Contributor Author

stemann commented Jan 26, 2025

Hmm... importing/registration of Faiss_jll failed due to MKL...

@giordano Would it be better to just link with libblastrampoline? (and also circumvent OpenBLAS/PowerPC-issues...?)

Similar to MKL issues with Torch: JuliaRegistries/General#68946 (comment)

[ Info: Attempting to `import` package
Precompiling project...
    291.4 ms  ✓ Unicode
    432.2 ms  ✓ Zlib_jll
    500.4 ms  ✓ CompilerSupportLibraries_jll
    600.4 ms  ✓ Preferences
    779.4 ms  ✓ LazyArtifacts
    396.2 ms  ✓ JLLWrappers
    741.9 ms  ✓ LLVMOpenMP_jll
    774.1 ms  ✓ OpenBLAS32_jll
    782.9 ms  ✓ oneTBB_jll
    893.1 ms  ✓ LAPACK_jll
   1221.5 ms  ✓ IntelOpenMP_jll
   3260.8 ms  ✓ MKL_jll
  12226.8 ms  ✓ Faiss_jll
  13 dependencies successfully precompiled in 18 seconds. 21 already precompiled.
  2 dependencies had output during precompilation:
┌ Faiss_jll
│   Downloading artifact: MKL
└  
┌ MKL_jll
│   Downloading artifact: IntelOpenMP
└  
ERROR: InitError: could not load library "/tmp/jl_OhsE09/artifacts/3b754606efe15fe32e87992916170a076ef1db27/lib/libfaiss.so"
libmkl_intel_lp64.so.2: cannot open shared object file: No such file or directory

https://github.com/JuliaRegistries/General/actions/runs/12975113227/job/36185770899?pr=123746#step:17:412

@giordano
Copy link
Member

I think I already answered in the link you shared, didn't I?

stemann added a commit to stemann/Yggdrasil that referenced this pull request Jan 27, 2025
Due to issue with linking with MKL: JuliaPackaging#8572 (comment)

Also, removes the need to build with a newer GCC (than v7) wrt. OpenBLAS on PowerPC64LE.
stemann added a commit to stemann/Yggdrasil that referenced this pull request Jan 27, 2025
Due to issue with linking with MKL: JuliaPackaging#8572 (comment)

Also, removes the need to build with a newer GCC (than v7) wrt. OpenBLAS on PowerPC64LE.
giordano pushed a commit that referenced this pull request Jan 30, 2025
* [Faiss] Replaced MKL with libblastrampoline

Due to issue with linking with MKL: #8572 (comment)

Also, removes the need to build with a newer GCC (than v7) wrt. OpenBLAS on PowerPC64LE.

* Reduced lbt configure

* Reduced lbt configure

* Enabled Windows builds to find lbt

* Enabled lbt for armv6l

* Configured lbt via CMake 3.30 BLA_VENDOR variable

* Removed yggy comment
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.

4 participants