0

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

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

对环境的要求:

  1. OpenCL 程序可见的 GPU(clinfo例如)
  2. 可以监控温度和设置风扇速度(例如使用aticonfig)。

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

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

4

1 回答 1

0

我有类似的问题,问了一个问题并成功地自己解决了。对于 R9 290 和更新的卡,我假设你有:

  • 内置内核 4.14 或更高版本,支持 amdgpu 驱动程序。图形支持下的 linux 内核配置中有选项。
  • 所有需要的固件 .bin blob 都被合并。为此,您可以编辑buildroot/package/linux-firmware/*buildroot 的内容,并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,买点新的。我不知道最新的驱动是否还支持,我们现在还没有这么旧的卡。我测试了 290、390、480、580 卡系列。(对于 R9 270,矿工无法构建 cl 代码)。对于较旧的卡,最好使用一些较旧的软件 <=16.40 和可能有点旧的内核 <=4.13

于 2018-03-15T17:03:33.877 回答