How can we throttle the i.mx6 GPU ?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How can we throttle the i.mx6 GPU ?

跳至解决方案
5,130 次查看
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)

标签 (1)
标记 (1)
0 项奖励
回复
1 解答
3,996 次查看
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!

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

在原帖中查看解决方案

4 回复数
3,996 次查看
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 项奖励
回复
3,996 次查看
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 项奖励
回复
3,997 次查看
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!

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

3,996 次查看
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 项奖励
回复