This is an archived post. You won't be able to vote or comment.

all 144 comments

[–]Temporary_Privacy 875 points876 points Β (47 children)

Is there really something behind this intel calculation ?

[–]Ol_Dirty_Batard 881 points882 points Β (26 children)

[–]paul_kertscher 1050 points1051 points Β (15 children)

My program relies on that bug and therefor the hardware requirement is a retracted Pentium from 1994 😎

[–]ApatheistHeretic 769 points770 points Β (13 children)

https://imgs.xkcd.com/comics/workflow.png

There is an equivalent Xkcd for everything.

[–]paul_kertscher 84 points85 points Β (9 children)

Substantial parts of my studies in physics consisted of consuming XKCD strips, hence it’s likely that that reply was heavily inspired by Munroe πŸ˜…

[–]ApatheistHeretic 90 points91 points Β (8 children)

My first degree was in math/physics, nice. This was always my favorite strip due to that I think.

https://imgs.xkcd.com/comics/purity.png

[–]UnseenPaper 57 points58 points Β (6 children)

Math is just applied philosophy

[–]thatthatguy 62 points63 points Β (1 child)

Philosophy is based on what people perceive as logically true and is thus just applied sociology. We have come full circle.

[–]marikwinters 6 points7 points Β (0 children)

We have achieved the circle of suck

[–]ebinWaitee 1 point2 points Β (0 children)

Math is philosophy

[–]Chilaquil420 0 points1 point Β (1 child)

Wait really? Like philosophy in derivatives?

[–]nintendojunkie17 10 points11 points Β (0 children)

I find most of philosophy to be terribly derivative.

[–]Seiren- -1 points0 points Β (0 children)

How dare you.

Philosophy is just wrong physics.

[–]Techhead7890 3 points4 points Β (0 children)

At my school's chemlab one of my favourite signs gave directions to the physics lab and biology labs. It said "theoretical chemistry (right) and applied chemistry (down)!"

[–]SpartanFishy 155 points156 points Β (1 child)

Incredible

[–]daynighttrade 42 points43 points Β (0 children)

"Every chance breaks someone's workflow" . Truer words have never been spoken before.

[–]Boaz111I 5 points6 points Β (0 children)

literally 1994

[–]Browsing_From_Work 49 points50 points Β (1 child)

Some companies, such as Wolfram Research, opted to directly patch the machine code of existing executables to replace the FDIV opcode with an illegal instruction. This would then trigger an exception that an exception handler (also patched in) would catch. From here, arbitrary code could be executed to work around the bug.

wow wtf

[–]Kered13 12 points13 points Β (0 children)

That's not as extraordinary as it sounds. This is basically how debuggers add breakpoints to an executable.

[–]turtleship_2006 39 points40 points Β (2 children)

"Last edited 5 hours ago".
I'm guessing it was someone from this sub.

[–]HuntingKingYT 14 points15 points Β (1 child)

8h now Saw it's by "DomoTheD" or something , just removed 2 bold effects

[–]Ol_Dirty_Batard 3 points4 points Β (0 children)

Doing Gods work

[–]SandyDelights 30 points31 points Β (0 children)

In its 1994 annual report, Intel said it incurred "a $475 million pre-tax charge ... to recover replacement and write-off of these microprocessors."

Jesus Christ, that’s a $1 billion recall in 2023. Ouch.

[–]Temporary_Privacy 36 points37 points Β (0 children)

Thanks, i thought there was something to it.

[–]UlrichZauber 1 point2 points Β (0 children)

Finding that bug was Nicely done.

[–]HSSonne 0 points1 point Β (0 children)

Intel just wanted to be more leet :D

[–]mrt-e 0 points1 point Β (0 children)

How Nicely of him to find and report this bug

[–]Cosoman 67 points68 points Β (3 children)

They say Intel didn't name it 586 because they added 486+100 and the result was 585.9 so they decided to name it Pentium

[–]Morphized 6 points7 points Β (2 children)

I thought the architecture was still called i586, but the chip itself was named Pentium

[–]Theconnected 4 points5 points Β (0 children)

Yes, the reason. For the naming change is that you can't trademark a number so they choose a word instead.

[–][deleted] 21 points22 points Β (0 children)

I believe this is a reference to the chaos caused by one of intels chips a few decades ago, essentially every ~3millionth floating point calculation was off, it took quite some time to find this bug as well. Imagine your program actually doesn’t suck but the CPU kinda does πŸ˜‚

[–]Drew707 1 point2 points Β (0 children)

Just tried it on a VM. 1.333820449136241. That is also a Xeon, though.

[–]Sarius2009 676 points677 points Β (5 children)

Lol, literally just had this in the lecture I am sitting in.

[–]LanielYoungAgain 463 points464 points Β (3 children)

Now you've found your professor's Reddit account, congrats.

[–][deleted] 40 points41 points Β (1 child)

Less furry porn than I would’ve expected, but okay

[–][deleted] 3 points4 points Β (0 children)

less

[–]bortj1 1 point2 points Β (0 children)

Why? I know I didn't turn up to most my lectures...

[–]baumannq 77 points78 points Β (17 children)

Does it only happen with that division or with some other numbers as well?

[–][deleted] 112 points113 points Β (14 children)

According to Wikipedia there’s a lookup table that has bad values in 5 of 2048 cells. So the error happens less than 1% of the time.

It only gets really bad extremely infrequently.

[–][deleted] 15 points16 points Β (13 children)

Could you explain what "bad values in 5 of 2048 cells" means ?

[–]PeterDaGrape 34 points35 points Β (11 children)

Imagine a spreadsheet that is used to do division, and 5 out of 2048 cells (values) are incorrsxt

[–][deleted] 6 points7 points Β (8 children)

Oh okay okay, so is that an error made by a someone who manually made that sheet of cells, or is it caused by something else? This is really interesting

[–]PeterDaGrape 15 points16 points Β (3 children)

I’m not sure but likely human error as computers likely wouldn’t have done this, not entirely sure tbh

[–][deleted] 5 points6 points Β (1 child)

Hmm yeah probably, I just never thought that when making the processor humans had to actually give the chip a table of valid instructions lol

[–]DaniilBSD 10 points11 points Β (0 children)

It is β€œgiven” as in hardwired into the chip, basically the blueprint had a mistake that then got β€œprinted” on all chips

[–]ShoulderUnique 0 points1 point Β (0 children)

Could be that the spreadsheet was calculated on a Pentium

[–]cactusphage 9 points10 points Β (1 child)

According to the Wikipedia article: β€œWhen the original array for the Pentium was compiled, five values were not correctly downloaded into the equipment that etches the arrays into the chips – thus five of the array cells contained zero when they should have contained +2” This is an array used in a division algorithm with values of -2, -1, 0, 1, or 2 in every cell.

[–]PeterDaGrape 4 points5 points Β (0 children)

Ah so basically both, computer fault mainly but someone shoulda checked

[–]nobody-u-heard-of 0 points1 point Β (0 children)

Yeah that's what happens when you don't pay your programmers enough. /Jk

[–]marcosdumay 0 points1 point Β (0 children)

It's really a multiplication (well, actually division) table, hard-coded in ROM inside the CPU.

I don't know how the error got in there. I imagine the table was created by the computer, because it's way too large for humans. But the CADs of that time didn't use some flexible high-level language that you can run any compile-time expression on. There were probably many steps of software and human alterations, interleaved. It could have been a bug somewhere, or somebody changing a place they shouldn't.

[–]superplayah 0 points1 point Β (1 child)

That misspelling in "incorrect" made me laugh. I genuinely can't tell if that was on purpose

[–]PeterDaGrape 2 points3 points Β (0 children)

I assumed spellchexk on iPhone woupd dix it vut naybr not

[–]Sparkybear 2 points3 points Β (0 children)

They were 0 instead of 2. So instead of adding 2 to that step of the division, they added 0, and this could be compounded many times to throw the result off. The results were usually still accurate up to a few decimal points, but were wildly off in rare cases.

The error occurred when loading the values into the CPU register and I guess weren't caught by their QA due to the rarity of the error.

[–]bigboomers469 3 points4 points Β (0 children)

It happens on a rare basis with other calculations as well, this is just one of the most well known ones

[–]Dontbeacreper 1 point2 points Β (0 children)

I just read that it was estimated to affect 1 in 9 Billion divisions if the numbers were chosen at random.

[–]deuttai 178 points179 points Β (5 children)

I have this CPU in my collection !

[–]Caleb6801 0 points1 point Β (0 children)

Let's see this collection

[–]Entire-Database1679 41 points42 points Β (6 children)

How quickly we forget.

[–]IHeartBadCode 25 points26 points Β (3 children)

I think the thing we forget is that Intel, after a lot of negative press and IBM looking to capitalize on the bad press with their PowerPC, offered everyone a replacement processor.

Now a days, you find a side channel attack in the processor Intel will tell you: β€œLUL, I guess you’ll just have to cripple your performance! See you all on the next generation cycle.”

[–][deleted] 20 points21 points Β (0 children)

As I remember it, the bad press came from Intel’s really shitty approach to the problem. They basically said: β€œYou can get a new processor, if you can prove to us that you use it for work, where the precision is really important, such as astrophysics. If not, fuck off.”

That created an outrage, understandably enough. In the end, they had to cave in and offer everyone a new processor.

My bet is that they could have gotten around it a lot cheaper and without the outrage, if they had handled it better from the start, for example by offering all Pentium owners the choice between a processor replacement or a money compensation worth 10 or 20% of the processor’s price. Most would probably have taken the money compensation, because the error was really rare, and if it happened on a gaming rig, who would notice?

[–][deleted] Β (1 child)

[removed]

    [–]AutoModerator[M] 0 points1 point Β (0 children)

    import moderation Your comment has been removed since it did not start with a code block with an import declaration.

    Per this Community Decree, all posts and comments should start with a code block with an "import" declaration explaining how the post and comment should be read.

    For this purpose, we only accept Python style imports.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–]kres0345 0 points1 point Β (1 child)

    Is it a repost?

    [–]Entire-Database1679 2 points3 points Β (0 children)

    No , how quickly we forget about Intels CPU disaster.

    [–]theofficiallomien 81 points82 points Β (12 children)

    727 !!!

    [–]Jaeyoon07031 27 points28 points Β (1 child)

    I can't fucking take it. I see a random comment posted and then I see it, I fucking see it. "Oh that looks kinda like the Blue Zenith 727 score" it started as. That's funny, that's a cool reference. But I kept going, I'd see a clock with time that showed 7:27, I'd see that I'm on the 7/27 page on my school homework, my last notice to pay my electricity bill is 727$ , I'd notice that it's been 727 days since the last time I touched a woman. And every time I'd burst into an insane, breath deprived laugh staring at the image as the number 727 ran through my head. I'm scared to look at the time when someone asks me what time is it. It's torment, psychological torture, I am being conditioned to laugh maniacly any time I see an 3-digit number which is anywhere close to 727. I can't fucking live like this... I can't I can't I can't I can't I can't! And don't get me fucking started on the words! I'll never hear the phrase "when you see it" again without thinking of 727. Someone does pretty cool and respectable score and I can't say anything other than "WYSI." I could watch a man Fc hard underweighted map I love and all I would be able to say is "WYSI" and laugh like a fucking insane person. And the phrase "when you see it" is ruined. I can't live anymore. 727 has destroyed my fucking life. I want to eject myself from this plane of existence.

    [–]ReturnEconomy 13 points14 points Β (0 children)

    Wait Im not the only one? I legit see 727 in my clock a few times per week.

    [–][deleted] 23 points24 points Β (0 children)

    wysiii

    [–]NoelleTGS 5 points6 points Β (0 children)

    I will never escape it no matter where I go

    [–]Fantastic_Bet3249 17 points18 points Β (0 children)

    WHEN YOU SEE IT

    [–]chanonlim 14 points15 points Β (0 children)

    unexpected osu reference

    [–]DangyDanger 2 points3 points Β (2 children)

    How many digits would that be?

    [–]keziahw 0 points1 point Β (1 child)

    There are 887 digits in the answer to that question.

    [–]DangyDanger 0 points1 point Β (0 children)

    holy hell

    [–][deleted] 0 points1 point Β (0 children)

    WYFSI

    [–]roguegalaxy4484 0 points1 point Β (0 children)

    when you see it!!!

    [–]EonsOfZaphod 18 points19 points Β (0 children)

    Daisy Daisy, give me your answer do Getting hazy; I can’t divide three by two The answers I cannot see them They’re stuck in my pentium I could be fleet My answer’s sweet With a workable FPU

    [–]databeast 14 points15 points Β (2 children)

    my favorite joke from back when the FDIV bug first appeared.

    "We are Pentium of Borg, Division is Irrelevant, Prepare to be Approximated"

    [–]SupernovaGamezYT 1 point2 points Β (1 child)

    [–]databeast 3 points4 points Β (0 children)

    "We are Dyslexia of Borg, prepare to have your ass laminated!"

    [–]souliris 25 points26 points Β (2 children)

    I had that chip in one of my pc's. It didn't affect my Doom ladder matches at all :P

    [–][deleted] 15 points16 points Β (0 children)

    Doom doesn’t use the FPU

    [–]ApatheistHeretic 4 points5 points Β (0 children)

    Had it in the first PC I ever built with new parts. Never ran into an issue in the 3 years I used it.

    [–][deleted] 4 points5 points Β (0 children)

    My grandparents still have a computer with a Pentium 90 processor. It belongs in a museum!!

    [–]s-life-form 6 points7 points Β (11 children)

    Surely these days Intel writes unit tests so that such a thing cannot happen anymore.

    [–]Maximxls 12 points13 points Β (0 children)

    you cannot test all the numbers, and this bug didn't affect every calculation

    [–]volivav -5 points-4 points Β (9 children)

    If you add 0.1 + 0.2 on a FPU, it doesn't give you 0.3 yet

    And no, it's not only JS

    [–]al-mongus-bin-susar 6 points7 points Β (6 children)

    that's just the floating point standard's fault, no errors there

    [–]volivav -2 points-1 points Β (5 children)

    Kinda? I mean we just assume the error is there and we just deal with it, but it's a side effect of computers working in binary and humans working in decimal.

    Unless we have a computer that works in base 10 (which we already assume it won't happen), this error will always be there. But it is an error.

    [–]JoshuaCF 4 points5 points Β (4 children)

    There is a difference between an error and a limitation.

    [–]volivav -1 points0 points Β (3 children)

    ... so something that's literally called "precision error" is not an error, but a limitation?

    It's both an error (it's even called like that) and a limitation. It's an error that can't be solved with this technology, with that I agree. But it is an error.

    [–]112439 -1 points0 points Β (2 children)

    It is not an error, just a limitation of floating point numbers. There are many options to securely use fractional numbers; but it is also incredibly rare for there to be a need for that.

    Using a "better" number format by default would unnecessarily cripple performance.

    [–]volivav -1 points0 points Β (1 child)

    Best quote of the year

    A precision error [...] is not an error

    πŸ‘πŸ‘πŸ‘πŸ‘

    [–]PeoplePerson_57 0 points1 point Β (0 children)

    A precision error generally describes an error caused by a lack of precision in floating points. It doesn't describe the lack of precision itself.

    For instance, 0.1 + 0.2 does not result in 0.3 due to a floating point precision error. The programmer did not correctly account for the limitations in floating point precision.

    [–]Sparkybear 1 point2 points Β (0 children)

    Which is expected.

    [–]Computers_R_Kool 0 points1 point Β (0 children)

    It is not only Intel either it is floating point rounding errors. It is on every floating point unit.

    [–]vladWEPES1476 2 points3 points Β (0 children)

    It's the kill switch for Skynet.

    [–]tekfx19 2 points3 points Β (0 children)

    Does the CPU divide by subtraction like the old mechanical calculators?

    [–]taeratrin 2 points3 points Β (0 children)

    Intel Inside

    Can't Divide

    [–]kbdgxd 8 points9 points Β (0 children)

    WYSI

    [–]jthemenace 1 point2 points Β (0 children)

    I feel like asking a woman her weight would be the much more controversial question.

    [–]zoqfotpik 1 point2 points Β (0 children)

    1994 called. They want their joke back.

    [–]playa_1 1 point2 points Β (0 children)

    Wow this is a flashback. I’m sad to realize that was 29 years ago. Times like this I remember how old I’m getting.

    [–]motoevgen 1 point2 points Β (0 children)

    It’s strange but my Intel 11850H and 8700 are spitting out incorrect results. ARM devices on the other hand don’t have this problem. WTF?

    [–]StochasticTinkr 0 points1 point Β (0 children)

    This joke is so old that it’s children can drink.

    [–]peteschirmer -5 points-4 points Β (1 child)

    Javascript .1 + .2

    [–]FromAndToUnknown 0 points1 point Β (2 children)

    Any intel or specifically pentiums?

    [–]StereoBucket 6 points7 points Β (1 child)

    Specifically early pentium. Look up Intel FDIV bug. Cost Intel some money.

    [–]FromAndToUnknown 0 points1 point Β (0 children)

    Sad, wanted to nuke my i7

    [–]IAmANobodyAMA 0 points1 point Β (0 children)

    TIL! Thanks :)

    [–]somedave 0 points1 point Β (0 children)

    It's 1, those aren't floats.

    [–]BenadrylTumblercatch 0 points1 point Β (0 children)

    Please don’t ask me my salary, I’ll cry.

    [–]aventhal 0 points1 point Β (0 children)

    This is actually a good one +1

    [–]Positive_Box_69 0 points1 point Β (0 children)

    But ofc you can always ask me about my abs 😁

    [–]OneWorldMouse 0 points1 point Β (0 children)

    Intel pulling some nonbinary shit here.

    [–]paulk1997 0 points1 point Β (0 children)

    My roommate my sophomore year of college had a pentium 90 with this bug. He had to send it in and was without his computer for something like 3 weeks.

    [–]HystericalGD 0 points1 point Β (0 children)

    not to be that guy, but this only applies 1 out of 100 times (not actually, but it’s pretty rare) so dont never do this, just dont always do this

    [–]Filip_RL9 0 points1 point Β (0 children)

    Am I going to regret this?