Why does my flashed show 2.5 Link Speed? How can I find actual speed?
When we write the roms for our cards, we have to reverse engineer things that only Apple and Nvidia know. And they don't typically share that info. With the Fermi cards, (GTX470/480/570/580) the bytes that turned on the 5.0 speed also changed the number in the System Profiler. When we went to find the 5.0 speed for Kepler cards (GTX680/780/Titan, etc) we discovered how to turn on the 5.0 speed, but also discovered that the functional part and the cosmetic part were 2 separate things. We spent a little more time trying to find the cosmetic part but eventually gave up as it wasn't worth spending additional time on.
In fact, the 5.0 speed on both Kepler and Maxwell cards (GTX970/980 Titan-X) functions perfectly on both 3,1 and the newer 4,1/5,1 systems. This also applies in Windows when you use Bootcamp. In Windows it is easy to confirm this using GPU-Z. When you run the little "system stress" tool you will see the card jump into 2.0 speeds. (PCIE 1.0= 2.5, PCIE 2.0 = 5.0)
In OS X it is a little more difficult to see the actual speed. There are 3 ways that work. One way is to use the "Oceanwaves" OpenCl benchmark. Here is a download link. Note that the actual benchmark won't run correctly, it will be capped by your screen refresh rate, typically 60 Hz so you will get 60 fps. But all you really need to see are the numbers on the right when you first open it. Under "Bandwidth Transfer Speeds" there are 3 numbers, the top one is CPU>PCIE>GPU and the second one is the reverse. If your card is running at PCIE 2.0, these numbers will both be 4 or higher. If you are stuck in PCIE 1.0 speed, these numbers will be in the 2 or 3 region. The final number is overall memory bandwidth on your GPU, it is not always accurate.
The 2nd way to see your actual PCIE speed is to install the correct CUDA driver and then download CUDA-Z. This will only work with Nvidia cards, if you have an AMD card you have to use the other 2 methods, or just look in System Profiler, as it is typically correct about AMD cards. Here is a download link for CUDA-Z. If you have the correct CUDA driver installed it will launch and again you are looking at the bandwidth transfer numbers. This time they are labeled "Host to Device" and "Device to Host". These numbers have a different unit and thus the decimal in a different place but same general rule, if they are 4,500 or above, you have PCIE 2.0. If they are in the 2,500 range, you are running at PCIE 1.0 speed.
The final method is to use lspci, which is a small terminal app that is a little more difficult to install and use. Here is a download link. After installing it you need to restart. Once you have restarted, open terminal and type "lspci -vv". You should get a very long output, it is everything on your PCIE bus. Page through it for the Nvidia entries. Note that the Audio portion of the video cards also shows up even though OS X doesn't typically contain drivers. You will see 2 "Link speed" entries for your GPU. One represents what it is capable of, and one is what it is currently running at. If the current link status is 2.5, simply open up a benchmark app and run it in a window. Then click back on the terminal window and hit the "up arrow" key, this will let you re-enter last command typed in, then hit return. This time when you see the current link status it should indicate 5.0.
In fact, the 5.0 speed on both Kepler and Maxwell cards (GTX970/980 Titan-X) functions perfectly on both 3,1 and the newer 4,1/5,1 systems. This also applies in Windows when you use Bootcamp. In Windows it is easy to confirm this using GPU-Z. When you run the little "system stress" tool you will see the card jump into 2.0 speeds. (PCIE 1.0= 2.5, PCIE 2.0 = 5.0)
In OS X it is a little more difficult to see the actual speed. There are 3 ways that work. One way is to use the "Oceanwaves" OpenCl benchmark. Here is a download link. Note that the actual benchmark won't run correctly, it will be capped by your screen refresh rate, typically 60 Hz so you will get 60 fps. But all you really need to see are the numbers on the right when you first open it. Under "Bandwidth Transfer Speeds" there are 3 numbers, the top one is CPU>PCIE>GPU and the second one is the reverse. If your card is running at PCIE 2.0, these numbers will both be 4 or higher. If you are stuck in PCIE 1.0 speed, these numbers will be in the 2 or 3 region. The final number is overall memory bandwidth on your GPU, it is not always accurate.
The 2nd way to see your actual PCIE speed is to install the correct CUDA driver and then download CUDA-Z. This will only work with Nvidia cards, if you have an AMD card you have to use the other 2 methods, or just look in System Profiler, as it is typically correct about AMD cards. Here is a download link for CUDA-Z. If you have the correct CUDA driver installed it will launch and again you are looking at the bandwidth transfer numbers. This time they are labeled "Host to Device" and "Device to Host". These numbers have a different unit and thus the decimal in a different place but same general rule, if they are 4,500 or above, you have PCIE 2.0. If they are in the 2,500 range, you are running at PCIE 1.0 speed.
The final method is to use lspci, which is a small terminal app that is a little more difficult to install and use. Here is a download link. After installing it you need to restart. Once you have restarted, open terminal and type "lspci -vv". You should get a very long output, it is everything on your PCIE bus. Page through it for the Nvidia entries. Note that the Audio portion of the video cards also shows up even though OS X doesn't typically contain drivers. You will see 2 "Link speed" entries for your GPU. One represents what it is capable of, and one is what it is currently running at. If the current link status is 2.5, simply open up a benchmark app and run it in a window. Then click back on the terminal window and hit the "up arrow" key, this will let you re-enter last command typed in, then hit return. This time when you see the current link status it should indicate 5.0.