EricLBuehler / mistral.rs

Blazingly fast LLM inference.
MIT License
2.94k stars 212 forks source link

Build fail in Mac M1, Sonoma #496

Open trickster opened 4 days ago

trickster commented 4 days ago

Describe the bug Tried to build with latest commit.

Default host: aarch64-apple-darwin
rustup home:  /Users/user/.rustup

stable-aarch64-apple-darwin (default)
rustc 1.79.0 (129f3b996 2024-06-10)
cargo build --release --features metal
   Compiling candle-core v0.6.0 (https://github.com/EricLBuehler/candle.git?rev=b438cba3f8742519d6f2154209e096c123fc3eb9#b438cba3)
   Compiling darling v0.11.0
   Compiling esaxx-rs v0.1.10
   Compiling derive_builder v0.20.0
   Compiling hyper-util v0.1.5
   Compiling matchers v0.1.0
   Compiling memoffset v0.9.1
   Compiling rust_decimal v1.35.0
   Compiling dirs v5.0.1
   Compiling unicode-normalization v0.1.23
   Compiling pyo3-ffi v0.21.2
   Compiling cfgrammar v0.13.7
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling clap_derive v4.5.8
   Compiling strum_macros v0.26.4
   Compiling Inflector v0.11.4
   Compiling str_inflector v0.12.0
   Compiling unicase v2.7.0
   Compiling sharded-slab v0.1.7
   Compiling cpufeatures v0.2.12
   Compiling futures-executor v0.3.30
error[E0308]: mismatched types
   --> /Users/user/.cargo/git/checkouts/candle-c6a149c3b35a488f/b438cba/candle-core/src/quantized/metal.rs:132:39
    |
132 |         let src = crate::Storage::Cpu(src);
    |                   ------------------- ^^^ expected `CpuStorage`, found `&CpuStorage`
    |                   |
    |                   arguments to this enum variant are incorrect
    |
note: tuple variant defined here
   --> /Users/user/.cargo/git/checkouts/candle-c6a149c3b35a488f/b438cba/candle-core/src/storage.rs:10:5
    |
10  |     Cpu(CpuStorage),
    |     ^^^
help: consider using clone here
    |
132 |         let src = crate::Storage::Cpu(src.clone());
    |                                          ++++++++

error[E0599]: no method named `as_slice` found for enum `Storage` in the current scope
    --> /Users/user/.cargo/git/checkouts/candle-c6a149c3b35a488f/b438cba/candle-core/src/quantized/metal.rs:136:36
     |
136  |             storage.from_float(src.as_slice::<f32>()?)?;
     |                                    ^^^^^^^^ method not found in `Storage`
     |
    ::: /Users/user/.cargo/git/checkouts/candle-c6a149c3b35a488f/b438cba/candle-core/src/storage.rs:9:1
     |
9    | pub enum Storage {
     | ---------------- method `as_slice` not found for this enum
     |
note: the method `as_slice` exists on the type `CpuStorage`
    --> /Users/user/.cargo/git/checkouts/candle-c6a149c3b35a488f/b438cba/candle-core/src/cpu_backend/mod.rs:1541:5
     |
1541 |     pub fn as_slice<D: WithDType>(&self) -> Result<&[D]> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   Compiling crc32fast v1.4.2
   Compiling tracing-log v0.2.0
   Compiling minijinja v2.0.2
   Compiling nibble_vec v0.1.0
   Compiling unicode-normalization-alignments v0.1.12
   Compiling thread_local v1.1.8
   Compiling proc-macro-error v1.0.4
   Compiling mistralrs-core v0.1.23 (/Users/user/Projects/mistral.rs/mistralrs-core)
   Compiling same-file v1.0.6
   Compiling indoc v2.0.5
   Compiling unindent v0.2.3
   Compiling zip v1.1.4
   Compiling endian-type v0.1.2
   Compiling unchecked-index v0.2.2
   Compiling defmac v0.1.3
   Compiling percent-encoding v2.3.1
   Compiling unicode-bidi v0.3.15
   Compiling unicode_categories v0.1.1
   Compiling system-configuration-sys v0.5.0
   Compiling pyo3 v0.21.2
   Compiling tokenizers v0.19.1
   Compiling idna v0.5.0
   Compiling form_urlencoded v1.2.1
Some errors have detailed explanations: E0308, E0599.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `candle-core` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

Latest commit 4ae9bc964ff8e8b341295f5369b7897a3a34dd80

EricLBuehler commented 4 days ago

@trickster thanks for reporting this. It should be fixed now, can you please git pull and try it again?