更改AMD Radeon GPU核心/内存时钟频率

我刚刚发现在Ubuntu上使用radeon-profile时,我的AMD Radeon R5 M330的核心频率被限制在750MHz/1000MHz的内存频率,但由于这太低了(核心应该被限制在1030MHz),所以我想要增加这个限制。我尝试了一些方法,包括在/sys/class/drm/card1/device/目录下添加/修改文件,但即使有root权限(尝试了sudo和使用sudo su的root终端),它仍然显示权限被拒绝。我没有找到其他方法。
我并不是在尝试超频,因为原始设备制造商在Windows上将GPU的核心时钟速度设置为1030MHz,所以我只想在Ubuntu上将限制设置为应有的数值。
简而言之:如何更改AMD Radeon GPU核心/内存的时钟速度限制?
注意:我正在使用开源驱动程序radeon,并添加了padoka PPA。
2个回答


这应该是一个评论 - Tooniis
这个工具是我用来确定我的GPU的最大频率的,而且我知道它不能通过“radeon”驱动程序来改变它们。 - Tooniis
1这应该是一个评论 - Tooniis@Tooniis 我同意。然而,显然由于我在这个论坛中的声望或缺乏声望,我无法添加第一条评论。 - SD Allen
1由于没有人给出一个好的答案,而且为了不浪费声望,我猜我会授予你奖励,以便能够评论问题以获取更多信息并能够回答更多问题。 - Tooniis
1谢谢!我不是专家,也不是Linux/Unix的初学者,只是不习惯使用这种格式而已。有点老派。不过我会适应的。 - SD Allen

我能够在这个教程的帮助下实现这一点。

https://gist.github.com/Francesco149/0302fbb5e056f3339ae17d3c13257929

下载Linux内核源码后,我修改了/linux-4.13.0/drivers/gpu/drm/radeon/si_dpm.c文件中的第2985行,将max_sclk = 75000;改为max_sclk = 103000;,然后重新构建、安装修改后的内核,并重新启动了我的机器。
然而,这涉及到重新构建整个Linux内核并进行安装,如果操作不当,可能会导致操作系统崩溃甚至无法启动。 此外,这需要很长时间,因为在我的机器上编译花费了近一个小时,所以这并不是一个理想的解决方案。
警告:只有在您知道自己在做什么的情况下才能这样做,因为您可能会破坏您的操作系统,甚至损坏硬件。
另一个警告:除非您知道自己在做什么,否则应将max_sclk设置为您机器的OEM时钟频率或更低。
更新: 上述修复方法是一种权宜之计。正确的修复方法应该是首先检查您的GPU在最大核心频率下是否稳定,然后像this patch中那样从列表中删除您的GPU的ID,并将您的修补程序提交到邮件列表中以便合并到上游代码。