Hello, everyone.
I am newbie on this forum I would like to show my problem with my graphics card (this is mainly hardware problem).
I am using Linux 64-bit on my PC and I am programming in OpenCL since 2 years.
I wrote simple program in OpenCL that heavily loads GPU and its memory (much than furmark). Program checks mainly GPU memory and can detects errors.
I observed performance throttling after 30-120 seconds without changing gpu clock and gpu memory clock
(mainly in overclocked setup, for example: core=1000, mem=1255). Throttling reduces performance around 5%-10% of main performance GPU.
However amdconfig --odgc did display this same clocks at all time of program running (no changes in current clocks line).
Moreover for some tests i observed throttling on the stock clocks.
Program prints performance info (memory bandwidth and GFLOPS) and allows to observe changes in performance.
example program working in core=860 mem=1200 (stock), command: ./gpustress -G -W512 -S40 -P gpustressPW.cl :
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #10
Approx. bandwidth: 87.8229 GB/s, Approx. perf: 1405.17 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #20
Approx. bandwidth: 97.0516 GB/s, Approx. perf: 1552.83 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #30
Approx. bandwidth: 98.6475 GB/s, Approx. perf: 1578.36 GFLOPS
.... after few seconds....
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #410
Approx. bandwidth: 92.9131 GB/s, Approx. perf: 1486.61 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #420
Approx. bandwidth: 92.3115 GB/s, Approx. perf: 1476.98 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #430
Approx. bandwidth: 92.0867 GB/s, Approx. perf: 1473.39 GFLOPS
other run (core=900,mem=1200), command: ./gpustress -G -W512 -S40 -P gpustressPW.cl:
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #80
Approx. bandwidth: 95.0955 GB/s, Approx. perf: 1616.62 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #90
Approx. bandwidth: 92.9179 GB/s, Approx. perf: 1579.6 GFLOPS
...
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #320
Approx. bandwidth: 92.1332 GB/s, Approx. perf: 1566.26 GFLOPS
#0 AMD Accelerated Parallel Processing:Pitcairn was passed PASS #330
Approx. bandwidth: 89.0627 GB/s, Approx. perf: 1514.07 GFLOPS
During program working my GPU have over 65 C (few degrees more than in furmark test) after 3 minutes.
No any other program was working when my program was ran (no software circumstances).
I encountered problems with throttling on AMD Catalyst 14.4 and 14.6beta1 (may 23).
EDIT: I forgot about memory requirements:
program requires 256*workSize bytes of GPU memory. WorkSize is maxComputeUnits*maxWorkGroupSize*WORKFACTOR where workfactor can be specified in command line.
My question is: what causes GPU performance throttling and how? is it programmed in GPU BIOS or is controlled by driver?
I would like to get comprehensive answer if this is possible.
WARNING: ATTACHED PROGRAM IS VERY DANGEROUS FOR GRAPHICS CARD AND CAN OVERHEAT GRAPHICS CARD IN FEW MINUTES.
PLEASE USE THIS PROGRAM VERY CAREFULLY!
I REALLY RECOMMEND TO RUN THIS PROGRAM WHEN GRAPHICS CARD HAS STOCK CLOCKS (ESPECIALLY GPU MEMORY CLOCK) AND OTHER PARAMETERS IN STOCK VALUES!
My config is:
Intel Core i5 3470 (oc'ed)
Gigabyte Radeon HD 7850 1GB (currently, core=900, mem=1200).
OpenSUSE Linux 64-bit
Drivers: AMD Catalyst 14.4.
PS: Sorry for my bad English.
PS2: Possible that this program will be published in github (maybe tomorrow or later).
PS3: In attached archive I found stupid bug in Makefile ('make clean' removes sources instead executable!). Also new gpustress has been updated.