从APU强制显示并为OpenCL使用独立的GPU?

时间:2018-10-10 19:52:08

标签: gpu opencl gpgpu amd-processor

我需要具有以下限制的OpenCL编程系统:

  1. 离散GPU不能作为显示卡运行->我可以做到 从BIOS
  2. AMD APU的内部GPU必须用作显示GPU->我可以做到 从BIOS
  3. OpenCL不能识别内部APU的GPU,并且必须始终 默认为离散GPU

我为什么需要这个?

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

我该如何处理?

1 个答案:

答案 0 :(得分:1)

根据AMD OpenCL Programming Guide,AMD的驱动程序支持GPU_DEVICE_ORDINAL环境变量来配置使用哪些设备(第2.3.3节):

  

在某些情况下,用户可能希望掩盖由以下人员看到的GPU的可见性:   OpenCL应用程序。一个示例是将一个GPU专用于常规图形操作,而将另外三个GPU(在四GPU系统中)专用于Compute。至   为此,请设置GPU_DEVICE_ORDINAL环境参数,该参数以逗号分隔   列表变量:

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

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