Darwinbots Forum
Code center => Darwinbots3 => Topic started by: Numsgil on April 03, 2013, 05:46:37 PM
-
I've been playing with performance for DB3 recently (benchmarks mostly to figure out what sort of CPU budget I have to work with if I want reasonable sim sizes to run at reasonable rates), and also considering buying a new computer, so it seems like a good time to talk about hardware.
My plan right now is to get some hexcore monstrosity and something like the Titan GPU, half for games and half for DB3, and build DB3 to target that hardware specifically. There'd be a dumbed down version that ran straight C# and would work on any machine, but for any real sims you'd need to be running on something similar. Which would mean AVX and double-precision DirectCompute. Both technologies are only supported in very recent hardware, though. For AVX, you'd need either a Sandy Bridge or later Intel processor (so Q1 2011) or a Bulldozer or later AMD (Q3 2011 or later). For Direct Compute, you'd need a card that ran at least DirectX 11, which means cards from about Nvidia Geforce 400 series or later (Q1 2010). And it would need to support double precision, which not all cards do (I can't find hard data on which cards do and don't).
So, what sort of machines are people running now? What sort of rigs do people expect to have in, say, 2-3 years? Would anyone be willing to splurge on an insane machine if it meant they could run large Darwinbots sims? Basically I don't think I have the time/interest to support more than one hardware platform, so I'm looking at supporting the high end of the current hardware market and hope that when I actually finish, the hardware is more common.
But if no one is going to have a machine like that even a few years from now... I'll still probably do it, but I'd feel bad about it :)
-
Ugh... My Vista is crawling on the ground with 1GB RAM and 2.0 processor... :blueblob: I should be getting a new laptop soon, but it will most likely have the smae or worse specs.
-
I forget that some people have laptops as their main/only devices. Memory isn't much of a concern, but it's probably going to chug without a decent CPU no matter what.
-
I have:
Processor: AMD Athlon II X4 635: 2.9ghz quad core (@3.3) (no AVX :( )
Memory: 12 gigs (@1600)
GPU: AMD Radeon HD 5770 1 gig ram
With OpenCL support and DirectCompute 11 :balloon:
(I read OpenCL has cpu fall back, not that I am suggesting it.
I really wasn't suggesting, I heard it had more bugs.)
-
I was originally going to go with OpenCL, but the driver support for it on GPUs is kinda terrible. On my system, if the OpenCL kernel hangs for too long, the whole system becomes unresponsive and windows goes blue screen. I don't really want to mess with that :/
The other option is CUDA, but I'd hate to lock people in to NVidia hardware.
-
My tower is in the same room where I sleep, and I can not sleep with it on :(
Not that It will help much, because Skyrim is 1 fps on my tower :(
So anytime I run long simulation I run them on my Vaio laptop. I am considering getting a windows 8 tab for my mom, but other then that I really do not see me updating my computing hardware anytime soon. Maybe if I want to play Skyrim and/or DB3 badly enough I'll consider getting a hardware like you describe and put it in the living room.
For now however, here are the specks for my Viao:
Processor: Pentium Dual-Core T4400 @ 2.20Ghz (both)
Ram: 4GB
GPU:
Mobile Intel 4 Series Express Chipset Family
Mobile Intel GMA 4500M
Total Available Graphics Memory: 1759 MB
AVX:
What are the specific advantages for DB3 to run on AVX?
C# natively supports AVX?!
DirectCompute:
Sounds like a very cool api, but why double precision?
-
What are the specific advantages for DB3 to run on AVX?
AVX is an instruction set that lets you eg. add 4 doubles at the same time. It would let me do 4x the amount of math on the CPU, which would make the program up to 4 times faster (depending on how much the CPU is the bottleneck).
C# natively supports AVX?!
No, I'd have to write some low level functions in C++ and expose them to C#. That's a huge pain, since suddenly it means to build the full program you have to also compile a C++ project, and I'd need separate C++ DLLs for x86 and x64. But for the potential speed up we could get it's still probably worth it.
Sounds like a very cool api, but why double precision?
DB3 will use doubles for most of its math internally. The extra precision will allow physical constraints to be less squishy (so you should be able to build large structures with bots), and allow the bots to wander very large distances and grow very large (imagine a bot a kilometer across and another a few centimeters). If we used single precision, you'd be stuck with a universe that couldn't really be more than 30kmx30km, and the sizes of bots would be limited, and the constraints would be a bit squishier.
-
Cool stuff.
I am a little concerned with one robot being x5000 bigger then a different robot. From an eco-system point of view it is cool. But that is taking the 'big birtha' concept to a whole new level don't you think?
-
Well, we'll see what sort of stuff comes out of that. We can always place artificial limits on the range of sizes of bots, but I'd like to be able to explore some interesting things like whale vs. plankton.
-
Uhh... I bet Skyrim doesn't run on my computer at all. ;n;
-
Q6600 quadcore 2,4gHz
8gb ddr2 RAM
ATI radeon 4350
I think I'll have a new computer within 2 years. (but then again I didn't think I would still use this computer when I bought it 5 years ago)
@SlyStalker, what's the memory usage of vista when you start it up?
If I start up windows 7 it uses around ~1gb ram. I hope you don't have the same, that would mean quite bad performance. Although if you don't it implies I need to cleanup the junk in my startup...
-
Geez that's an old machine :) Better than the machine I just upgraded from, though.
-
That is still faster then my... ;)
Numsgil, did you get the exact specks you mentioned on the beginning of the thread? If so, can you give me a price range on that beast?
-
Yeah, still putting it all together. I'll make an OT thread showing it off once I finish. I didn't buy a HDD, DVD, or monitor, since I had some already. The total still cost me about $2600.
-
I don't run db these days, but for the record, an i5 2500k (which I'll probably still be using ten years for now), 8GB RAM, AMD Radeon 6850.
-
well I am making a big push with sexual reproduction in the next release, maybe you can get back into it. ;)
-
Numsgil, I know you have very specific hardware requirements to run the full version of DB3.
What I am interested in is if I have less hardware does DB3 automatically figure out what hardware I do have or do I need a separate version of DB3 for each hardware configuration?
Also, how much slower will the program run with no CPU calculations on the GPU, no AVX, and only two cores?
This has been bugging me for a while, I might as well ask it.
-
What I am interested in is if I have less hardware does DB3 automatically figure out what hardware I do have or do I need a separate version of DB3 for each hardware configuration?
It'll automatically detect what your hardware can do. The only caveat is that I think it'll force you to restart the program to switch between standard and High Octane mode.
Also, how much slower will the program run with no CPU calculations on the GPU, no AVX, and only two cores?
It really depends on a lot of factors that are difficult to predict until I have something to test. In theory AVX would let it run up to 4x faster, and a GPU at peak can run about 10-20x faster than a CPU, but there's memory bandwidth issues. On the CPU, transferring data from memory to the CPU is often the bottleneck, so AVX might only give 1.5-2x improvement. For the GPU, you have to physically copy the data from RAM to the card before you can do any calculations on it, which can take a LONG time. Which might mean the GPU isn't any faster than the CPU, but it should still let you go much wider (ie: have more bots in the sim).
You should still be more than capable of running a reasonable sim with older hardware. But if you're looking to do a long term experiment, better hardware is going to be worth it.
-
Sounds pretty exciting. Can't wait to be see more details on the simulation model for DB3.
-
For the GPU, you have to physically copy the data from RAM to the card before you can do any calculations on it, which can take a LONG time. Which might mean the GPU isn't any faster than the CPU, but it should still let you go much wider (ie: have more bots in the sim).
Might mean that darwinbots could run quicker in on a AMD system then intel in the near future. AMD's Kaveri system is going to use unified addressing space, pointers can then be shared between GPU and CPU. Similar to the PS4 system coming out later this year.
-
For the GPU, you have to physically copy the data from RAM to the card before you can do any calculations on it, which can take a LONG time. Which might mean the GPU isn't any faster than the CPU, but it should still let you go much wider (ie: have more bots in the sim).
Might mean that darwinbots could run quicker in on a AMD system then intel in the near future. AMD's Kaveri system is going to use unified addressing space, pointers can then be shared between GPU and CPU. Similar to the PS4 system coming out later this year.
Intel's also aiming for this sort of thing with its Skylake architecture supposedly, which is due out sometime in 2015.
But I'm a bit skeptical about the technology for consumer level hardware. My guess is that you end up with an on-chip GPU, which limits the power the GPU can have. More than likely it just means that integrated video cards are going to be better, but for high end power you'll still use dedicated GPU cards.
-
For the GPU, you have to physically copy the data from RAM to the card before you can do any calculations on it, which can take a LONG time. Which might mean the GPU isn't any faster than the CPU, but it should still let you go much wider (ie: have more bots in the sim).
Might mean that darwinbots could run quicker in on a AMD system then intel in the near future. AMD's Kaveri system is going to use unified addressing space, pointers can then be shared between GPU and CPU. Similar to the PS4 system coming out later this year.
Intel's also aiming for this sort of thing with its Skylake architecture supposedly, which is due out sometime in 2015.
But I'm a bit skeptical about the technology for consumer level hardware. My guess is that you end up with an on-chip GPU, which limits the power the GPU can have. More than likely it just means that integrated video cards are going to be better, but for high end power you'll still use dedicated GPU cards.
Currently you're right. The current AMD trinity is pretty much aimed at budget PC's, far from high end. CPU nor GPU is special, but it got a pretty good price. The AMD A10 GPU is mostly limited by the DDR3 ram. Kaveri will support GDDR5, that'll bring the on-chip speed closer to dedicated GPU's. I assume more improvements will be made to get the gap smaller along the years. Might take a while till a GPU/CPU chip can be called 'high end', but I'm sure it'll arrive at some point.
-
Just a P4, but want an upgrade to a 4-GPU 7950 setup to mine bitcoin
-
Might be good to remark budget processors like the Pentium G don't support AVX. I though all new processors would have the new instruction sets, but turns out they don't.
-
Ah, good to know. I'll program around the idea that there's some N-width SIMD style operations, but just leave the loops themselves scalar at the moment. It makes for reasonably fast code even using the slow FPU, and makes it easy-ish to add support for proper SIMD and AVX down the line.
-
Getting a new laptop soon! :D The budget is only $1000, but that still would be a major upgrade for me.
-
Let me know what processor you get
-
My tower is in the same room where I sleep, and I can not sleep with it on :(
Exactly the same situation as me.
------------------------------------------
My hardware is:
CPU: AMD Quad-Core 3.60 GHz
Ram: 16 GB
Graphics: ASUS EAH6770 Series
I expect it to last 3-5 more years. Then I don't know what I will buy, but if the hardware Numsgil suggests would work well with Bioware and Bethesda games then I wouldn't mind getting that.
-
I'm a student so I have the inability to leave my PC or laptop on to afford the price of bills. Plus, they'll be in the same room that I sleep in.
Desktop:
CPU - AMD Quad-Core 3GHz
RAM - 4GB
GPU - nVidia GeForce GT 430
Laptop:
CPU - i3 Dual-Core 2.4GHz
RAM - 6GB
GPU - onboard
-
Ay, my laptop specs are about the same ;)
-
Ay, my laptop specs are about the same ;)
Did you recently upgrade your laptop?
If you mean your T4400, I use the same laptop and it's way slower then a i3.
-
hmm... that is good to know, apparently the impact of more GHz in not liner.
-
No it isn't. It relies a great deal on cache size and instruction set and some behind-the-scenes microcode optimizations.
If you want to compare speed of processors, try this: CPU benchmark results (http://www.cpubenchmark.net/).
-
Ghz in a computer is similar to the max RPM in a car. It doesn't say much about the actual power you can get from the engine.
-
ah
-
Amd phenom x4 945, 3Ghz 4 cores
Amd powercolor 6870 900mhz
4GB of ram
HDD 2TB
planning to get used GTX 480
-
CPU: i5 3570k (stock)
GPU: Radeon HD 7850 (somtimes I overclock it)
RAM: 8 GB DDR3 1333
I will probably have upgraded some or all of this in 2-3 years. The first to go will be the GPU, I think.
-
I think my Nokia Lumina 2520 (Did not buy it yet, just considering) Should be able to handle next gen. graphics games. (Right?)
So really, I have no advantage to owning a bad ass tower unless I am running something as resource intensive as DB3. Correct?
-
Intel Core i5-3337U Processor
8GB DDR3 1600MHz memory <----Not sure about this figure....
Intel Integrated Graphics
750GB (5400rpm, Serial ATA)
HARD DRIVE
750GB (5400rpm, Serial ATA)
8) I got it in America.
-
I think my Nokia Lumina 2520 (Did not buy it yet, just considering) Should be able to handle next gen. graphics games. (Right?)
I don't think so, if you mean with next gen the next gen consoles. There's still a considerable speed difference between smartphones/tablets and 'real' computers.
Needing a bad ass tower really depends on what you're planning to do with it. If you don't think "damn this computer is slow" and it can still handle everything you throw at it, no need for a new one.
-
Actually by "next gen graphics" I was thinking somewhat like 'Space Engine.' And on the optimistic side 'Skyrim.'
-
I would be surprised if it could handle Skyrim, honestly. Tablet CPUs are reasonably beefy, but proper GPUs are harder to cram in to the form factor of something like a tablet and the first thing that gets cut in order to hit good power consumption levels.
-
Damn, Now I actually want to try it. Better dig up my hack CD somewhere. I kinda shoved it away after realizing my frame rate on current hardware was 1 fps. :D
-
Hmm.. Would be fun to try out 32 instances with my 32 core, 128 GB RAM server :)