Valve's New Direction On Multicore Processors 80
illeism writes "Ars Technica has a good piece on Valve's about face on multithread and multicore application in programming. From the article: '...we were treated to an unveiling of the company's new programming strategy, which has been completely realigned around supporting multiple CPU cores. Valve is planning on more than just supporting them. It wants to make the absolute maximum use of the extra power to deliver more than just extra frames per second, but also a more immersive gaming experience.'"
So have the Win multicore bugs been worked out? (Score:4, Interesting)
Re: (Score:2, Interesting)
Re: (Score:2)
Re: (Score:2)
Anyone else disturbed by the fact that even processors now require drivers?
Re: (Score:1)
Re: (Score:3, Interesting)
I've never considered an OS as a 'driver' for a processor; I've always looked at a processor as a fixed-ability piece of hardware, and for good reason: reliability. The more knobs you have on something, the more likely it is to be broken.
Not really (Score:2)
a) It has drivers
b) It's programmed into the software
c) It comforms to an existing standard in a more efficient way (aka faster at operation X internally, without any different I/O communication to the machine)
I'd rather have drivers at the OS-level than have code-bloat in every app for hundreds of hardware combinations, besides I've been compiling linux kernels specific to my hardware for years, so windows
Re: (Score:2)
My take is that this 'advanced' functionality doesn't belong in the CPU, as such. A CPU should be a wholly transparent entity that causes information to flow around, not be something that I can poke and prod at (yes, I know how much fun that is). I think perhaps the problem here is that by 'CPU' I really do mean a 'CPU' - a driver for the interlink between CPUs, even if on the same core, is really something different. However, now that I think of it that way, I don't know that I have such a problem with th
Re: (Score:2)
Re: (Score:2)
The exception would be if the code is, in fact, multithreaded or if it runs a server and clients as separate processes. Most games don't, or at best use a thread to dynamically load files in the background (and most games that do that are RPGs like Diablo 2 and Gothic 1-3). Even then, assuming that threads are stable, it's highly likely that the problem would c
Re: (Score:2)
Re: (Score:2)
Since you tried a single core, though, it makes me suspect the real problem is with the shared cache between the cores. I can't think of anything else that AMD would patch, at least, that would fix application problems, especially if the cores themselves are the same architecture as the single core chip you had in first.
Re: (Score:2)
When it first came up that game programmers were mystified with how they were going to use mutli-core processors, I didn't understand why it would be as hard as they claimed it would be. I've been writing graphics and multi-threaded software for years in suppo
Re: (Score:2)
Re: (Score:2)
When you do let me know if you get the famous audio stuttering bug, that my rig can't beat.
Re: (Score:2)
Nvidia pulled a fast one on you. The 7100 GS series is a rebranding of the old 6200 TC series [theinquirer.net], and thus has pathetic performance. The old 6200 does not have advanced compression technology (unlike every other chip available today), which means with a pathetic 64-bit bus it runs like a dog.
I've noticed with Source that the lower your framerate, and the less on-card memory, the more likely you are to encounter sound stutteri
Re: (Score:3, Informative)
From a modding point of view, the Source map compilation tools are fully SMP-aware - so I guess someone at Valve knows about multithreaded programming. Seeing both processors pegged at 100% is great, as is hearing the whooshing noise from my laptop's fans. No belching of flames quite yet, fortunately.
(Actually, the compilation tools will scale up to running in a distributed manner - apparently at Valve, even the
Re: (Score:2)
Re:So have the Win multicore bugs been worked out? (Score:4, Informative)
Re: (Score:2)
Except it did affect your rate of fire in addition to movement. It was full on speedhacks no different than the downloadable program. Luckily Valve's anticheat doesn't detect any form of speedhacking so nobody got globally banned from it, but I'm sure a lot of people got banned from servers for it without knowing how to fix it or even why it was happening.
Got an odd result on Linux, too. (Score:2)
Re: (Score:2)
Nah, when it plays the music via CD it's just using the SDL calls to start the CD playing analog, not via the digital interface. And in the one case, I don't even have the CD in at all and the framerate's still slow. But if I have the game load up an Ogg version of the
Re: (Score:2)
It's mainly been sorted out. Out of all the games I own, the only one with dual core issues is Need for Speed Most Wanted.
List of my games that work fine with dual core:
1) Warcraft 3
2) UT2004
3) Need for Speed Underground 2
4) Call of Duty 2
5) Oblivion
6) Call
Re: (Score:3, Funny)
Re: (Score:1)
A good suppliment article (Score:3, Informative)
GPU Death (Score:2, Insightful)
Of course, the problem is that my AMD 64 3200 will do DirectX 8 with my old GeForce, and will do DirectX 10 if I buy the new ATI card after Vista ships since its the video card
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Not to mention newer versions of AGP/PCIe etc...
I bought an Athlon64 3200 a while back, and pretty soon thereafter upgraded my video card too, since the old one had poor to non-existent 64bit drivers. And when i bought that videocard originally, for a K6-2/400, it provided virtually no performance improvement over the previous card i had because the system couldn't keep up with it.
Re: (Score:2)
To update my home machine's processor or video card, i have to replace the motherboard:
- all faster processors worth the money to upgrade to use a different socket
- All faster video cards worth the money to upgrade to are PCI Express
If I get a new video card, I have to get a new motherboard to support it, and then I have to get a new processor to fit in the new slot.
If I get a new CPU, I have to get a new moth
Re: (Score:1)
Well, AMD Fusion [tgdaily.com] looks interesting. Of course, I also hope that we'll still be able to buy them separately, because it's cheaper to upgrade parts as you go, rather than all at the same time.
But the possibilities of a hybrid processor are pretty cool. For example, this type of CPU would be awesome in a home theater
Re: (Score:2)
I guess s
Big deal... (Score:2, Insightful)
Debugging multithreaded code (Score:5, Informative)
Re: (Score:3, Interesting)
Re: (Score:2)
http://pugs.blogs.com/pugs/2006/06/software_transa
http://groups.google.com/group/perl.perl6.internal s/browse_frm/thread/8431e8ffbf74d77a/319b36760b1d5 a74#319b36760b1d5a74 [google.com]
STM will kick your concurrencies ass.
speaking as a n00b (Score:2)
Should I start getting my teeth cut on the concept of multicore programming? Is there enough of an advantage for this doing smalled generalized apps? How does software written with multicore in mind suffer on single core systems?
I've been thinking about this more but currently do not have the proficiency to take this as seriously as the general studies I'm doi
Re: (Score:2)
So what are the tools? (Score:1)
And the technical content is questionable - for example the definitions of multithreading problems are somewhat innaccurate.
Re: (Score:2)
this is valve doing smoke and mirrors to hype up the steam platform, but in reality we'll see games that are designed in a similar
Re: (Score:1)
OS X Leopard and OpenGL (Score:2)
It is nice when software is rewritten to take advantage of multiple cores, and imagine that most new games will be designed to do this. For older games, however, Apple has announced that programs using the OpenGL APIs will automatically spawn a process that feeds the GPU, using a second thread. This means, theoretically, some programs could see up to 2X the performance when run on OS X 10.5 and a dual core system, without any changes from the developers.
It's a nice little optimization and hopefully Vista
Re:OS X Leopard and OpenGL (Score:4, Informative)
Ati and Nvidia's drivers are already multithreaded on windows but there is only a 10% improvement at best... Rendering frames to the screen is inherently serial so you can't make it much faster with more cores.
We're not talking about the drivers, per se. Many the libraries used by OpenGL programs and some of the OS interactions will be spawned as a second "feeder" process that does nothing but send data to the graphics card/drivers. This means programs who are CPU bound and single threaded, can offload one big task to the second processor without any work from the developers or even recompiling. Theoretically, the perfect storm would be a process where half the work is feeding the GPU and the bottleneck to the GPU is at least half as wide as the CPU bottleneck... resulting in twice the performance. This will never happen, of course, and I don't expect much benefit from this optimization in general, but it is still kinda neat and might be useful in some instances.
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
I thought they stated that the games had to be written to take advantage of this, it wasn't so much an automatic boost as one that you need to apply to take full advantage of.
Their literature (sparse as it is) strongly implies otherwise, but I don't have any of the NDA stuff so I could be wrong.
multi-core and GPU/CPU integration (Score:5, Informative)
"Newell even talked about a trend he sees happening in the future that he calls the "Post-GPU Era." He predicts that as more and more cores appear on single chip dies, companies like Intel and AMD will add more CPU instructions that perform tasks normally handled by the GPU. This could lead to a point where coders and gamers no longer have to worry if a certain game is "CPU-bound" or "GPU-bound," only that the more cores they have available the better the game will perform. Newell says that if it does, his company is in an even better position to take advantage of it."
This is almost certainly why AMD has bought out ATI - they see that the future is about integrating everything on the motherboard into one IC, and AMD wants the CPU to be that point of integration. For more, see:
Computers in 2020
http://digitalcrusader.ca/archives/2006/02/comput
Re: (Score:2)
Re: (Score:2)
So everything old is new again, eh?
I don't see the GPU disappearing anytime soon. It's much easier to create an IC that is good at one specific task than a multi-use IC that is just as good at that particular task. As long as there are companies that can outshine the CPU manufacturers' performance in graphics, there will be a market for GPUs. The only exception is
I just did this -.- (Score:2)
This is lame, I have been making the argument that FPS != game benchmark. Everyone always says "look dual core FPS is the same as single core, maybe 1 or 2 faster," and they don't even understand why it's 1 or 2 faster (because the few cycles used for AI and physics are out of the way...). It takes VALVE to come out and say it?
Yesterday I blew and made the same statements on kerneltrap [kerneltrap.org]. A little unscientific, but should cover the issue nicely.
Too Bad... (Score:3, Insightful)
Re: (Score:2)
Have it your way.
Myself, I'm off to enjoy the excellent games made by the excellent people at Valve, automatically updated by the excellent automatic patching system Steam provides. Even if you ignore the convenience of the patches, the built-in IM and server browser capabilities, and the media and game tool content, the fact that similar services are springing up here and there has to mean Valve did SOMETHING right.
You go shuffle your CDs around and Google for patches, finding 5 different ones and, in
Re: (Score:2)
I prefer console games, that due to the lack of ability to patch them, have to be written properly in the first place, also since the hardware is always the same I too can take them anywhere only needing the appropriate console, instead of an x86 compatible computer which meets a huge array of other requirements.
Re: (Score:2)
Steam includes an option for backing up a hard copy of your games to convenient CD or DVD-sized files. Then, if Steam ever vanishes, unpack the backed-up .gcf files, use a no-authenticaion crack on it, and you're good to go.
Re: (Score:2)
Half Life 2 took the gamble for online distribution, and as it turns out, people are willing to "put up" with Steam to play their favorite AAA games. Then, the authors of Rag Doll Kung Fu and Darwinia took the gamble as well, and as it turns out, people are mor
Re: (Score:1)
We shouldn't, but then again, we shouldn't have to use the crack in the first place. That's my point.
Don't get me wrong, I love the idea of steam, but the practical implementation of it leaves a lot to be desired.
Re: (Score:1)
Re: (Score:2)
My biggest problem with is with source, which makes me want to throw up all over the place! I never made it through hl2, and I really wanted to.
Re:Why is this news? (Score:4, Insightful)
While they are obviously not doing anything that supercomputer programmers didn't invent 30 years ago, they are leading their industry into the future, err, present. Though the article details are pretty weak, its clear that they've already gone beyond the module-level threading (sound, AI, graphics), to something that sounds more like work queues. If done right, those can get you to hundreds of threads as seen on early supercomputers, although it doesn't sound like Valve is dealing with cache-sharing problems yet, which could cause problems far sooner. I'm hoping hardware + language extensions will help mitigate that somewhat, at least on the read-sharing side.
Personally, my bet is on languages like Haskell. Purely functional programming makes multithreading easy, and for the imperative bits it has transactional memory (no locks, no deadlocks, and finally composability even with multithreading). Haskell itself may be too slow, so we may need to find a non-lazy version (laziness is basically the biggest performance problem Haskell has) for it to be practical.
I think OCaml [inria.fr] has a lot better chance of becoming mainstream than Haskell. For one thing, I know of programs written in OCaml that aren't written by members of the PL community. For Haskell, outside of compilers and libraries, the only thing I can think of is Darcs [darcs.net], and that project is having all sorts of issues with determining and fixing performance problems (I love darcs though!). I'm not sure a pure-lazy language will ever map well to a soft-realtime media app such as a game. Also, when you really need delayed evaluation (i.e. laziness), ML derivatives have closures and higher-order functions which allow you to implement it easily enough.
dual vs. single + gpu (Score:2, Informative)