Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Suppose I have a program that does a lot of floating-point computations and is impractically slow on my current hardware. To reduce the runtime as much as possible, I want to figure out whether it's better to invest in CPUs or GPUs, given a fixed budget (around $3000-4000 in my case). I know that to compare one CPU to another, I can get a very rough sense of the relative processing speeds by multiplying the clock frequency by the number of cores for each CPU and comparing those numbers. But what about GPUs? Is there some way to quickly calculate a number based on the specs of the GPU that will tell me roughly how fast I can expect it to run my program, relative to a known CPU?

I know that the actual processing speed will depend heavily on the way the program is constructed and on other factors besides CPU/GPU clock speeds. For purposes of this question, I'm ignoring those other factors, i.e. I'm assuming that the time taken for any task other than floating-point number crunching is negligible (so it's not I/O bound or anything like that), and that the program is infinitely parallelizable (so, given any number of CPU or GPU cores, all of them will be used to maximum capacity as long as the program runs).

share|improve this question

1 Answer 1

up vote 1 down vote accepted

Well, you could try with synthetic benchmarks. They will give you some idea. NVIDIA'a CUDA toolkit for example contains some programs which are run on both CPU and GPU and it can be used to compare how long it takes to execute them on each platform.

If you need to do it only using GPU datasheets, you can do that too. For example, here's the page for my GeForce 9500 GS. You can find information about number of processing cores there. Processing capability is proportional to GPU frequency and core number. Some cards even have GFLOPS number too. There was a document with more uniform detailed descriptions available for each card, but I can't find a way to get to it right now. Maybe it's in CUDA toolkit downloads?

There's also the compute ability level which shows which features each card provides, but if I remember correclty, it doesn't make a direct impact on calculation speed, only on precision and instruction set that may be used.

I'm not up to date with information about cards from other manufacturers, but I expect that thare are ways to get the data at least for AMD and Intel too.

share|improve this answer
    
Sorry, I somehow missed your answer at first. The tip about using GPU datasheets was basically what I was wondering about, thanks! –  David Z Mar 3 '11 at 18:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.