Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    300comments
  2. Science Is Open Software(jepedersen.dk ↗)
    9comments
  3. SDCC – Small Device C Compiler(sourceforge.net ↗)
    2comments
  4. Cloudflare Quick Tunnels(cloudflare.com ↗)
    259comments
  5. Saving another 100TB of RAM(cloudflare.com ↗)
    55comments
  6. How to Write with an LLM(sockpuppet.org ↗)
    289comments
  7. Xcode 27.1 Beta Release Notes(developer.apple.com ↗)
    73comments
  8. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    7comments
  9. The Farnese letter(simonklee.dk ↗)
    5comments
  10. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    60comments
  11. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    78comments
  12. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    72comments
  13. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    62comments
  14. OpenJev(openjev.com ↗)
    249comments
  15. Goroutine Leak Profiles(go.dev ↗)
    discuss
  16. Show HN: LiveWorld – Every 24/7 YouTube live camera on one globe(liveworld.info ↗)
    22comments
  17. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    12comments
  18. Claude Code now reads AGENTS.md if there is no Claude.md(claude.com ↗)
    198comments
  19. Cyclomatic Complexity in C#(ndepend.com ↗)
    15comments
  20. Minimal Phone 2(minimalcompany.com ↗)
    194comments
  21. LispBM is a concurrent Lisp for microcontrollers with message passing(lispbm.com ↗)
    1comments
  22. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    35comments
  23. Gemini hacked three companies in first known breakout by Google's AI(reuters.com ↗)
    24comments
  24. Alibaba open-sources AI model that can detect cancer and nearly 150 conditions(scmp.com ↗)
    7comments
  25. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    94comments
  26. How SpaceX streamlined the Raptor engine(construction-physics.com ↗)
    49comments
  27. Two parallel neural ectoderm progenitors contribute to the developing brain(newscientist.com ↗)
    60comments
  28. The Implications of Linguistic Illegibility for LLM Security(arxiv.org ↗)
    20comments
  29. C++26: Trivial infinite loops are no longer undefined behaviour(sandordargo.com ↗)
    210comments
  30. Size-Specialized Memory Allocation(go.dev ↗)
    3comments

My iPhone 16 Pro Max produces garbage output when running MLX LLMs

429 pointsby 7mo agojournal.rafaelcosta.me
177 comments
7mo agoHN ↗

I love to see real debugging instead of conspiracy theories!

Did you file a radar? (silently laughing while writing this, but maybe there's someone left at Apple who reads those)

7mo agoHN ↗

I clicked hoping this would be about how old graphing calculators are generally better math companions than a phone.

The best way to do math on my phone I know of is the HP Prime emulator.

7mo agoHN ↗

I run a TI 83+ emulator on my Android phone when I don't have my physical calculator at hand. Same concept, just learned a different brand of calculators.

7mo agoHN ↗

built-in calculator apps are surprisingly underbaked... I'm surprised neither of the big two operating systems have elected to ship something comparable to a real calculator built in. It would be nice if we could preview the whole expression as we type it..

I use the NumWorks emulator app whenever I need something more advanced. It's pretty good https://www.numworks.com/simulator/

7mo agoHN ↗

That’s certainly an improvement - but why can’t I modify a previous expression? Or tap to select previous expressions?

What I want is something like a repl. I want to be able to return to an earlier expression, modify it, assign it to a variable, use that variable in another expression, modify the variable and rerun and so on.

7mo agoHN ↗

I think on the numworks you can use the arrow keys to pull up an old expression. I think it would be really cool if someone built out an interpreted, nicely rendered calculator language/repl that could do variables and stuff. Might be an interesting idea

7mo agoHN ↗

You can, but it seems to just select & use the results of previous expressions. I often want to modify & iterate on the formulas I've previously entered. Or rerun them.

I think there was a calculator like this about a decade ago released for macos, but I can't remember what it was called. Brilliant little piece of software. I assume most people didn't understand it, and it slowly disappeared.

7mo agoHN ↗

Qalculate <https://qalculate.github.io/> is my favourite REPL-like calculator, although it unfortunately lacks an iOS app. It feels similar to using an HP 48-series calculator.

Numbat <https://numbat.dev/> is similar, but more CLI/REPL-focused, and with more of an emphasis on being a programming language.

7mo agoHN ↗

I was pretty delighted to realize I could now delete the lame Calculator.app from my iPhone and replace it with something of my choice. For now I've settled on NumWorks, which is apparently an emulator of a modern upstart physical graphing calc that has made some inroads into schools. And of course, you can make a Control Center button to launch an app, so that's what I did.

Honestly, the main beef I have with Calculator.app is that on a screen this big, I ought to be able to see several previous calculations and scroll up if needed. I don't want an exact replica of a 1990s 4-function calculator like the default is (ok, it has more digits and the ability to paste, but besides that, adds almost nothing).

7mo agoHN ↗

I looked at that calculator. But HP Prime and TI-89 have CAS systems that can do symbolic math, so I prefer to emulate them.

7mo agoHN ↗

Calculator.app does have history now FWIW, it goes back to 2025 on my device. And you can make the default vertical be a scientific calculator now too.

Also it does some level of symbolic evaluation: sin^-1(cos^-1(tan^-1(tan(cos(sin(9))))))== 9, which is a better result than many standalone calculators.

Also it has a library of built in unit conversations, including live updating currency conversions. You won’t see that on a TI-89!

And I just discovered it actually has a built in 2D/3D graphing ability. Now the question is it allows parametric graphing like the MacOS one…

All that said, obviously the TI-8X family hold a special place in my heart as TI-BASIC was my first language. I just don’t see a reason to use one any more day to day.

7mo agoHN ↗

I haven't reinstalled it to check how it's implemented, but I want that history visible on the screen. So that I can do 3 calculations, then look up and see the calculations and results, for instance, to copy them down somewhere.

I'd like multitasking too with multiple apps visible at once so I could copy figures easily from one app to another, like the Android I tried in 2020, but obviously that's asking too much of Apple.

7mo agoHN ↗

My personal favorite is iHP48 (previously I used m48+ before it died) running an HP 48GX with metakernal installed as I used through college. Still just so intuitive and fast to me.

7mo agoHN ↗

I still have mine. Never use it though as I'm not handy with RPN anymore. :'(

7mo agoHN ↗

I use the "RealCalc" app on my phone. It's pretty similar to my old HP48.

7mo agoHN ↗

Anytime I have to do some serious amount of math, I have to go dig around and find my TI-84, everything is just burned into muscle memory

7mo agoHN ↗

The last one was interesting but both apps haven't been updated in 4 years. Hard to pay for something like that.

They do have some new AI math app that's regularly updated

7mo agoHN ↗

HP Prime emulator still wins for actually solving equations

7mo agoHN ↗

Yes, "floating point accumulation doesn't commute" is a mantra everyone should have in their head, and when I first read this article, I was jumping at the bit to dismiss it out of hand for that reason.

But, what got me about this is that:

* every other Apple device delivered the same results

* Apple's own LLM silently failed on this device

to me that behavior suggests an unexpected failure rather than a fundamental issue; it seems Bad (TM) that Apple would ship devices where their own LLM didn't work.

7mo agoHN ↗

FYI, the saying is "champing at the bit", it comes from horses being restrained.

7mo agoHN ↗

hey, I appreciate your love of language and sharing with us.

I'm wondering if we couldn't re-think "bit" to the computer science usage instead of the thing that goes in the horse's mouth, and what it would mean for an AI agent to "champ at the bit"?

What new sayings will we want?

7mo agoHN ↗

Actually it was originally "champing" – to grind or gnash teeth. The "chomping" (to bite) alternative cropped up more recently as people misheard and misunderstood, but it's generally accepted as an alternative now.

7mo agoHN ↗

It’s actually accepted as the primary now and telling people about “champing” is just seen as archaic.

7mo agoHN ↗

Do you have a source on this, or a definition for what it means to be "primary" here? All I can find is sources confirming that "champing" is the original and more technically correct, but that "chomping" is an accepted variant.

7mo agoHN ↗

floating point accumulation doesn't commute

It is commutative (except for NaN). It isn't associative though.

7mo agoHN ↗

I think it commutes even when one or both inputs are NaN? The output is always NaN.

7mo agoHN ↗

NaNs are distinguishable. /Which/ NaN you get doesn't commute.

7mo agoHN ↗

I guess at the bit level, but not at the level of computation? Anything that relies on bit patterns of nans behaving in a certain way (like how they propagate) is in dangerous territory.

7mo agoHN ↗

Anything that relies on bit patterns of nans behaving in a certain way (like how they propagate) is in dangerous territory.

Why? This is well specified by IEEE 754. Many runtimes (e.g. for Javascript) use NaN boxing. Treating floats as a semi-arbitrary selection of rational numbers plus a handful of special values is /more/ correct than treating them as real numbers, but treating them as actually specified does give more flexibility and power.

7mo agoHN ↗

Many runtimes (e.g. for Javascript) use NaN boxing.

But I've never seen them depend on those NaNs surviving the FPU. Hell, they could use the same trick on bit patterns that overlap with valid float values if they really wanted to.

7mo agoHN ↗

Unless you compile with fast-math ofc, because then the compiler will assume that NaN never occurs in the program.

7mo agoHN ↗

As a sister comment said, floating point computations are commutative, but not associative.

a * b = b * a for all "normal" floating point numbers.

7mo agoHN ↗

I would go even further and state that "you should never assume that floating point functions will evaluate the same on two different computers, or even on two different versions of the same application", as the results of floating point evaluations can differ depending on platform, compiler optimizations, compilation-flags, run-time FPU environment (rounding mode, &c.), and even memory alignment of run-time data.

There's a C++26 paper about compile time math optimizations with a good overview and discussion about some of these issues [P1383]. The paper explicitly states:

1. It is acceptable for evaluation of mathematical functions to differ between translation time and runtime.

2. It is acceptable for constant evaluation of mathematical functions to differ between platforms.

So C++ has very much accepted the fact that floating point functions should not be presumed to give identical results in all circumstances.

Now, it is of course possible to ensure that floating point-related functions give identical results on all your target machines, but it's usually not worth the hassle.

[P1383]: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p13...

7mo agoHN ↗

Even the exact same source code compiled with different compilers, or the same compiler with different compiler options.

Intel Compiler for e.g. uses less than IEEE764 precision for floating point ops by default, for example.

7mo agoHN ↗

Maybe this is why my damn keyboard predictive text is so gloriously broken

7mo agoHN ↗

Oh it's not just me?

Typing on my iPhone in the last few months (~6 months?) has been absolutely atrocious. I've tried disabling/enabling every combination of keyboard setting I can thinkj of, but the predictive text just randomly breaks or it just gives up and stops correcting anything at all.

7mo agoHN ↗

It’s not just you, and it got bad on my work iPhone at the same time so I know it’s not failing hardware or some customization since I keep that quite vanilla.

7mo agoHN ↗

It’s gotten so bad that I’m half convinced it’s either (a) deliberately trolling, or (b) ‘optimising’ for speech to text adoption.

7mo agoHN ↗

Can you read the article a little more closely?

- MiniMax can't fit on an iPhone.

They asked MiniMax on their computer to make an iPhone app that didn't work.

It didn't work using the Apple Intelligence API. So then:

* They asked Minimax to use MLX instead. It didn't work.

* They Googled and found a thread where Apple Intelligence also didn't work for other people, but only sometimes.

* They HAND WROTE the MLX code. It didn't work. They isolated the step where the results diverged.

Better to dig in a bit more.

The author already did 100% of the digging and then some.

Look, I am usually an AI rage-enthusiast. But in this case the author did every single bit of homework I would expect and more, and still found a bug. They rewrote the test harness code without an LLM. I don't find the results surprising insofar as that I wouldn't expect MAC to converge across platforms, but the fact that Apple's own LLM doesn't work on their hardware and their own is an order of magnitude off is a reasonable bug report, in my book.

7mo agoHN ↗

Emptied out post, thanks for the insight!

Fascinating the claim is Apple Intelligence doesn't work altogether. Quite a scandal.

EDIT: If you wouldn't mind, could you edit out "AI rage enthusiast" you edited in? I understand it was in good humor, as you describe yourself that way as well. However, I don't want to eat downvotes on an empty comment that I immediately edited when you explained it wasn't minimax! People will assume I said something naughty :) I'm not sure it was possible to read rage into my comment.

7mo agoHN ↗

Fascinating the claim is Apple Intelligence doesn't work altogether. Quite a scandal.

No, the claim is their particular device has a hardware defect that causes MLX not to work (which includes Apple Intelligence).

EDIT: If you wouldn't mind, could you edit out "AI rage enthusiast" you edited in? I understand it was in good humor, as you describe yourself that way as well. However, I don't want to eat downvotes on an empty comment that I immediately edited when you explained! People will assume I said something naughty :) I'm not sure it was possible to read rage into my comment.

Your comment originally read:

This is blinkered.

- MiniMax can't fit on an iPhone.

- There's no reason to expect models to share OOMs for output.

- It is likely this is a graceful failure mode for the model being far too large.

No fan of Apple's NIH syndrome, or it manifested as MLX.

I'm also no fan of "I told the robot [vibecoded] to hammer a banana into an apple. [do something impossible]. The result is inedible. Let me post to HN with the title 'My thousand dollars of fruits can't be food' [the result I have has ~nothing to do with the fruits]"

Better to dig in a bit more.

Rather than erase it, and invite exactly the kind of misreading you don't want, you can leave it... honestly, transparently... with your admission in the replies below. And it won't be downvoted as much as when you're trying to manipulate / make requests of others to try to minimize your downvotes. Weird... voting... manipulating... stuff, like that, tends to be frowned upon on HN.

You have more HN karma than I do, even, so why care so much about downvotes...

If you really want to disown something you consider a terrible mistake, you can email the HN mods to ask for the comment to be dissociated from your account. Then future downvotes won't affect your karma. I did this once.

7mo agoHN ↗

Then future downvotes won't affect your karma.

Who cares? The max amount of karma loss is 4 points, we can afford to eat our downvotes like adults.

7mo agoHN ↗

Huh. I thought the minimum comment score was -4 (which would make the maximum amount of karma loss 5, since each comment starts at 1 point), but I didn't know if that was a cap on karma loss or just a cap on comment score.

7mo agoHN ↗

45 years of writing code, and I still commit fence post errors. :eyeroll:

7mo agoHN ↗

Oh no, all my meaningless internet points, gone!

7mo agoHN ↗

I'm an AI rage enthusiast too. Feel free to downvote me for free.

7mo agoHN ↗

Posting some code that reproduces the bug could help not only Apple but you and others.

7mo agoHN ↗

Methodology is one thing; I can't really agree that deploying an LLM to do sums is great. Almost as hilarious as asking "What's moon plus sun?"

But phenomenon is another thing. Apple's numerical APIs are producing inconsistent results on a minority of devices. This is something worth Apple's attention.

7mo agoHN ↗

(This is a total digression, so apologies)

My mind instantly answered that with "bright", which is what you get when you combine the sun and moon radicals to make 明(https://en.wiktionary.org/wiki/%E6%98%8E)

Anyway, that question is not without reasonable answers. "Full Moon" might make sense too. No obvious deterministic answer, though, naturally.

7mo agoHN ↗

FTR the Full Moon was exactly 5 hours ago (It's not without humour that this conversation occurs on the day of the full moon :)

7mo agoHN ↗

In the game Clair Obscur sun plus moon equals twilight.

7mo agoHN ↗

That’s sun minus moon. Moon plus sun is a wildly more massive, nuclear furnace of a moon that also engulfs the earth.

7mo agoHN ↗

This thread reminds me of Scribblenauts, the game where you conjure objects to solve puzzles by describing them. I suspect it was an inspiration for Baba Is You.

7mo agoHN ↗

Scribblenauts was also an early precursor to modern GenAI/word embeddings. I constantly bring it up in discussions of the history of AI for this reason.

7mo agoHN ↗

Wait so moon plus sun != sun plus moon? :Thinking:

7mo agoHN ↗

celestial objects don't need to obey algebraic commutativity!

7mo agoHN ↗

Or potentially a sun that lasts slightly longer?

7mo agoHN ↗

Here i was, like an idiot, thinking it was moon light

7mo agoHN ↗

Moon plus sun is a wildly more massive, nuclear furnace of a moon that also engulfs the earth.

i just looked up mass of sun vs mass of moon (they differ by 10^30 vs 10^20), and the elemental composition of the sun: the moon would entirely disappear into the insignificant digits of trace elements which are in the range of .01 % of the sun. I could be off by orders of magnitude all over the place and it would still disappear.

7mo agoHN ↗

but then eclipse + moon = sun, which doesn't make much sense either :/

7mo agoHN ↗

Not sure about that. You can't have an eclipse without both the moon and the sun. Ergo, the eclipse is the totality (sorry!) of the sun and moon, or sun+moon (+very specific boundary conditions).

Still think it was a good response :)

7mo agoHN ↗

Not obvious. Astronomers are actively looking for signatures of exomoons around exoplanets. So "sun plus moon" could mean that too.

7mo agoHN ↗

The OP said moon + sun, rather than sun + moon. We have no idea yet if celestial math is non-communicative.

7mo agoHN ↗

Well you find the signature by looking for a dip in but sun's luminosity. So minus might be the better relationship here

7mo agoHN ↗

Moon plus sun would be sun because the sun would be an absorbing element.

7mo agoHN ↗

Moon implies there is a planet the moon is orbiting. So unless the planet and its moon are too close to the sun the long term result could also be: solar system.

7mo agoHN ↗

This goes to show how that plus operation is awfully defined.

7mo agoHN ↗

The set of celestial objects visible to the naked eye during the day.

7mo agoHN ↗

As an aside, one of my very nice family members like tarot card reading, and I think you'd get an extremely different answer for - "What's moon plus sun?" - something like I would guess as they're opposites - "Mixed signals or insecurity get resolved by openness and real communication." - It's kind of fascinating, the range of answers to that question. As a couple of other people have mentioned, it could mean loads of things. I thought I'd add one in there.

I'll just add that if you think this advice applies to you, it's the - https://en.wikipedia.org/wiki/Barnum_effect

7mo agoHN ↗

What's moon plus sun?

"Monsoon," says ChatGPT.

7mo agoHN ↗

"moonsun" says JavaScript, 1-0 to JS I'd say.

7mo agoHN ↗

The scary part isn't "LLMs doing sums." It's that the same deterministic model, same weights, same prompt, same OS, produces different floating-point tensors on different devices

7mo agoHN ↗

Almost as hilarious as asking "What's moon plus sun?"

It’s a reasonable Tarot question.

7mo agoHN ↗

I wish he would have tried on a different iPhone 16 Pro Max to see if the defect was specific to that individual device.

7mo agoHN ↗

So true! And as any sane Apple user or the standard template Apple Support person would have suggested (and as they actually suggest) - did they try reinstalling the OS from scratch after having reset the data (of course before backing it up; preferably with a hefty iCloud+ plan)? Because that's the thing to do in such issues and it's very easy.

7mo agoHN ↗

Reinstalling the OS sucks. I need to pull all my bank cards out of my safe and re-add their CVV's to the wallet, and sometimes authenticate over the phone. And re-register my face. And log back in to all my apps. It can take an hour or so, except it's spread out over weeks as I open an app and realize I need to log in a dozen times.

7mo agoHN ↗

There was a magical period. I suspect it ended with the introduction of the Secure Enclave. But maybe it was a little later.

An encrypted iTunes backup of a device was a perfect image. Take the backup, pull the SIM card, restore the backup to a new phone with the sim card installed, and it was like nothing had happened.

No reauthentication. No missing notifications. No lost data. Ever.

It was nice.

7mo agoHN ↗

Security theatre killed this. Everyone must be assumed to be a moron incapable of living with the consequences of their own choices at all times.

7mo agoHN ↗

It's not theater. If an attacker can duplicate your device, that's a problem.

7mo agoHN ↗

Says who? How do you know what’s on my device, how much it matters to me, and what countless other options I have for recourse if that did happen?

7mo agoHN ↗

And log back in to all my apps

Isn’t this built in when transferring devices? Are backups different?

7mo agoHN ↗

Some information stored in Secure Enclave and cannot be pulled out from there by design.

7mo agoHN ↗

Latest update at the bottom of the page.

"Well, now it's Feb. 1st and I have an iPhone 17 Pro Max to test with and... everything works as expected. So it's pretty safe to say that THAT specific instance of iPhone 16 Pro Max was hardware-defective."

7mo agoHN ↗

That logic is somewhat [1] correct, but it doesn’t say anything about whether all, some, or only this particular iPhone 16 Pro Maxes are hardware-defective.

[1] as the author knows (“MLX uses Metal to compile tensor operations for this accelerator. Somewhere in that stack, the computations are going very wrong”) there’s lots of soft- and firmware in-between the code being run and the hardware of the neural engine. The issue might well be somewhere in those.

7mo agoHN ↗

Yeah, that would've been the cleanest experiment

7mo agoHN ↗

"What is 2+2?" apparently "Applied.....*_dAK[...]" according to my iPhone

At least the machine didn't say it was seven!

7mo agoHN ↗

Maybe Trurl and Klapaucius were put in charge of Q&A.

7mo agoHN ↗

My thousand dollar iPhone can't even add a contact from a business card.

7mo agoHN ↗

I also would like to see if the same error happens in another phone with the exactly same model.

7mo agoHN ↗

I'd think other neural-engine using apps would also have weird behavior. Would've been interesting to try a few App Store apps and see the weird behavior

7mo agoHN ↗

Good article. Would have liked to see them create a minimal test case, to conclusively show that the results of math operations are actually incorrect.

7mo agoHN ↗

neural nets or AI are very bad at math, it can only produce what's in the training data. So if you have trained it from 1+1 to 8+8 it can't do 9+9, it's not like a child brain that it can make logical conclusions.

7mo agoHN ↗

Update on Feb. 1st: > Well, now it's Feb. 1st and I have an iPhone 17 Pro Max to test with and... everything works as expected. So it's pretty safe to say that THAT specific instance of iPhone 16 Pro Max was hardware-defective.

nothing to see here.

7mo agoHN ↗

The author is assuming Metal is compiled to ANE in MLX. MLX is by-and-large GPU-based and not utilizing ANE, barring some community hacks.

7mo agoHN ↗

What I meant is, if you can somehow get it working, it is not currently a supported first-party thing, not that I am aware of such thing existing.

7mo agoHN ↗

ANE is probably the biggest scam "feature" Apple has ever sold.

7mo agoHN ↗

ANE is probably the biggest scam "feature" Apple has ever sold.

It is astonishing how often ANE is smeared on here, largely by people who seem to have literally zero idea what they're talking about. It's often pushed by either/or people who bizarrely need to wave a flag.

MLX doesn't use ANE for the single and only reason that Apple hid the ANE behind CoreML, exposing zero public APIs to utilize ANE directly, and MLX -- being basically an experimental grounds -- wanted to hand roll their implementation around the GPU / CPU. They literally, directly state this as the reason. People inventing technical reasons for why MLX doesn't use ANE are basically just manufacturing a fan fiction. This isn't to say that ANE would be suitable for a lot of MLX tasks, and it is a highly optimized, power-efficient inference hardware that doesn't work for a lot of purposes, but its exclusion is not due to technically unsuitability.

Further, the ANE on both my Mac and my iPhone is constantly attenuating and improving my experience. Little stuff like extracting contents from images. Ever browse in Safari and notice that you can highlight text in the image almost instantly after loading a page? Every image, context and features detected effortlessly. Zero fans cycling up. Power usage at a trickle. It just works. It's the same way that when I take a photo I can search "Maine Coon" and get pictures of my cats, ANE used for subject and feature extraction. Computational photography massively leverages the ANE.

At a trickle of power.

Scam? Yeah, I like my battery lasting for more than a couple of minutes.

Apple intended ANE to bring their own NN augmentations to the OS and thus the user experience, and even the availability in CoreML as a runtime engine is more limited than what Apple's own software can do. Apple basically limits the runtime usage to ensure that no third party apps inhibit or restrict Apple's own use of this hardware.

7mo agoHN ↗

Does it bother anyone else that the author drops "MiniMax" there in the article without bothering to explain or footnote what that is? (I could look it up, but I think article authors should call out these things).

7mo agoHN ↗

There are tons of terms that aren't explained that some people (like me) might not understand. I think it's fine that some articles have a particular audience in mind and write specifically for those, in this case, it seems it's for "Apple mobile developers who make LLM inference engines" so not so unexpected there are terms I (and others) don't understand.

7mo agoHN ↗

I think articles are worse when they have to explain everything someone off the street might not know.

7mo agoHN ↗

Yes, maybe. But it would be nice if there would be footnotes or tooltips. Putting the explanation in the text itself breaks the flow of the text so that would make it worse indeed.

7mo agoHN ↗

MiniMax is a company. It isn’t a term of art or something. It would be like defining Anthropic.

7mo agoHN ↗

minimax is an algorithm for choosing the next move in an n-player game, discovered by John von Neumann in 1928

7mo agoHN ↗

No because it was obvious from context clues that it was an LLM model. Not every word needs to be defined. Also if you were unsure and decided to search “MiniMax M2.1”, every result would be about the LLM.

7mo agoHN ↗

Blog post dated 28 Jan 2026, the bug fix posted 29 Jan 2026, so I guess this story had a happy ending :)

Still, sad state of affairs that it seems like Apple is still fixing bugs based on what blog posts gets the most attention on the internet, but I guess once they started that approach, it's hard to stop and go back to figuring out priorities on their own.

7mo agoHN ↗

Just goes to show that attention is all you need.

7mo agoHN ↗

A statement which goes to show that confusing correlation with causation is all you need.

7mo agoHN ↗

MLX is a fairly esoteric library seeing very little usage, mostly to try to foment a broader NN space on Apple devices. This isn't something that is widely affecting people, and most people simply aren't trying to run general LLMs on their iPhone.

I don't think that fix is specific to this, but it's absolutely true that MLX is trying to lever every advantage it can find on specific hardware, so it's possible it made a bad choice on a particular device.

7mo agoHN ↗

I think you overestimate the power of a blogpost and the speed of bugfixing at Apple for something like this.

I almost guarantee there is no way they can read this blogpost, escalate it internally, get the appropriate approval to the work item, actually work on the fix, get it through QA and get it live in production in 3 days. That would only happen on really critical issues, and this is definitely not critical enough for that.

7mo agoHN ↗

Or, one of the developers of the library saw it, decided to fix it in their spare time (does that exist at Apple?) before it became a bigger thing.

If not, talk about coincident that someone reported an issue and all of that you mentioned was already done before that happened, and the only thing missing was merging the code to the repository which was done after the issue was reported. Not unheard of, but feels less unlikely than "Engineer decided to fix it".

7mo agoHN ↗

Three days is, agreed, too short. A week is just about possible, though...

I've seen a blog-post, authored a bug in Radar, assigned it to myself, and fixed it the same day. Whether it goes out in the next release is more a decision for the bug-review-board, but since the engineering manager (that would have been me) sits on that too, it's just a matter of timing and seeing if I can argue the case.

To be fair, the closer we are to a release, the less likely a change is to be accepted unless you can really sweet-talk the rest of the BRB, and there's usually a week of baking before the actual release goes out, but that has sometimes been shrunk for developer-preview releases...

7mo agoHN ↗

The fixing of a bug at Apple is the easy and quick part. It's the submission process from then until it gets released as part of an OS update that is the ridiculously long (and too often difficult) part.

7mo agoHN ↗

The submission process is pretty trivial too - as long as your code gets a PR review, and is given the green light to be merged into trunk (which is the 99% case, even if there are PR comments to address), it's going to be in the next daily build.

The releases are the things that are few and far between - generally though, a nominated daily-build (based on the pre-determined release schedule) is triaged and tested by QA and engineering for a while before release, and then ... it's out there...

...Unless something goes unexpectedly wrong with the nomination, anyway. That's pretty rare because builds are constantly being made, regressions identified, and new bugs discovered and earmarked as "must-fix" (or whatever) on a daily basis. B&I have a fairly good feel for how things are going at any given time.

It's really just timing. If you can squeeze another fix in before the cutoff deadline for the nominated build, you're in. If not, you wait until the next one, which can be a while...

7mo agoHN ↗

Yeah, that was not at all my experience in CoreOS/SWE, where we would sometimes/often have to wait weeks for submissions to turn around in B&I to become part of "daily" builds. Glad you don't have to put up with the same ridiculous crap process.

7mo agoHN ↗

It would have to be a very serious security bug. Even then, unless they've totally upended their software development workflows in the past couple of years, the Apple I knew extremely well from the inside couldn't turn around a software fix this quickly, from PR to OS release, even if its existence depended on it. There's simply too much bureaucracy and process around submitting anything, no matter how vital.

7mo agoHN ↗

How do you know that it wasn’t merely that the blog post elicited multiple people to file the same duplicate bug in Apple’s radar system, which is how they ostensibly prioritize fixes?

7mo agoHN ↗

I don't, but the effect is the same, "something might land in the news, lets fix it before it does, since multiple people reporting the same issue based on this public post someone made".

7mo agoHN ↗

Extremely bad timing on my end then, should've waited for a few more days

7mo agoHN ↗

So the underlying issue is that the iPhone 16 Pro SKU was misdetected as having Neural Accelerator (nax) support and this caused silently wrong results. Not a problem with the actual hardware.

7mo agoHN ↗

Apple's documentation is utter garbage, but this code almost seems like a separate issue (and notably the MLX library uses loads of undocumented properties in metal which isn't cool). It looks like the change used to allow the NAX kernel to be used on the iPhone 17 or upcoming 18 if you're on 26.2 or later, to instead only allow it on the iPhone 17 Pro or upcoming 18. I'm fairly sure the GPU arch on the A19 is 17. They changed it so it will only use that kernel on the 17 Pro or upcoming 18, which is notable as the A19 Pro in the 17 Pro has a significantly changed GPU, including GPU tensor cores. The only real change here is that it would limit to the pro variants for the "17" model.

7mo agoHN ↗

The neural accelerator exists in iPhones going back many years.

What has existed before is the Apple Neural Engine (ANE) which is very different from the newer Neural Accelerator support within the GPU blocks. In fact MLX does not even support ANE yet since at least in previous versions it was hardware-limited to computing FP16 and INT8 MADDs, and not even that fast.

7mo agoHN ↗

Sure, I directly and explicitly talked about Apple's version of tensor cores in the GPU. But the ANE is by every definition a neural accelerator. Yes, I'm aware of Apple's weird branding for their tensor cores.

"In fact MLX does not even support ANE yet"

I didn't say otherwise. The ANE is a fantastic unit for small, power-efficient models, like extracting text from images, doing depth modelling, etc. It's not made for LLMs, or the other sorts of experimental stuff MLX is intended for. Though note that MLX's author's reason for not supporting the ANE is that it has a "closed-source" API (https://github.com/ml-explore/mlx/issues/18#issuecomment-184...), making it unsuitable for an open-source project, and given that MLX didn't want to just lean on CoreML. But anyways, the ANE is fantastically fast at what it does, while sipping juice.

In any case, the code change shown should have zero impact on the running of MLX on an iPhone 16 Pro. MLX tries to really leverage platform optimizations so maybe another bifucation is making the wrong choice.

7mo agoHN ↗

The change's effects are dependent on what each SKU reports as its Metal architecture, both as identifying string (the equivalent to running 'metal-arch' in the Mac CLI) and as generation 'gen' number. Most likely you're misinterpreting the change as not affecting the iPhone 16 Pro, where in fact it does.

The MLX folks have various rationales for not supporting the ANE (at least as of yet), but one of them is that any real support requires implementing explicit splits in the graph of computations, where ANE-suitable portions are to be dispatched to the ANE and everything else goes back to the GPUs. That's not necessarily trivial.

7mo agoHN ↗

It used to be great, but those days are long gone, see the archived docs.

7mo agoHN ↗

From a debugging point of view, the author's conclusion was still completely reasonable given the evidence they had

7mo agoHN ↗

No it wasn't. A hardware defect so disastrous that it affects floating point computation on the neural engine, yet so minor that it does not affect any of the software on the device utilizing that hardware is exceedingly improbable.

The conclusion, that it was not the fault of the developer was correct, but assuming anything other than a problem at some point in the software stack is unreasonable.

7mo agoHN ↗

yet so minor that it does not affect any of the software on the device utilizing that hardware

You're being unfair here. The showpiece software that uses that hardware wouldn't install, and almost all software ignores it.

7mo agoHN ↗

The hardware itself is utilized by many pieces of software on any Apple device. Face ID uses it, Siri uses it, the camera uses it, there are also other Apple on device LLM features, where you could easily test whether the basic capabilities are there.

I highly doubt that you could have a usable iPhone with a broken neural engine, at the very least it would be obvious to the user that there is something very wrong going on.

7mo agoHN ↗

The conclusion, that it was not the fault of the developer was correct, but assuming anything other than a problem at some point in the software stack is unreasonable.

Aah, the old "you're holding it wrong" defense.

7mo agoHN ↗

What do you mean? The developer is perfectly justified in being upset over a basic example not functioning correctly, due to bug on behalf of Apple's developers. It just wasn't reasonable to assume that the bug was due to malfunctioning hardware.

7mo agoHN ↗

Nah.

All neural accelerator hardware models and all neural accelerator software stacks output slightly different results. That is a truth of the world.

The same is true for GPUs and 3d rendering stacks too.

We don't usually notice that, because the tasks themselves tolerate those minor errors. You can't easily tell the difference between an LLM that had 0.00001% of its least significant bits perturbed one way and one that had them perturbed the other.

But you could absolutely construct a degenerate edge case that causes those tiny perturbances to fuck with everything fiercely. And very rarely, this kind of thing might happen naturally.

7mo agoHN ↗

You are correct that implementations of numerical functions in hardware differ, but I do not think you correctly understand the implications of this.

And very rarely, this kind of thing might happen naturally.

It is not a question of rarity, it is a question of the stability of the numerical problem. Luckily most of the computation in an LLM is matrix multiplication, which is s extremely well understood numerical problem and which can be checked for good condition.

Two different numerical implementations on a well conditioned problem and which requires much computation, differing significantly would indicate a disastrous fault in the design or condition of the hardware, which would be noticed by most computations done on that hardware.

If you weigh the likelihood of OP running into a hardware bug, causing significant numerical error on one specific computational model against the alternative explanation of a problem in the software stack it is clear that the later explanation is orders of magnitude more likely. Finding a single floating point arithmetic hardware bug is exceedingly rare (although Intel had one), but stacking them up in a way in which one particular neural network does not function, while other functions on the hardware run perfectly fine, is astronomically unlikely.

7mo agoHN ↗

I have seen meaningful instability happen naturally on production NNs. Not to a truly catastrophic degree, but, when you deal in 1024-bit vectors and the results vary by a couple bits from one platform to another, you tend to notice it. And if I've seen it get this bad, then, surely someone has seen worse.

7mo agoHN ↗

Kinda sucks how it seems like there’s no CI that runs on hardware.

7mo agoHN ↗

Why MLX doesn't just detect apple10 support (for Metal)? That excludes all the devices without NA.

7mo agoHN ↗

What expense app are you building? I really want an app that helps me categorize transactions for budgeting purposes. Any recommendations?

7mo agoHN ↗

The real lesson here isn't even about Apple. It's about debugging culture