Почему каждое устройство SYCL по умолчанию входит в отдельный контекст? - PullRequest
0 голосов
/ 28 мая 2019

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

1 Ответ

2 голосов
/ 29 мая 2019

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

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

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

...