从APU强制显示,并为OpenCL配备离散GPU?

从APU强制显示,并为OpenCL配备离散GPU?,gpu,opencl,gpgpu,amd-processor,Gpu,Opencl,Gpgpu,Amd Processor,我需要一个具有以下限制的OpenCL编程系统: 离散GPU不能作为显示卡运行-->我可以这样做 从BIOS AMD APU的内部GPU必须用作显示GPU-->我可以做到这一点 从BIOS OpenCL不得识别内部APU的GPU,并且必须始终 默认为离散GPU 我为什么需要这个? 这是因为我正在处理一个需要GPU的BIOS的GPU代码 要闪存和要安装的自定义BIOS,这使GPU 无法显示 没有VGA卡,AMD板无法启动,所以我得到了一个APU 有内部GPU 我正在处理的代码库无法处理冲突的GPU,

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

  • 离散GPU不能作为显示卡运行-->我可以这样做 从BIOS
  • AMD APU的内部GPU必须用作显示GPU-->我可以做到这一点 从BIOS
  • OpenCL不得识别内部APU的GPU,并且必须始终 默认为离散GPU
  • 我为什么需要这个?

  • 这是因为我正在处理一个需要GPU的BIOS的GPU代码 要闪存和要安装的自定义BIOS,这使GPU 无法显示
  • 没有VGA卡,AMD板无法启动,所以我得到了一个APU 有内部GPU
  • 我正在处理的代码库无法处理冲突的GPU,因此我 需要禁用它(APU的GPU)从OpenCL看到它
  • 如何实现这一点?

    根据,AMD的驱动程序支持
    GPU设备顺序
    环境变量来配置所使用的设备(第2.3.3节):

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

    • 在Windows下:设置GPU_设备_序号=1,2,3
    • 在Linux下:导出GPU_设备_序号=1,2,3

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

    系统配置问题在此处不讨论,可能是更好的位置。当你把问题转移到这里时,你可能还想提到你的操作系统。你使用的是什么操作系统和OpenCL驱动程序?有些允许使用环境变量来配置行为。我将尝试一下。看来这会让生活更轻松。