OpenCl:使用AMD GPU的最低配置



假设我们有AMD GPU(例如Radeon HD 7970)和没有X等的最小linux系统。

应该安装什么,应该启动什么,应该如何启动才能拥有合适的OpenCL环境?在最好的情况下,它应该是无头环境。

对环境的要求:

  1. OpenCL程序可见的GPU(例如clinfo
  2. 可以监测温度并设置风扇转速(例如使用aticonfig

附言:简单安装Xserver、catalyst和运行X :0将无法正常工作。请参阅带有fglrx驱动程序的X服务器在49次访问X服务器后不会响应

UPD当您在linux上使用AMD GPU时,如果Xserver未启动,OpenCL应用程序将看不到AMD GPU。

我也遇到过类似的问题,问了一个问题,并成功地自己解决了它。对于R9 290卡和更新的卡,我想你有:

  • 内置内核4.14或更高版本,支持amdgpu驱动程序。在linux内核配置中的图形支持下有一个选项
  • 所有内部固件.bin Blob都包含在内。要做到这一点,您可以编辑buildroot的buildroot/package/linux-firmware/*内容,并手动添加BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU选项和BR2_PACKAGE_LINUX_FIRMWARE_RADEON(将其用作模板)。事实上,我们应该把更新发布到他们的git上

在启动时,您应该看到关于amdgpu初始化的相应dmesg消息,每个适配器都有。并且应该切换屏幕模式。如果您仍然看到大型控制台文本,并且在初始化过程中没有发生视频模式切换,那么您的内核/固件有问题,您应该首先解决这个问题。

为了回答第二个问题,控制风扇速度/温度是通过powerplay文件系统实现的,例如/sys/class/drm/。。像这样:

cd sys/class/drm/card0/device/hwmon/hwmon0
echo 1 > pwm1_enable
cat pwm1_max > pwm1

您可以更深入地挖掘,并在附近的设备文件夹中找到powertune参数。但我强烈建议不要使用/sys/class/drm/card0/device/pp_dpm_sclk,而是直接在卡的bios中闪烁该值。设置所需的频率/电压,因为它更可靠、稳定且独立于api-您可以初始化它,也可以不初始化:)

PS。还存了7970,买一些新的。我不知道最新的驱动程序是否仍然支持它,我们现在还没有这么旧的卡。我测试了290390480580个卡系列。(对于R9 270,miner无法构建cl代码)。对于较旧的卡,最好使用一些较旧的软件<16.40以及可能稍旧的内核<4.13

最新更新