-
Notifications
You must be signed in to change notification settings - Fork 154
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
OpenElm 270M 4-bit crashes on 2018 iPad Pro (A12X Bionic) #72
Comments
Possibly. This issue has some discussion on the subject: I have used it on an iPhone 12 which has an A14 (Apple7 metal support). A12 series is Apple5 so there are certainly a bunch of features missing. My guess is this one is "SIMD-scoped reduction operations" which is first supported in Apple7. |
Yea it looks like it. Since we won't support old devices without SIMD ops, maybe the best thing to do is disable compilation for older GPU families? I think it makes sense to draw the line at Apple 7, since it's been tested (and it corresponds to M1). |
I don't know if we can limit compilation. I think we can target different gpu families in the App Store :-) Maybe a runtime check to at least print a warning? |
I will have to play around with that -- the same binary is used on all platforms. The only check I know of is the minimum OS version. |
I was thinking this would in MLX core rather than in the Swift front-end. E.g. just a static assert in one of the metal header files (like utils.h). I think you are right that there is no environment variable for the GPU family. A runtime warning is workable, but compile is nicer if we can finagle it. I added this to #ifndef __METAL__
static_assert(
false,
"Building the Metal back-end requires an Apple GPU supporting Metal >= 3.0");
#endif |
When I try to generate output with OpenElm 270M on a 2018 iPad Pro, the LLMEval demo app crashes with the following error:
It works on my iPhone 13 and on my M3 MacBook Pro, so perhaps there's an issue with the A12X Bionic chip?
The text was updated successfully, but these errors were encountered: