当我使用cpu_selector和gpu_selector时,这两个设备默认情况下属于2个不同的上下文?为什么将设备置于相同上下文中时的默认设置有助于对缓冲区进行高效的内存访问(将数据复制到其他上下文中没有开销)?
答案 0 :(得分:2)
SYCL上下文只能封装来自单个平台的设备,而不能使用来自两个或多个不同平台的设备创建。
可以连接到同一上下文的设备取决于平台,而不是用户定义的。如果同一平台报告了许多设备,则可以从同一平台为它们构建上下文,但是如果它们在不同的平台上,则将无法使用。
如果您想了解详细信息,可以阅读SYCL规范https://www.khronos.org/registry/SYCL/specs/sycl-1.2.1.pdf#page=54的本部分