AnsweredAssumed Answered

Graphics card throttles on the heavy loads but 'amdconfig --odgc' do not displays changes

Question asked by matszpk on Sep 14, 2014

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.

Attachments

Outcomes