Как OpenCL относится к Vulkan?
Они оба могут конвейерно отделять работу от хоста до gpu и gpu для размещения очередей, чтобы сократить расходы на связь с использованием нескольких потоков. Directx-opengl не может?
OpenCL: Первоначальный выпуск 28 августа 2009 г. Расширенная аппаратная поддержка. Указатели разрешены, но только для использования в устройстве. Вы можете использовать локальную память, разделяемую между потоками. Намного легче начать мир привет. Имеет api накладные расходы для команд, если они не стоят на стороне устройства. Вы можете выбрать неявную синхронизацию нескольких устройств или явное управление. Ошибки в основном исправлены для 1.2, но я не знаю о версии 2.0.
Vulkan: Первоначальный выпуск 16 февраля 2016 года (но прогресс с 2014 года). Более узкая аппаратная поддержка. Может ли указатель ручки SPIR-V? Возможно, нет? Нет опции локальной памяти? Сложно начать привет мир. Меньше api накладные расходы. Можете ли вы выбрать неявное управление несколькими устройствами? Все еще багги для игры Dota-2 и некоторых других игр. Одновременно использование графики и вычисления конвейера может скрыть еще большую задержку.
Если у opencl был вулкан, то он был скрыт от общественности в течение 7-9 лет. Если бы они могли добавить его, почему они не делают это для OpenGL? (Возможно, из-за давления со стороны PhysX/CUDA?)
Vulkan рекламируется и как вычислительном и графики API, однако я нашел очень мало ресурсы для вычислительной части - почему?
Необходимо больше времени, как и opencl.
Вы можете проверить информацию aboout вычислительными шейдерами здесь:
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#fundamentals-floatingpoint
Вот пример системы частиц под управлением вычислительными шейдерами:
https://github.com/SaschaWillems/Vulkan/tree/master/computeparticles
ниже, есть raytracers и примеры обработки изображений.
Vulkan обладает преимуществами по сравнению с OpenGL. То же самое верно для Vulkan vs OpenCl?
- Vulkan не нужно синхронизировать для другого API. Его команда управляет синхронизацией команд между командами.
- OpenCL необходимо синхронизировать с opengl или directx (или вулканом?) Перед использованием общего буфера (cl-gl или dx-cl interop buffers). У этого есть накладные расходы, и вам нужно скрыть его, используя обмен буферами и конвейерную обработку. Если общий буфер не существует, он может работать одновременно на современном оборудовании с opengl или directx.
OpenCL, к сожалению, печально известный к тому медленнее, чем CUDA
Это было, но теперь его зрелой и вызовы CUDA, особенно с более широкой аппаратной поддержкой от всех игровых чипов на ПВМ с использованием версии 2.1, например, в будущем Intel может поместить fpga в Core i3 и включить его для многоядерной модели cpu (soft-x86 core ip), закрывающей разрыв между производительностью gpu и процессором, чтобы обновить игровой процесс cpu-physx или просто позволить физическая реализация opencl формирует ее и использует по крайней мере% 90 площади штампа вместо эффективной площади используемого мягкого ядра% 10% 20.
С такой же ценой процессор AMD gpus может быстрее вычислять на opencl и с той же вычислительной мощностью Intel igpus потребляет меньше энергии.
Кроме того, я написал ядро SGEMM opencl и запускаю HD7870 на 1.1 Tflops и проверил интернет, а затем увидел GTEM6 на GTX680 для такой же производительности, используя популярный заголовок на CUDA! (Соотношение цены gtx680/hd7870 было 2).
Использует ли SYCL OpenCL внутренне или может использовать вулканы? Или это использовать ни один из них и вместо этого полагается на низкий уровень, специфический для поставщика apis до ?
Здесь
https://www.khronos.org/assets/uploads/developers/library/2015-iwocl/Khronos-SYCL-May15.pdf
говорит
Предоставляет методы для решения задач, которые не имеют OpenCL (пока!) Реализация
запасной вариант процессора отладке !
поэтому он может вернуться к чистой резьбовой версии (аналогично aparapi java).
доступ к объектам OpenCL из SYCL объектов Можно создавать объекты SYCL от объекта OpenCL
Interop с OpenGL остается в SYCL - использует те же структуры/типы
использует OpenCL (возможно не напрямую, но с обновленной связью драйверов?), он развивается параллельно с opencl, но может возвращаться к потокам.
от самого маленького OpenCL 1.2 встроенного устройства для наиболее продвинутых OpenCL 2.2 ускорителей
«OpenCL печально известен тем, что он медленнее, чем CUDA». По словам кого? –