Я пытаюсь понять экосистему OpenCL и как Vulkan вступает в игру.
- Я понимаю, что OpenCL - это среда для выполнения кода как на GPU, так и на CPU, используя ядра, которые могут быть скомпилированы в SPIR.
- Vulkan также можно использовать в качестве compute-API с использованием того же языка SPIR.
- SYCL - это новая спецификация, которая позволяет писать код OpenCL как соответствующий стандарту С++ 14. Насколько я понимаю, пока нет бесплатных реализаций этой спецификации.
Учитывая это,
Как OpenCL относится к Vulkan? Я понимаю, что OpenCL более высокого уровня и абстрагирует устройства, но использует ли (или может) он Vulkan для внутреннего использования? (вместо того, чтобы полагаться на драйверы, специфичные для поставщика)
Vulkan рекламируется как вычислительный и графический API, однако я нашел очень мало ресурсов для вычислительной части. Почему это так?
Vulkan имеет преимущества в производительности по сравнению с OpenGL. То же самое верно для Vulkan против OpenCl? (OpenCL печально известен своей медлительностью, чем CUDA.)
Использует ли SYCL OpenCL внутри или может использовать Vulkan? Или он не использует ни один, а вместо этого полагается на низкоуровневые, специфичные для поставщика API для реализации?