Khronos的OpenCL 1.0和1.1 规范中的平台定义:
平台:主机加上由OpenCL框架管理的设备集合,允许应用程序在平台上的设备上共享资源和执行内核.
OpenCL函数clGetPlatformIDs创建了一个平台数组,这意味着可以使用多个平台.假设给定的OpenCL主机只有一个平台是否安全?
换句话说,我会通过这样做在任何主机上丢失任何东西:
cl_platform_id platform_id;
cl_uint num_platforms;
errcode = clGetPlatformIDs(1, &platform_id, &num_platforms);
Run Code Online (Sandbox Code Playgroud) 我从一开始就在学习 OpenCL,但对平台 = 主机 + 设备的想法感到困惑。在我的工作 PC 中,检测到 2 个平台:平台 0 只有 CPU,平台 1 只有 NVIDIA GPU。检测到的平台
这台电脑实际上也有一个英特尔 GPU,但我认为它不支持 OpenCL,所以它没有在这里显示。我的问题是:在 OpenCL 应用程序中,有主机和设备。根据我从书中的理解,通常主机和设备来自一个平台。然后在我的 PC 中,我需要使用 CPU 或 NVIDIA GPU 作为 OpenCL 应用程序的主机和设备。这是真的?
我试着自己搜索,一些答案确实帮助我了解更多关于这个主题的内容:什么是 opencl 中的主机?. 但是我的搜索并没有回答或确认关于主机和设备使用一种硬件的问题。