从 APU 强制显示并具有用于 OpenCL 的独立 GPU?



我需要一個具有以下限制的OpenCL編程系統:

  1. 独立GPU不得作为显示卡运行-->我可以这样做 从 BIOS
  2. AMD的APU的内部GPU必须用作显示GPU-->我可以这样做。 从 BIOS
  3. OpenCL 不得识别内部 APU 的 GPU,并且必须始终 默认为独立 GPU

我为什么需要这个?

  1. 这是因为我正在处理需要GPU的BIOS的GPU代码 要刷新并安装自定义 BIOS,这使得 GPU 不可用于显示。
  2. 没有VGA卡,AMD主板无法启动,所以我得到了一个APU 具有内置 GPU。
  3. 我正在处理的代码库无法处理冲突的 GPU,所以我 需要从 OpenCL 看到它时禁用它(APU 的 GPU(。

我该如何接近它?

根据 AMDOpenCL 编程指南,AMD 的驱动程序支持GPU_DEVICE_ORDINAL环境变量来配置使用的设备(第 2.3.3 节(:

在某些情况下,用户可能希望掩盖 OpenCL 应用程序。例如,将一个 GPU 专用于常规图形操作,将另外三个 GPU 专用于计算。自 为此,设置GPU_DEVICE_ORDINAL环境参数,该参数以逗号分隔 列表变量:

  • 在窗口下:设置 GPU_DEVICE_ORDINAL=1,2,3
  • 在 Linux 下:导出 GPU_DEVICE_ORDINAL=1,2,3

首先需要确定要包含的设备的序号。为此,我建议将 clinfo 与-l开关一起使用,这将为您提供可用 OpenCL 平台和设备的基本树。如果设备首先与 APU 一起列出,然后与专用 GPU 一起列出,则您可能只需要启用设备 1(GPU(,并将环境变量设置为GPU_DEVICE_ORDINAL=1

最新更新