4

I wrote a Direct2D application that displays a certain number of graphics.

When I run this application it takes about 4 seconds to display 700,000 graphic elements on my notebook:

Intel Core i7 CPU Q 720 1.6 GHz
NVIDIA Quadro FX 880M

According to the Direct2D MSDN page:

Direct2D is a user-mode library that is built using the Direct3D 10.1 API. This means that Direct2D applications benefit from hardware-accelerated rendering on modern mainstream GPUs.

I was expecting that the same application (without any modification) should perform better on a different machine with better specs. So I tried it on a desktop computer:

Intel Xeon(R) CPU 2.27 GHz
NVIDIA GeForce GTX 960

But it took 5 seconds (1 second more) to display the same graphics (same number and type of elements).

I would like to know how can it be possible and what are the causes.

Nick
  • 10,309
  • 21
  • 97
  • 201
  • Do either of these computers have on-board(or rather on-die) GPU that might be used instead of the dedicated adapter? – melak47 Sep 30 '15 at 14:42
  • @melak47 how can I know it? On Device Manager they are the only available display adapters. – Nick Sep 30 '15 at 14:56
  • Depending on your implementation of the drawing method, there may be different bottlenecks occuring, which form that execution time. Also are you sure that your application doesn't use the internal video card (Intel HD Graphics) on the notebook, instead of the Quadro? – Anton Angelov Oct 01 '15 at 20:29
  • @AntonAngelov Again, how can I know that my application uses the internal video card instead of the Quadro? – Nick Oct 31 '15 at 14:42
  • You can use GPU-Z to monitor the GPU load (or video memory usage) on both adapters while your program is running. Those characteristics should change over time for the adapter which is actually being used by your application. – Anton Angelov Nov 26 '15 at 16:04
  • @melak47 Xeon's don't have them, but all i7's do –  Jul 29 '16 at 09:52
  • Are you reading the 2D graphics from disk? Does one machine use an SSD while the other uses a spinning disk? – ChrisG0x20 Jul 29 '16 at 21:47
  • @ChrisG0x20 Yes I am, and both have an SSD. But I checked and there is not any considerable difference on the time elapsed reading the geometries. – Nick Jul 30 '16 at 07:28
  • 1
    The i7 720 might actually be a little faster then that Xeon depending on which Xeon it is. The 720 has a relative high turbo boost of 2.8 GHz. That Xeon if it has turbo boost at all probably doesn't do more then 2.6 GHz. – Eelke Jul 30 '16 at 17:07
  • [Profile, profile, profile.](https://msdn.microsoft.com/en-us/library/windows/desktop/jj585574(v=vs.85).aspx) – Marco A. Aug 05 '16 at 07:38

2 Answers2

2

It's impossible to say for sure without measuring. However, my gut tells me that melak47 is correct. There is no lack of GPU acceleration, it's a lack of bandwidth. Integrated GPUs have access to the same memory as the CPU. They can skip the step of having to transfer bitmaps and drawing commands across the bus to dedicated graphics memory for the GPU.

With a primarily 2D workload, any GPU will be spending most of its time waiting on memory. In your case, the integrated GPU has an advantage. I suspect that extra second you feel, is your GeForce waiting on graphics coming across the motherboard bus.

But, you could profile and enlighten us.

ChrisG0x20
  • 281
  • 1
  • 6
0

Some good points in the comments and other replies.(can't add a comment yet)
Your results dont surprise me as there are some differencies between your 2 setups.

Let's have a look there: http://ark.intel.com/fr/compare/47640,43122

A shame we can't see the SSE version supported by your Xeon CPU. Those are often used for code optimization. Is the model I chose for the comparison even the good one?
No integrated GPU in that Core-I7, but 4 cores + hyperthreading = 8 threads against 2 cores with no hyperthreading for the Xeon.
Quadro stuff rocks when it comes to realtime rendering. As your scene seems to be quite simple, it could be well optimized for that, but just "maybe" - I'm guessing here... could someone with experience comment on that? :-)

So it's not so simple. What appears to be a better gfx card doesn't mean better performance for sure. If you have a bottleneck somewhere else you're screwed!

The difference is small, you must compare every single element of your 2 setups: CPU, RAM, HDD, GPU, Motherboard with type of PCI-e and chipset.

So again, a lot of guessing, some tests are needed :)

Have fun and good luck ;-)

RDK
  • 88
  • 2
  • 9