Awni Hannun
Awni Hannun
@davidkoski is there a way to have the array actually get evaluated when you call `po` in the debugger? In Python, if you inspect an array in pdb the [`__repr__`...
Right.. so I guess I don't understand why it hangs with the implicit eval but not with the explicit eval. Shouldn't they both be running on a separate thread?
We're not opposed to having integer support for matmul, but it's not an active priority at the moment.
> but at least on Windows the destructors of static objects are called after the stream threads get terminated You're saying `StreamThread` is deleted before `Scheduler` is deleted. Then in...
Ok.. let's try and fix this. I'm pretty sure the schedulers destructor has the synchronize in there for a reason. It may not be relevant anymore.. but I remember adding...
I tried running a few jobs with this change and so far so good. I can't quite remember why I put the synchronize in the stream destructors (https://github.com/ml-explore/mlx/pull/1006). Idk.. maybe...
I'm not so keen on doing this in the Python exit hooks. Every other front-end would have the same issue and then we have to add custom deinits for every...
> The scheduler synchronizes on exit, and it implies the device is still alive when ~Scheduler is called, which only happens to be true in metal backend because of the...
Btw the reason the device is always initialized before the scheduler is a bit subtle (and may also need fixing). Right now we provide a default PRNG key in MLX....
In fact, in MLX with the metal back end the device is never destroyed before the scheduler because when the scheduler is constructed it creates the static device if it...