gpu - 从 APU 强制显示并为 OpenCL 配备独立 GPU?
问题描述
我需要一个具有以下限制的 OpenCL 编程系统:
- 独立 GPU 不得作为显卡运行 --> 我可以从 BIOS 中做到这一点
- AMD 的 APU 的内部 GPU 必须用作显示 GPU --> 我可以从 BIOS 中做到这一点
- OpenCL 不能识别内部 APU 的 GPU,并且必须始终默认为独立 GPU
为什么我需要这个?
- 这是因为我正在处理需要刷新 GPU 的 BIOS 并安装自定义 BIOS 的 GPU 代码,这使得 GPU 无法用于显示。
- AMD 板在没有 VGA 卡的情况下无法启动,所以我得到了一个具有内部 GPU 的 APU。
- 我正在处理的代码库无法处理冲突的 GPU,因此我需要从 OpenCL 中禁用它(APU 的 GPU)。
我该如何接近它?
解决方案
根据AMD OpenCL Programming Guide,AMD 的驱动程序支持GPU_DEVICE_ORDINAL
环境变量来配置使用哪些设备(第 2.3.3 节):
在某些情况下,用户可能想要屏蔽 OpenCL 应用程序看到的 GPU 的可见性。一个例子是将一个 GPU 专用于常规图形操作,另外三个(在四 GPU 系统中)用于计算。为此,请设置 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
.
推荐阅读
- php - 无法选择 ip=inet_pton($ip) 的位置
- php - php Segmentation fault: 11 写入或读取/加载文件时
- perl - CGI::Fast without tempfiles for upload
- javascript - Destructuring array into an object
- python - 如何修复 Seaborn 条形图中的“ValueError:无法解释输入'用户'”错误?
- python - Google 格式的函数摘要未显示在 PyCharm 的快速文档窗口中
- angular - Angular 辅助路由没有为配置的路由之一附加`/`?
- c# - 比较 2 个对象列表,并根据第一个列表中的项目属性创建一个新列表,该列表不存在于 ASP.NET 中
- email - Gmail API - 不发送文本/纯电子邮件作为引用打印
- javascript - React dynamic context menu/submenu