Jump to content

Calculations GFLOPS AMD vs Nvidia (OpenCl CUDA)

Shog

I'm a bit puzzled. I'm a robotics guy and follow the technology scene. I use graphics cards for scientific applications that are typically benchmarked in fps vs gflops. I was about to buy a 1050 ti and then saw in the hot deals section a great rx480 deal, I figured I would check it out. 

The radeon rx 480 has 5.8 tflops floating point performance.

gtx 1050ti is 1.8 to 2

gtx 1060 is around 4

gtx 1070 is 5.8

 

Now I recognize that AMD is typically touted as inexpensive but only at a slight sacrifice in the gaming world (typically, not that it's true). I don't quite understand how this difference is garnered. Is this simply a result of the way the gpus are built? Is this a bit like AMD's ghz vs Intels ghz in CPUs? I understand there are differences revolving around CUDA cores and OpenCL with specific scientific applications regarding Nvidia compatability but Gosh darn the difference is staggering if these numbers equate to scientific performance.  

Anyone care to explain or help me understand?

Link to comment
Share on other sites

Link to post
Share on other sites

Nvidia uses the glops better to get more frames on a smaller die.

 

 

For your using, What program are you using? Normally if you doing compute in a large scale, you test both options. Normally if your using opencl, go amd, cuda is for nvidia, but nvidia normally has better driver supports and is much more efficent.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Electronics Wizardy said:

Nvidia uses the glops better to get more frames on a smaller die.

 

 

For your using, What program are you using? Normally if you doing compute in a large scale, you test both options. Normally if your using opencl, go amd, cuda is for nvidia, but nvidia normally has better driver supports and is much more efficent.

Unfortunately I am making a custom application. I have my choice between open cl or cuda depending on which I choose. it'd be for vslam in ROS. I might go opencl for the ease or I might go cuda since nvidia tends to be more power efficient. I'll really have to sit and think about this one, maybe look at a few more benchmarks between opencl and amd and cuda and nvidia. 

Link to comment
Share on other sites

Link to post
Share on other sites

With OpenGL, both vendors can use it. Amd slightly more efficient Price to Performance with OpenGL. 

CUDA is super nice, but only Nvidia cards can use it, leaving half of the people in the dirt. 

 

Unfortunately, Matlab is only CUDA accelerated, so I'll be getting a GTX 1070, where I already have an r9 290x, which is frustrating for poor college students like me.

COMPUTER: Mobile Battlestation  |  CPU: INTEL I7-8700k |  Motherboard: Asus z370-i Strix Gaming  | GPU: EVGA GTX 1080 FTW ACX 3.0 | Cooler: Scythe Big Shuriken 2 Rev. b |  PSU: Corsair SF600 | HDD: Samsung 860 evo 1tb

 

Link to comment
Share on other sites

Link to post
Share on other sites

AMD has more shader units. It doesn't actually matter whether it's a NVIDIA or AMD GPU, at the "atomic" level, a shader unit is a single FP32 cruncher. AMD and NVIDIA can issue and execute two instructions per clock.

 

So for an RX 480, you have 2304 shaders. That mulitplied by its base frequency of 1120MHz times two gives you 5,160,960 MFLOPS. The GTX 1060 6GB, its competitor, has 1280 shaders running at 1506MHz base clock. Times that by two and you get 3,855,546 MFLOPS.

 

The reason why there's not a performance disparity in games is because NVIDIA has tuned their hardware to be more efficient and 3D rendering, whereas AMD has tuned their hardware to be better at computing. Plus it's only theoretical. If the programmer can't really draw on the GPU's strengths (plus the quality of the drivers), the GPU won't reach its potential.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, Shog said:

I'm a bit puzzled. I'm a robotics guy and follow the technology scene. I use graphics cards for scientific applications that are typically benchmarked in fps vs gflops. I was about to buy a 1050 ti and then saw in the hot deals section a great rx480 deal, I figured I would check it out. 

The radeon rx 480 has 5.8 tflops floating point performance.

gtx 1050ti is 1.8 to 2

gtx 1060 is around 4

gtx 1070 is 5.8

 

Now I recognize that AMD is typically touted as inexpensive but only at a slight sacrifice in the gaming world (typically, not that it's true). I don't quite understand how this difference is garnered. Is this simply a result of the way the gpus are built? Is this a bit like AMD's ghz vs Intels ghz in CPUs? I understand there are differences revolving around CUDA cores and OpenCL with specific scientific applications regarding Nvidia compatability but Gosh darn the difference is staggering if these numbers equate to scientific performance.  

Anyone care to explain or help me understand?

Let's start with basics: FLOP = Floating point operation per second. 

so, in your mini chart 480 and 1070 can do the same amount of FLOPS (5.800.000.000.000). This number is an average (the "per second" part is key ) of instructions in a period of time (one second). So, they should perform the same, right?. 

Well... no.

 

Imagine i give you a pencil and a white paper. (Im assuming you are bad at drawing, so bare with me). 

Then i give the same brand and model of paper and pencil to a car designer with awesome drawing skills. 

Now i say: Draw a car in 10 minutes.

 

Will you end with the same result even with same materials and amount of pencil traces to use in a particular time?

Unlikely.

Not because he could move the pencil faster, nor because he had more pencil traces than you, just because you two will use different algorithms to do the same task: aka drawing a car in the same amount of time.

 

Different workloads require different optimizations hardware level (micro architecture) so even if they have the same compute power, their DX11 performance is miles away different.

There isn't a silver bullet in synthetic benchmarks that can tell you how something will perform across every workflow. Most of the time, it's software optimization that decides who wins. 

 

Cheers!

Link to comment
Share on other sites

Link to post
Share on other sites

Thank you very much, awesome responses guys and girls. 

Link to comment
Share on other sites

Link to post
Share on other sites

On 1/11/2017 at 2:11 PM, FAQBytes said:

With OpenGL, both vendors can use it. Amd slightly more efficient Price to Performance with OpenGL. 

CUDA is super nice, but only Nvidia cards can use it, leaving half of the people in the dirt. 

Be very careful with the wording of this statement.  People often times mistake OpenCL and GL.  They're two completely different technologies and APIs.  I'm pretty sure you meant OpenCL not OpenGL with your statement.  And yes, both NVidia and AMD support OpenCL.

Editing Rig: Mac Pro 7,1

System Specs: 3.2GHz 16-core Xeon | 96GB ECC DDR4 | AMD Radeon Pro W6800X Duo | Lots of SSD and NVMe storage |

Audio: Universal Audio Apollo Thunderbolt-3 Interface |

Displays: 3 x LG 32UL950-W displays |

 

Gaming Rig: PC

System Specs:  Asus ROG Crosshair X670E Extreme | AMD 7800X3D | 64GB G.Skill Trident Z5 NEO 6000MHz RAM | NVidia 4090 FE card (OC'd) | Corsair AX1500i power supply | CaseLabs Magnum THW10 case (RIP CaseLabs ) |

Audio:  Sound Blaster AE-9 card | Mackie DL32R Mixer | Sennheiser HDV820 amp | Sennheiser HD820 phones | Rode Broadcaster mic |

Display: Asus PG32UQX 4K/144Hz displayBenQ EW3280U display

Cooling:  2 x EK 140 Revo D5 Pump/Res | EK Quantum Magnitude CPU block | EK 4090FE waterblock | AlphaCool 480mm x 60mm rad | AlphaCool 560mm x 60mm rad | 13 x Noctua 120mm fans | 8 x Noctua 140mm fans | 2 x Aquaero 6XT fan controllers |

Link to comment
Share on other sites

Link to post
Share on other sites

On 1/12/2017 at 6:34 PM, jasonvp said:

Be very careful with the wording of this statement.  People often times mistake OpenCL and GL.  They're two completely different technologies and APIs.  I'm pretty sure you meant OpenCL not OpenGL with your statement.  And yes, both NVidia and AMD support OpenCL.

I posted that on my phone, so it must've auto-corrected and I failed to notice. Thank you for the clarification nonetheless. 

COMPUTER: Mobile Battlestation  |  CPU: INTEL I7-8700k |  Motherboard: Asus z370-i Strix Gaming  | GPU: EVGA GTX 1080 FTW ACX 3.0 | Cooler: Scythe Big Shuriken 2 Rev. b |  PSU: Corsair SF600 | HDD: Samsung 860 evo 1tb

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/01/2017 at 8:11 PM, FAQBytes said:

With OpenGL, both vendors can use it. Amd slightly more efficient Price to Performance with OpenGL. 

CUDA is super nice, but only Nvidia cards can use it, leaving half of the people in the dirt. 

 

Unfortunately, Matlab is only CUDA accelerated, so I'll be getting a GTX 1070, where I already have an r9 290x, which is frustrating for poor college students like me.

You can translate CUDA into OpenCL/OpenGL for AMD... AMD has made a whole API for it.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Prysin said:

You can translate CUDA into OpenCL/OpenGL for AMD... AMD has made a whole API for it.

Sure, but that requires a lot of effort to rewrite everything, and converting scalar to vector requires a lot of time and effort as well. OpenCL is better at task parallelism regardless. It's not really something that is "Put it in and let it go", it requires quite a bit of manual interaction.

 

If it's a short program with only a couple hundred lines, whatever, but when you get into the tens or hundreds of thousands, that's a lot more effort, and that's why big companies normally do one or the other, like Adobe and MatLab for specific applications.

COMPUTER: Mobile Battlestation  |  CPU: INTEL I7-8700k |  Motherboard: Asus z370-i Strix Gaming  | GPU: EVGA GTX 1080 FTW ACX 3.0 | Cooler: Scythe Big Shuriken 2 Rev. b |  PSU: Corsair SF600 | HDD: Samsung 860 evo 1tb

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×