4 ms·
They do tremendous amounts of validation. I believe random generation of input data is part of that. Here's an old heavily cited paper from Intel on the topic;
by rrdharan 10y ago
They do tremendous amounts of validation. I believe random generation of input data is part of that.
Here's an old heavily cited paper from Intel on the topic; I'm sure their state of the art has advanced considerably in the intervening 17 years since its publication:
http://dl.acm.org/citation.cfm?id=623013 http://dl.acm.org/citation.cfm?id=623013
- greglindahl 10y ago"crashme" is one venerable program that does this kind of fuzzing -- I managed to find a bug in a cpu with it once, which does not speak well of their QA department.
- xenadu02 10y agoA former coworker was a QA manager at Intel. He said it was an explicit decision to cut back on validation and QA, which is why he wasn't at Intel anymore. The general feeling was that they had "overreacted" to the Pentium FDIV bug and needed to move faster. YMMV, I have no inside knowledge.
- i336_ 10y agoI'm very curious what CPU it was, and what the bug was.
- greglindahl 10y agoBroadcom Sibyte 1250. I had pre-release silicon, and there was a known bug that prefetch would occasionally hang the chip. I wanted to have a little fun goofing around, so I modified crashme to replace prefetches in the randomly generated code with a noop. A few minutes later, I hung the chip. If I identified the right erratum later, it was: if there is a branch in the delay slot of a branch in a delay slot which is mispredicted, the cpu hangs. It was fixed by making this sequence throw an illegal instruction exception. (It was undefined behavior already, I think.)
- i336_ 10y agoInteresting. And... the nesting you describe is messing with my head! :) How did the erratum get fixed? Hardware re-re-release? Definitely filed crashme away, sounds like a useful tool. The Sibyte 1250 sounds cute. There's a "650000000 Hz" in https://lists.freebsd.org/pipermail/freebsd-mips/2009-September/000467.html https://lists.freebsd.org/pipermail/freebsd-mips/2009-Septem... although I'm not sure if MIPS from circa 2002 (?) was that fast (completely ignorant; no field knowledge - definitely want to learn more though). I also noted the existence of the BCM91250E via http://www.prnewswire.com/news-releases/broadcom-announces-new-evaluation-platform-for-its- http://www.prnewswire.com/news-releases/broadcom-announces-n... sibytetm-bcm1250-mipsr-processor-to-accelerate-customers-software-and-hardware-development-75841437.html, which was kind of cool. I like how the chip is a supported target for QNX :) Now I'm wondering what you were using it for. Some kind of network device? (I think I saw networking as one of its target markets.) -- As an aside, I'm also very curious what HN notifier you use, if you use one. (I use http://hnreplies.com/ http://hnreplies.com/ myself, but it's sometimes slow. I saw your message after 4 minutes in this case (fast for HN Replies); typing/research + IRL stuff = delay :) )
- greglindahl 10y agoOur company was PathScale, and we were hoping that the Sibyte 1250 would make a great supercomputing chip. Opteron wasn't out yet, Intel was pricing 64-bit Itanium very high, and this dual-core Sibyte thing was projected to have a reasonable clock and it could do 2 64-bit fp mul-adds/cycle. We had Fred Chow and the GPLed SGI Compiler on our side. And the next revision of the chip had these great 10 gig networking features that I thought I could make work well with MPI, the scientific computing message-passing standard. You can guess how it worked out: Sibyte was late, slow, and buggy. Even simple code sequences like hand-paired multiply-adds would start running at 1/2 speed after an interrupt. Our experienced compiler team was unable to get good perf on several SPECcpu benchmarks despite the code looking good. (Fred didn't have much hair left to pull out!) Soon after we raised our A round we pivoted to using Opteron for compute, building an ASIC for a specialized MPI network, and Fred's team did an Opteron backend for the compiler. The descendant of the network is now called Intel Omni-Path, and is on-package for Xeon Phi cpus.