检查gpu是否集成

Checking if gpu is integrated or not

我找不到任何关于设备 integrated/embedded in cpu 或使用系统 ram 或它自己的专用 gddr 内存的查询命令?我可以对 mapping/unmapping 与 reading/writing 进行基准测试来得出结论,但该设备当时可能处于负载状态并且行为错误,这会增加我正在使用的已经很复杂的负载平衡算法的复杂性。

是否有一种简单的方法来检查 gpu 是否使用与 cpu 相同的内存,以便我可以直接选择 mapping/unmapping 而不是 reading/writing?

编辑:有CL_DEVICE_LOCAL_MEM_TYPE

CL_GLOBAL or CL_LOCAL

这是整体性的表现吗?

OpenCL 1.x 有设备查询 CL_DEVICE_HOST_UNIFIED_MEMORY:

Is CL_TRUE if the device and the host have a unified memory subsystem and is CL_FALSE otherwise.

此查询自 OpenCL 2.0 起已弃用,但目前应该仍可在 OpenCL 2.x 平台上使用。否则,您可以从 CL_DEVICE_SVM_CAPABILITIES 的结果中生成启发式。