Nvidia announces Project Denver ARM CPU for the desktop
engadget.com
engadget.com
It makes me wonder if Nvidia was lobbying Microsoft to expand Windows support beyond x86 as a direct result of all this.
Either way, Nvidia's pretty clearly wanted to expand into the desktop CPU market for a while now, and with Intel blocking their entrance to the x86 market, it only makes sense they'd start examining other options. ARM seems like a pretty logical place for them to end up given the options.
While trying to just hold position as a supplier of GPUs for x86 PCs would be very difficult for nVidia now that both of the big x86 CPU manufacturers are pushing their own GPU systems hard (and increasingly, integrating them in the CPU). This is probably quite an up-or-out situation for them.
I wouldn't be too surprised if one part of MS's .NET push was a desire for architecture independence.
A universal binary contains actual machine code for multiple architectures. Universal binary support requires deeper changes to the OS and can complicate testing, but it's basically a requirement for making cross-platform high performance code because a JIT compiler can't spend as much time optimizing code as an ahead-of-time compiler.
Machine-independent bytecode paired with a high-quality VM allows you to ship a cross-platform executable, but it's not going to be enough when ARM PCs are facing an uphill battle to prove their performance is acceptable to a market that isn't particularly satisfied with Intel's Atom.
They were still awesome machines, though. Fantastic for learning assembler on.
How valid are the various arguments these days? The compiler complexity argument seems to work well against the Itanium, but I'm not sure that it makes much difference between ARM and x86 or x86_64. The instruction decoders on an x86 processor really do look minor on paper, but why hasn't Intel been able to produce a chip with competitive performance per watt, especially given their fab advantage? It seemed like they were really trying with the Atom, but it still hasn't gotten down to the power levels where ARM really shines, even though the high-end ARM cores are now out-of-order superscalar designs.
Btw, I tend to agree with you,and think Intel's engineers are just being lazy wrt power. I expect this Nvidia chip to get crushed technically when Intel's engineers gear up and really work on power (like they did when Transmeta's Crusoe came out).
Why is Intel having trouble broadening their horizons? Is it an institutional thing, that the teams not working on the main (and most profitable) CPU product lines just can't get the resources needed to catch up with the competition? Intel always has the latest and greatest fabs, but it seems like the designs they're producing for these new product lines are completely squandering that advantage and then some.
Thumb has benefits, but there are also limitations which is why I wouldn't call it a replacement.
One of the big differences is that you now need a marker instruction for predicated sequences, but obviously the encoding is quite different.
That said i've heard/read that Thumb2 tends to be the optimum size/space trade-off, but that's not because it's somehow more 'cisc'.
I don't think Intel is being lazy, but Atom is certainly an immature design and the mainstream Intel cores target a much higher level of performance; brainiac cores are fundamentally inefficient because power efficiency decreases as performance increases (in other words, each marginal increase in performance costs more in power than the previous one).
The instruction decoders on x86 processors consume a lot of silicon. x86's instruction retirement also imposes additional overhead due to book-keeping on the scheduler. Eliminating the x87 stack-based FPU is been a gradual process involving an evolving SIMD instruction set that started as a hack.
In reality, resources trumps ISA. x86 has the advantage of hand-optimized logic combined with the best high-performance VLSI manufacturing in the industry.
In spite of that, Itanium blows the doors off of every x86 processor built on the same fabrication technology -- notice that so far, the Itanium and x86 contemporaries are built on fab processes that have been two generations apart, with the high-volume part using the newest process.
Whether or not you find that compelling or not is another issue.
And then low cost, lower performance desktops - why would anyone make one when laptops are more convenient?
I fail to see the point of ARM on "desktop" - Server yes (power consumption), Laptops yes (battery life, form factor) - but desktop?
EDIT : At that configuration, without a monitor, when desktop sales are all time low compared to laptops in the PC market - why wouldn't one just buy a AMD Fusion Netbook?
These NVidia chips will most likely ship with custom circuitry to accelerate the few CPU hungry operations performed at the desktop (video codecs and 3D gfx). Keep in mind that at that point, at least 8 cores per chip will probably be the norm. Single core performance will not be that important.
Edit: of course, add CUDA to the mix regarding computationally heavy tasks without dedicated acceleration.
EDIT: http://arstechnica.com/gadgets/news/2011/01/nvidias-project-... says this isn't about the desktop as much as it is about servers and workstations. Makes much more sense. John Stokes rightly points out - "this is a very tall order, and a lot of things could go wrong here. Right now, the GPU execution part is the only one where confidence is warranted based on a track record. With the system integration stuff and CPU part, NVIDIA is in uncharted territory. "
Why Nvidia might want to compete with either of the PC, Portable Gaming Systems (PSP, iTouch, PSPhone), Xbox360 and PS3 without either a solid advantage or agreement with big game studios is beyond me.
NVIDIA announced today that it plans to build high-performance ARM® based CPU cores, designed to support future products ranging from personal computers and servers to workstations and supercomputers.
It's easy to believe personal computers could really mean laptops considering basic industry trends. Workstations not so much, but if you currently manufacture the world's fastest GPGPU perhaps workstations just look to you like a bunch of GPGPUs with a bit of a standards based cpu glue for the OS.
I don't think that's why ARM was chosen. Nvidia has been willing to build a CPU for a long time. And it's a well know fact that it has been barred from market entrance by Intel patents. ARM is beefing up its CPU line beyond mobile sector, so it's a logical choice.
As for power, well don't forget it'll be associated with a GPU, so the power advantage could easily be offseted by GPU hungriness. Time will tell.
On the other hand, tight integration and great compiler could allow Nvidia to tap into the GPU number crunching power through CUDA.
Still, it's not easy, just look at how the Cell hardly lived up to expectations. Interesting move from Nvidia. Wait and see the results.
Part of the reason I never bothered with them - IMHO a company who heavily bases their hiring choices on school grades is not someone I want to work for. It betrays a belief in bad/unreliable indicators/metrics.
Be careful not to emphasize it too much though, lest it seem like you're making excuses. Maybe the person considering you for a job did the same thing.
The best hackers (rather, the ones you'd want to work with) tended to fall in the middle of the pack. Decent marks, not great. Didn't spend their days trying to ace the next exam and spent a lot of time hacking on cool projects instead.
My own experience in college is that marks in the middle of the pack made the best employees, and in fact nowadays an extremely high GPA is a yellow flag when I'm reviewing resumes (though obviously, not a disqualifier at all).
Keep in mind at this school 80%+ would put you in the top 10-15% of all marks. I'm not against filtering for low marks, but in this case NVidia set their sights on the top 10-15% of the student population and disqualified everyone else as a matter of course. IMHO a dumb move that unnecessarily turned away a lot of qualified people.
I don't work at Nvidia, but working in the hardware field things go a bit slower. You need people who pay attention to detail and follow the process to a T to avoid costly mistakes and rework. Thats why "people who could put up with the bullshit that it took to get into the top 15%" and "people who are intelligent enough to design chips at a high level and disciplined to follow the process to avoid blowing hundreds of thousands of a dollars per mistake" have more cross over than high GPA and good ruby on rails hacker. It is just a different mindset and a different set of economics to be building slow iterating hardware vs quick iterating software.
And just like for production software, you have to test your code to death to make sure there isn't any bug. For instance, we usually booted Linux on CPUs to make sure nothing would go wrong (and things would usually go wrong around cycle 1,000,000,000! Debug that)
The brightest kids I knew got 80% without trying. If you're bright enough to work at NVidia and can't get 80%, you're lazy. I'm sure they missed some talent but saved a ton of time not having to interview mediocre students.
I'm not nitpicking, I just took the 80% to mean 2.7 as well.
I also believe that grades correspond better with ability in chip design then it does in programming. (I've actually done both. Chip design is fun, but I'm addicted to very short code-compile-test cycles.)
Some companies though, will refuse to look at a resume, regardless of how richly experienced it may be, simply based on the fact that you failed to hit an arbitrary bar during college. To me this is lunacy.
Candidates with significant work experience - even ones still in college - are in high demand everywhere and have a lot of choices. Even a non-ninja-rockstar-guru like me had internship offers piling up outside the door. In this case it would benefit the company to not put things into job ads that don't actually matter.
If you were putting yourself through college, paying as you go, then as long as you managed a low "B" I'll probably cut you a break. You'll get a fair shot.
If you decide to skip college and throw yourself into work, I'm not going to hold it against you. That being my background, I generally see it as a plus.
If you went to college on someone else's dime, your parent's or the bank's, and have such a weak work ethic you couldn't be bothered to apply yourself then odds are you aren't going to bring anything special to the table at the work-place.
I'm sure there are a lot of cases where it's not fair, but there's few things that annoy me more than an inflated sense of entitlement, and for good reason. In my experience it's a great indicator of a poor performing employee. Generally with drama, generally thinking a lot of themselves despite negligible contributions to the business.
I wasn't blessed with an unusually powerful intellect. I knew guys in college who would just get the course material after a couple of hours. For the rest of us earning marks meant many dozens of hours pounding a book, and at that point you run across the very real limitation of having 24 hours in a day.
The vast majority of college students have to make a very real tradeoff - marks vs. practical experience. For me, I chose not to invest dozens more hours to eke out 10% more on the exam, and instead chose to put it into hacking on relevant projects that taught me new technologies.
My marks were certainly not poor, they were perhaps 1 std. deviation above average. Decent, not great. Could they have been higher? Sure, but I'm no ubermensch, it would've meant a large sacrifice in another area.
If that's your image of a student not applying himself, then guilty as charged. I for one don't regret it for one second - after all, I hacked out a lot of stuff in those 4 and a half years (paid my way through schools by not having summers and staggering internships between semesters instead), and had a number of offered before graduating thanks to it. I'd hate to imagine my position if I'd just stuck to acing the school work and never hacking anything on my own.
Again, this goes back to my original point: companies that weigh marks heavily in recruitment are making a lot of fundamentally unreliable assumptions and rejecting candidates (before interviews, even) on what is IMHO a weak correlation to on-the-job performance. With the exception of a small minority of extremely smart people, someone with top marks had to sacrifice something major to get there, and in my experience that "something" is often something that gravely impacts employability.
(I was a software intern, but the job I had applied to asked for 80% as well.)
I worked for NVIDIA in a key group on key projects, and I never even finished my university degree (though my grades were very good). To make a general and hopefully obvious statement, if you're hiring someone fresh out of school with a bachelor's degree but no real-world accomplishments, you have to judge them by some objective measure, and grades are part of that. If you're dealing with someone with real-world accomplishments, it's a completely different matter.
When interviewing people during my time there, I personally never so much as glanced at their GPAs. But then again our group generally only hired people who had (and would soon have) Ph.D. degrees or experienced hackers whose past work spoke for itself. I imagine if you're hiring for entry-level positions, you need a very different approach just for the first round of culling due to the sheer volume of applicants.
NVIDIA was also the only company I knew of that required candidates to take a written exam on the spot at the career fair. Scary stuff. The problem is there are too many applicants to look at so any kind of filter (administered fairly) is better than none at all.
But now, the only difference would be who is pocketing the $50-100 I'd spend on a new processor.
I wonder what ARM has to say about 64-bit computing, though
Bad news on that one, at least for the first generation of nVidia chips based on the Cortex-A15. Segmented address spaces? They're baa-aack!
I remember that back when the 64-bit UNIX was introduced in, IIRC, SGI machines. Nobody made a big deal of it. SGIs were already very impressive and nobody cared that much for the extra bits in registers.
I cannot remember when was the last time a single program wanted more than 4GB (I can, actually, it was Firefox and I left it running with a page full of Flash thingies for the weekend - by Monday, it was unresponsive and I had to xkill it). I can agree we need 64-bit addresses for servers (and we have been needing them for quite some time now) but not for desktops and certainly not for my own computers.
Compilers produce denser code on CISC (x86) than RISC (ARM), so x86 has an advantage over ARM.
http://www.csl.cornell.edu/~vince/papers/iccd09/iccd09_densi...
nvidia congrats, this has been a long time coming. if feel like nvidia is tron in this case and intel is the mpc, fight for the user.
it's time to embrace massive parallelism. this will change everything.
I am really excited and happy to be a shareholder of nvidia now.