It was pretty hard to saturate the memory bandwidth on the M2 on the CPU side (not sure about the GPU).
Llama.cpp is a pretty extreme cpu ram bus saturator, but I dunno how close it is (and its kind of irrelevant because why wouldn't you use a Metal backend).
If you want to run larger models, then CPU inference is your only choice.
Also, not many implementations can even use it.