How can we throttle the i.mx6 GPU ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How can we throttle the i.mx6 GPU ?

Jump to solution
2,404 Views
roelofberg
Contributor II

Hi,

we all love the i.mx6 with its amazing GPU power. For one of our medical projects, however, we need to throttle the chip, because we can't dissipate the heat properly.

What would be the best way to throttle the chip ? I managed to reduce the CPU clock, but regarding the GPU clock, I'm not sure if I can simply reduce it or if there would be side-effects when I did so ?

Thanks a lot,

Roelof

(true i.mx6 fan)

Labels (1)
Tags (1)
0 Kudos
1 Solution
1,270 Views
igorpadykov
NXP Employee
NXP Employee

Hi Roelof

gpu clocks can be reduced, side effects will be reduced performance

AN4509 i.MX 6Dual/6Quad Power Consumption Measurement describes

various use cases with lower power consumption.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

View solution in original post

4 Replies
1,270 Views
roelofberg
Contributor II

Anyone ?

We're using VxWorks and are playing the 3D demo CinematicExperience (plus CPU stress). When I throttle the CPU by factor 2 to 396 MHz and the GPU 2D and 3D core clocks by factor 4, I see only about 80mA less power consumption on my board (1.87A -> 1.79A). So I hoped, that when I could also throttle the shader clock, I could maybe reduce the power consumption a bit more.

Where can I configure GPU3D_SHADER_CLK_ROOT ? (Not in CCM_CBCMR, right ?)

Thanks,

Roelof

0 Kudos
1,270 Views
michaelguntli
Contributor IV

roelofberg

Any progress on that? Were you able to reduce the GPU clock and save some power?

I was able to track down the place where the clock dividers are configured in the kernel:

/arch/arm/mach-imx/clk-imx6q.c

clk[IMX6QDL_CLK_GPU2D_CORE_PODF] = imx_clk_divider("gpu2d_core_podf", "gpu2d_core_sel", base + 0x18, 23, 3);
clk[IMX6QDL_CLK_GPU3D_CORE_PODF] = imx_clk_divider("gpu3d_core_podf", "gpu3d_core_sel", base + 0x18, 26, 3);
clk[IMX6QDL_CLK_GPU3D_SHADER] = imx_clk_divider("gpu3d_shader", "gpu3d_shader_sel", base + 0x18, 29, 3);

Reduced clock by 50% (divide by 8):

clk[IMX6QDL_CLK_GPU2D_CORE_PODF] = imx_clk_divider("gpu2d_core_podf", "gpu2d_core_sel", base + 0x18, 23, 7);
clk[IMX6QDL_CLK_GPU3D_CORE_PODF] = imx_clk_divider("gpu3d_core_podf", "gpu3d_core_sel", base + 0x18, 26, 7);
clk[IMX6QDL_CLK_GPU3D_SHADER] = imx_clk_divider("gpu3d_shader", "gpu3d_shader_sel", base + 0x18, 29, 7);
0 Kudos
1,271 Views
igorpadykov
NXP Employee
NXP Employee

Hi Roelof

gpu clocks can be reduced, side effects will be reduced performance

AN4509 i.MX 6Dual/6Quad Power Consumption Measurement describes

various use cases with lower power consumption.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

1,270 Views
roelofberg
Contributor II

Thanks Igor,

we use the i.mx6 DL and AN4576.pdf gives lots of interesting information, and points to the clocks "GPU3D Core" and "GPU3D Shader". Excellent. I admired Figure 18-2 (p. 784) of IMX6SDLRM and was happy to find in chapter 33.2, that I have to throttle GPU3D_CORE_CLK_ROOT and GPU3D_SHADER_CLK_ROOT. I found that GPU3D_CORE_CLK_ROOT can be configured by CCM_CBCMR (Chapter 18.6.7).

But I haven't found yet, where to configure GPU3D_SHADER_CLK_ROOT ? Any clue for me ? Thanks.

Best regards,

Roelof

0 Kudos