Почему каждое устройство SYCL по умолчанию входит в отдельный контекст?

Когда я использую cpu_selector и gpu_selector, эти два устройства попадают в 2 разных контекста по умолчанию? Почему это значение по умолчанию, когда устройства в одном и том же контексте помогают с быстрым доступом к памяти буферов (нет необходимости в копировании данных в другой контекст)?

1 ответ

Решение

Контекст SYCL может инкапсулировать устройства только с одной платформы и не может быть создан с использованием устройств с двух или более разных платформ.

Устройства, которые могут быть подключены к одному и тому же контексту, зависят от платформы, а не определяются пользователем. Вы можете создать контекст для многих устройств с одной и той же платформы, если одна и та же платформа сообщает о них, но если они находятся на разных платформах, вы не сможете.

Если вы хотите понять детали, вы можете прочитать этот раздел спецификации SYCL https://www.khronos.org/registry/SYCL/specs/sycl-1.2.1.pdf

Другие вопросы по тегам