В настоящее время я работаю над проектом, использующим SYCL для применения нерезкой маски к изображению. В моей машине есть NVIDIA и Intel GPU внутри. Я начинаю со следующего кода:
default_selector deviceSelector;
queue myQueue(deviceSelector);
Проблема в том, что строка кода «default_selector deviceSelector;» автоматически захватывает графический процессор NVIDIA внутри моей машины, это ломает весь последующий код, поскольку SYCL не работает с NVIDIA.
Поэтому мой вопрос: как я могу заставить "default_selector deviceSelector;" получить мой графический процессор Intel, а не графический процессор NVIDIA? Пожалуй, я могу сказать что-то вроде:
if (device.has_extension(cl::sycl::string_class("Intel")))
if (device.get_info<info::device::device_type>() == info::device_type::gpu)
then select this GPU;//pseudo code
Таким образом, код пропускает графический процессор NVIDIA и гарантирует выбор моего графического процессора Intel.