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

Added MLX #9761

Merged
merged 10 commits into from
Nov 26, 2024
Merged

Added MLX #9761

merged 10 commits into from
Nov 26, 2024

Conversation

stemann
Copy link
Contributor

@stemann stemann commented Nov 9, 2024

No description provided.

@giordano giordano marked this pull request as draft November 11, 2024 12:01
@rveltz
Copy link

rveltz commented Nov 17, 2024

Is there an example of our to use this library?

@stemann stemann force-pushed the feature/mlx branch 10 times, most recently from 6395eba to e4f8203 Compare November 18, 2024 11:19
* Disabled linux-musl platforms.
* Disabled freebsd, and windows.
* Using PyPI wheel for aarch64-apple-darwin.
* Including metal-cpp in MLX build wrt. building MLX-C.
@stemann stemann changed the title WIP Added MLX Added MLX Nov 18, 2024
@stemann stemann marked this pull request as ready for review November 18, 2024 17:10
@stemann
Copy link
Contributor Author

stemann commented Nov 18, 2024

@rveltz Not yet.

@stemann stemann mentioned this pull request Nov 18, 2024
@stemann
Copy link
Contributor Author

stemann commented Nov 18, 2024

But soon stemann/MLX.jl#2

@rveltz
Copy link

rveltz commented Nov 18, 2024

:D

@stemann
Copy link
Contributor Author

stemann commented Nov 19, 2024

LGTM! , but I'm also just taking a quick stab at getting Windows support, so please ping before hitting merge :-)
🍏 💥 🪟
. All done! :-)

@stemann stemann marked this pull request as draft November 19, 2024 18:05
Also gave FreeBSD a chance.
@stemann stemann marked this pull request as ready for review November 19, 2024 18:33
@stemann stemann marked this pull request as draft November 19, 2024 19:02
@stemann stemann marked this pull request as draft November 19, 2024 20:19
@stemann stemann marked this pull request as ready for review November 19, 2024 20:53
stemann added a commit to stemann/mlx that referenced this pull request Nov 26, 2024
Also contributes to being able to build for *-w64-mingw32.

Cf. JuliaPackaging/Yggdrasil#9761
stemann added a commit to stemann/mlx that referenced this pull request Nov 26, 2024
Also contributes to being able to build for *-w64-mingw32.

Cf. JuliaPackaging/Yggdrasil#9761
stemann added a commit to stemann/mlx that referenced this pull request Nov 26, 2024
stemann added a commit to stemann/mlx that referenced this pull request Nov 26, 2024
@stemann
Copy link
Contributor Author

stemann commented Nov 26, 2024

Strange, I was surprised to not see a re-run for aarch64-apple-darwin: https://buildkite.com/julialang/yggdrasil/builds/15014

@stemann
Copy link
Contributor Author

stemann commented Nov 26, 2024

I get an audit fail locally for aarch64-apple-darwin:

[ Info: Beginning audit of /Users/jesper/dev/julia/Yggdrasil/M/MLX/build/aarch64-apple-darwin/vdbDp3Er/aarch64-apple-darwin20-libgfortran5-cxx11/destdir



[ Info: Checking lib/libmlx.dylib with RPath list String[]
[ Info: Ignored system libraries /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore, /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate, /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation, /usr/lib/libobjc.A.dylib, /usr/lib/libc++.1.dylib, /System/Library/Frameworks/Metal.framework/Versions/A/Metal, /usr/lib/libSystem.B.dylib
[10:30:35] CandidateCDHash sha1=29ca20ed21fbb84a0718d929db305dcc61cc761d
[10:30:35] CandidateCDHash sha256=29b9d22fdb8e9b12047a91f540cf134edf5f6514
[10:30:35] Hash choices=sha1,sha256
[10:30:35] CDHash=29b9d22fdb8e9b12047a91f540cf134edf5f6514
llvm-objdump: error: 'mlx.metallib': The file was not recognized as a valid object file
ERROR: LoadError: type MetallibHeader has no field ncmds
Stacktrace:
  [1] getproperty
    @ ./Base.jl:42 [inlined]
  [2] ObjectFile.MachO.MachOLoadCmds(oh::ObjectFile.MachO.MachOHandle{IOStream})
    @ ObjectFile.MachO ~/.julia/packages/ObjectFile/eLzIt/src/MachO/MachOLoadCmd.jl:123
  [3] isdynamic
    @ ~/.julia/packages/ObjectFile/eLzIt/src/MachO/MachOHandle.jl:54 [inlined]
  [4] (::BinaryBuilder.Auditor.var"#99#106"{Platform, Bool, Bool, Bool, Prefix, String, Vector{String}, String})(oh::ObjectFile.MachO.MachOHandle{IOStream})
    @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/HTdhp/src/Auditor.jl:104
  [5] foreach
    @ ./abstractarray.jl:2712 [inlined]
  [6] (::BinaryBuilder.Auditor.var"#98#105"{Platform, Bool, Bool, Bool, Prefix, String, Vector{String}, String})(ohs::Vector{ObjectFile.MachO.MachOHandle{IOStream}})
    @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/HTdhp/src/Auditor.jl:85
  [7] readmeta(f::BinaryBuilder.Auditor.var"#98#105"{Platform, Bool, Bool, Bool, Prefix, String, Vector{String}, String}, file::String)
    @ ObjectFile ~/.julia/packages/ObjectFile/eLzIt/src/Abstract/ObjectHandle.jl:160
  [8] audit(prefix::Prefix, src_name::String; io::Base.TTY, platform::Platform, verbose::Bool, silent::Bool, autofix::Bool, has_csl::Bool, require_license::Bool)
    @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/HTdhp/src/Auditor.jl:84
  [9] autobuild(dir::AbstractString, src_name::AbstractString, src_version::VersionNumber, sources::Vector{<:BinaryBuilderBase.AbstractSource}, script::AbstractString, platforms::Vector, products::Vector{<:Product}, dependencies::Vector{<:BinaryBuilderBase.AbstractDependency}; verbose::Bool, debug::Bool, skip_audit::Bool, ignore_audit_errors::Bool, autofix::Bool, code_dir::Union{Nothing, String}, require_license::Bool, dont_dlopen::Bool, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ BinaryBuilder ~/.julia/packages/BinaryBuilder/HTdhp/src/AutoBuild.jl:923
 [10] build_tarballs(ARGS::Any, src_name::Any, src_version::Any, sources::Any, script::Any, platforms::Any, products::Any, dependencies::Any; julia_compat::String, validate_name::Bool, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ BinaryBuilder ~/.julia/packages/BinaryBuilder/HTdhp/src/AutoBuild.jl:367
 [11] top-level scope
    @ ~/dev/julia/Yggdrasil/M/MLX/build_tarballs.jl:114
in expression starting at /Users/jesper/dev/julia/Yggdrasil/M/MLX/build_tarballs.jl:114

For w64-ming32 builds ability to find BLAS libraries.
…ermissions

To avoid issue with `ObjectFile.isdynamic` when called on `mlx.metallib`.
@stemann stemann requested a review from giordano November 26, 2024 12:54
@giordano giordano merged commit d1d91a4 into JuliaPackaging:master Nov 26, 2024
31 checks passed
@stemann stemann deleted the feature/mlx branch November 26, 2024 14:36
awni pushed a commit to ml-explore/mlx that referenced this pull request Nov 27, 2024
Also contributes to being able to build for *-w64-mingw32.

Cf. JuliaPackaging/Yggdrasil#9761
stemann added a commit to stemann/mlx that referenced this pull request Nov 28, 2024
awni pushed a commit to ml-explore/mlx that referenced this pull request Nov 28, 2024
* CMake: Enabled using Accelerate on x86_64 / x64

Cf. JuliaPackaging/Yggdrasil#9761

* CMake: Removed superfluous MLX_BUILD_ARM
@rveltz
Copy link

rveltz commented Dec 4, 2024

It seems stalled, is there any issue (can't wait trying this)

@stemann
Copy link
Contributor Author

stemann commented Dec 4, 2024

@rveltz MLX on Julia is definitely not stalled - just need #9809 merged to proceed with MLX.jl.

Feel free to contribute and/or open issues (e.g. describing your use case).

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.

3 participants