-
Notifications
You must be signed in to change notification settings - Fork 3k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Getting the following error when loading models (across 2 nodes) with commit 7117d74.
[ 04:42:23.8983PM | WARNING ] Runner f191e512-da70-460e-a765-22ec2c3e617b crashed with critical exception [metal::Device] Unable to build metal library from source
mlx/backend/metal/kernels/utils.h:64:25: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
instantiate_float_limit(bfloat16_t);
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:51:17: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:64:1: error: redefinition of 'Limits<half>'
instantiate_float_limit(bfloat16_t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:51:10: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:62:1: note: previous definition is here
instantiate_float_limit(half);
^
mlx/backend/metal/kernels/utils.h:51:10: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^
mlx/backend/metal/kernels/utils.h:73:15: error: use of undeclared identifier 'complex64_t'
struct Limits<complex64_t> {
^
mlx/backend/metal/kernels/utils.h:144:12: error: no template named 'vec'; did you mean 'metal::vec'?
METAL_FUNC vec<IdxT, 2> elem_to_loc_2_nd(
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:150:3: error: no template named 'vec'; did you mean 'metal::vec'?
vec<IdxT, 2> loc = {
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:167:12: error: no template named 'vec'; did you mean 'metal::vec'?
METAL_FUNC vec<IdxT, 3> elem_to_loc_3_nd(
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:174:3: error: no template named 'vec'; did you mean 'metal::vec'?
vec<IdxT, 3> loc = {
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:318:8: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
inline bfloat16_t log1p(bfloat16_t x) {
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:318:25: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
inline bfloat16_t log1p(bfloat16_t x) {
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:321:19: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
return Limits<bfloat16_t>::max;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:327:10: error: use of undeclared identifier 'bfloat16_t'; did you mean 'float16_t'?
return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f)));
^
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:330:8: error: unknown type name 'complex64_t'
inline complex64_t log1p(complex64_t in) {
^
mlx/backend/metal/kernels/utils.h:330:26: error: unknown type name 'complex64_t'
inline complex64_t log1p(complex64_t in) {
^
mlx/backend/metal/kernels/utils.h:338:14: error: excess elements in scalar initializer
return {x, theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:340:12: error: excess elements in scalar initializer
return {0.5f * log1p(r), theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:343:12: error: excess elements in scalar initializer
return {metal::log(z0), theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:362:10: error: call to 'simd_shuffle_down' is ambiguous
return simd_shuffle_down(static_cast<uint32_t>(data), delta);
^~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:351:17: note: candidate function
inline uint64_t simd_shuffle_down(uint64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:356:16: note: candidate function
inline int64_t simd_shuffle_down(int64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:361:13: note: candidate function
inline bool simd_shuffle_down(bool data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:365:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:365:38: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:379:10: error: call to 'simd_shuffle_up' is ambiguous
return simd_shuffle_up(static_cast<uint32_t>(data), delta);
^~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:370:17: note: candidate function
inline uint64_t simd_shuffle_up(uint64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:374:16: note: candidate function
inline int64_t simd_shuffle_up(int64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:378:13: note: candidate function
inline bool simd_shuffle_up(bool data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:382:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:382:36: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:400:10: error: call to 'simd_shuffle_and_fill_up' is ambiguous
return simd_shuffle_and_fill_up(
^~~~~~~~~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:388:1: note: candidate function
simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:394:1: note: candidate function
simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:399:13: note: candidate function
inline bool simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:404:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_and_fill_up(
^
mlx/backend/metal/kernels/utils.h:405:5: error: unknown type name 'complex64_t'
complex64_t data,
^
mlx/backend/metal/kernels/utils.h:406:5: error: unknown type name 'complex64_t'
complex64_t filling,
^
mlx/backend/metal/kernels/utils.h:422:10: error: call to 'simd_shuffle' is ambiguous
return simd_shuffle(static_cast<uint32_t>(data), lane);
^~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:413:17: note: candidate function
inline uint64_t simd_shuffle(uint64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:417:16: note: candidate function
inline int64_t simd_shuffle(int64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:421:13: note: candidate function
inline bool simd_shuffle(bool data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:425:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:425:33: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:93: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:136: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/indexing/gather_front.h:14:14: error: use of undeclared identifier 'offset_neg_idx'
auto idx = offset_neg_idx(indices[index.y], size);
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:123: note: in instantiation of function template specialization 'gather_front<half, int, int, 2>' requested here
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/wysie/.local/share/uv/python/cpython-3.13.12-macos-aarch64-none/lib/python3.13/multiprocessing/spawn.py", line 122, in spawn_main
exitcode = _main(fd, parent_sentinel)
│ │ └ 3
│ └ 88
└ <function _main at 0x1030467a0>
File "/Users/wysie/.local/share/uv/python/cpython-3.13.12-macos-aarch64-none/lib/python3.13/multiprocessing/spawn.py", line 135, in _main
return self._bootstrap(parent_sentinel)
│ │ └ 3
│ └ <function BaseProcess._bootstrap at 0x102f41760>
└ <Process name='Process-1' parent=46494 started daemon>
File "/Users/wysie/.local/share/uv/python/cpython-3.13.12-macos-aarch64-none/lib/python3.13/multiprocessing/process.py", line 313, in _bootstrap
self.run()
│ └ <function BaseProcess.run at 0x102f40cc0>
└ <Process name='Process-1' parent=46494 started daemon>
File "/Users/wysie/.local/share/uv/python/cpython-3.13.12-macos-aarch64-none/lib/python3.13/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
│ │ │ │ │ └ {}
│ │ │ │ └ <Process name='Process-1' parent=46494 started daemon>
│ │ │ └ (BoundInstance(instance=MlxJacclInstance(instance_id='60536771-cde9-4ed8-b610-56442ea1a915', shard_assignments=ShardAssignmen...
│ │ └ <Process name='Process-1' parent=46494 started daemon>
│ └ <function entrypoint at 0x10af7ff60>
└ <Process name='Process-1' parent=46494 started daemon>
> File "/Users/wysie/exo/src/exo/worker/runner/bootstrap.py", line 54, in entrypoint
runner.main()
│ └ <function Runner.main at 0x11a61bce0>
└ <exo.worker.runner.llm_inference.runner.Runner object at 0x11a4d34d0>
File "/Users/wysie/exo/src/exo/worker/runner/llm_inference/runner.py", line 141, in main
self.handle_first_task(task)
│ │ └ StartWarmup(task_id='c2a4d968-f67d-4656-a766-3809deea23b7', task_status=<TaskStatus.Pending: 'Pending'>, instance_id='6053677...
│ └ <function Runner.handle_first_task at 0x11a61bd80>
└ <exo.worker.runner.llm_inference.runner.Runner object at 0x11a4d34d0>
File "/Users/wysie/exo/src/exo/worker/runner/llm_inference/runner.py", line 220, in handle_first_task
self.generator.warmup()
│ │ └ <function BatchGenerator.warmup at 0x11a61b4c0>
│ └ BatchGenerator(model=Model(
│ (model): MiniMaxModel(
│ (embed_tokens): QuantizedEmbedding(200064, 3072, group_size=64, bits...
└ <exo.worker.runner.llm_inference.runner.Runner object at 0x11a4d34d0>
File "/Users/wysie/exo/src/exo/worker/runner/llm_inference/batch_generator.py", line 342, in warmup
self.check_for_cancel_every = warmup_inference(
│ │ └ <function warmup_inference at 0x11a5d5800>
│ └ 50
└ BatchGenerator(model=Model(
(model): MiniMaxModel(
(embed_tokens): QuantizedEmbedding(200064, 3072, group_size=64, bits...
File "/Users/wysie/exo/src/exo/worker/engines/mlx/generator/generate.py", line 344, in warmup_inference
for _r in stream_generate(
└ <function stream_generate at 0x11a09f060>
File "/Users/wysie/exo/.venv/lib/python3.13/site-packages/mlx_lm/generate.py", line 705, in stream_generate
for n, (token, logprobs, from_draft) in enumerate(token_generator):
└ <generator object stream_generate.<locals>.<genexpr> at 0x11a70e420>
File "/Users/wysie/exo/.venv/lib/python3.13/site-packages/mlx_lm/generate.py", line 695, in <genexpr>
(token, logprobs, False) for token, logprobs in token_generator
File "/Users/wysie/exo/.venv/lib/python3.13/site-packages/mlx_lm/generate.py", line 438, in generate_step
mx.eval([c.state for c in prompt_cache])
│ │ └ [<mlx_lm.models.cache.KVCache object at 0x11a602a50>, <mlx_lm.models.cache.KVCache object at 0x11a573750>, <mlx_lm.models.cac...
│ └ <nanobind.nb_func object at 0x10b023ab0>
└ <module 'mlx.core' from '/Users/wysie/exo/.venv/lib/python3.13/site-packages/mlx/core.cpython-313-darwin.so'>
RuntimeError: [metal::Device] Unable to build metal library from source
mlx/backend/metal/kernels/utils.h:64:25: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
instantiate_float_limit(bfloat16_t);
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:51:17: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:64:1: error: redefinition of 'Limits<half>'
instantiate_float_limit(bfloat16_t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:51:10: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:62:1: note: previous definition is here
instantiate_float_limit(half);
^
mlx/backend/metal/kernels/utils.h:51:10: note: expanded from macro 'instantiate_float_limit'
struct Limits<type> { \
^
mlx/backend/metal/kernels/utils.h:73:15: error: use of undeclared identifier 'complex64_t'
struct Limits<complex64_t> {
^
mlx/backend/metal/kernels/utils.h:144:12: error: no template named 'vec'; did you mean 'metal::vec'?
METAL_FUNC vec<IdxT, 2> elem_to_loc_2_nd(
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:150:3: error: no template named 'vec'; did you mean 'metal::vec'?
vec<IdxT, 2> loc = {
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:167:12: error: no template named 'vec'; did you mean 'metal::vec'?
METAL_FUNC vec<IdxT, 3> elem_to_loc_3_nd(
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:174:3: error: no template named 'vec'; did you mean 'metal::vec'?
vec<IdxT, 3> loc = {
^~~
metal::vec
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.864/include/metal/metal_extended_vector:447:1: note: 'metal::vec' declared here
using vec = T __attribute__((__ext_vector_type__(N)));
^
mlx/backend/metal/kernels/utils.h:318:8: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
inline bfloat16_t log1p(bfloat16_t x) {
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:318:25: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
inline bfloat16_t log1p(bfloat16_t x) {
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:321:19: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
return Limits<bfloat16_t>::max;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:327:10: error: use of undeclared identifier 'bfloat16_t'; did you mean 'float16_t'?
return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f)));
^
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/utils.h:330:8: error: unknown type name 'complex64_t'
inline complex64_t log1p(complex64_t in) {
^
mlx/backend/metal/kernels/utils.h:330:26: error: unknown type name 'complex64_t'
inline complex64_t log1p(complex64_t in) {
^
mlx/backend/metal/kernels/utils.h:338:14: error: excess elements in scalar initializer
return {x, theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:340:12: error: excess elements in scalar initializer
return {0.5f * log1p(r), theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:343:12: error: excess elements in scalar initializer
return {metal::log(z0), theta};
^ ~~~~~~~~
mlx/backend/metal/kernels/utils.h:362:10: error: call to 'simd_shuffle_down' is ambiguous
return simd_shuffle_down(static_cast<uint32_t>(data), delta);
^~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:351:17: note: candidate function
inline uint64_t simd_shuffle_down(uint64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:356:16: note: candidate function
inline int64_t simd_shuffle_down(int64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:361:13: note: candidate function
inline bool simd_shuffle_down(bool data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:365:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:365:38: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:379:10: error: call to 'simd_shuffle_up' is ambiguous
return simd_shuffle_up(static_cast<uint32_t>(data), delta);
^~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:370:17: note: candidate function
inline uint64_t simd_shuffle_up(uint64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:374:16: note: candidate function
inline int64_t simd_shuffle_up(int64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:378:13: note: candidate function
inline bool simd_shuffle_up(bool data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:382:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:382:36: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:400:10: error: call to 'simd_shuffle_and_fill_up' is ambiguous
return simd_shuffle_and_fill_up(
^~~~~~~~~~~~~~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:388:1: note: candidate function
simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:394:1: note: candidate function
simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:399:13: note: candidate function
inline bool simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta) {
^
mlx/backend/metal/kernels/utils.h:404:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle_and_fill_up(
^
mlx/backend/metal/kernels/utils.h:405:5: error: unknown type name 'complex64_t'
complex64_t data,
^
mlx/backend/metal/kernels/utils.h:406:5: error: unknown type name 'complex64_t'
complex64_t filling,
^
mlx/backend/metal/kernels/utils.h:422:10: error: call to 'simd_shuffle' is ambiguous
return simd_shuffle(static_cast<uint32_t>(data), lane);
^~~~~~~~~~~~
mlx/backend/metal/kernels/utils.h:413:17: note: candidate function
inline uint64_t simd_shuffle(uint64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:417:16: note: candidate function
inline int64_t simd_shuffle(int64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:421:13: note: candidate function
inline bool simd_shuffle(bool data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:425:8: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/utils.h:425:33: error: unknown type name 'complex64_t'
inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) {
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:93: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:136: error: unknown type name 'bfloat16_t'; did you mean 'float16_t'?
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^~~~~~~~~~
float16_t
mlx/backend/metal/kernels/utils.h:7:14: note: 'float16_t' declared here
typedef half float16_t;
^
mlx/backend/metal/kernels/indexing/gather_front.h:14:14: error: use of undeclared identifier 'offset_neg_idx'
auto idx = offset_neg_idx(indices[index.y], size);
^
mlx/backend/metal/kernels/indexing/gather_front.h:26:123: note: in instantiation of function template specialization 'gather_front<half, int, int, 2>' requested here
template [[host_name("gather_frontbfloat16_int32_int_2")]] [[kernel]] decltype(gather_front<bfloat16_t, int32_t, int, 2>) gather_front<bfloat16_t, int32_t, int, 2>;
^
To Reproduce
Steps to reproduce the behavior:
- checkout 7117d74
- run exo and load a model that needs > 2 nodes (e.g MiniMax 2.5 6-bit)
Expected behavior
Model should load and run.
Actual behavior
Throws the error shown above.
Environment
- macOS Version:
- EXO Version:
- Hardware:
- Device 1: Mac Studio M4 Max 128GB
- Device 2: Mac Studio M4 Max 128GB
- Additional devices:
- Interconnection:
- Thunderbolt
Additional context
This error does not happen if you go just one commit back (178c617)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working