Что такое opencl и как его включить: Первые шаги с OpenCL или сказ о том как одинаковый код на GPU и CPU запускать / Хабр

Содержание

Windows 10: OpenCL и OpenGL Compatibility Pack, выпущенный Microsoft

На этой неделе Microsoft выпустила приложение OpenCL и OpenGL Compatibility Pack в свой магазин Microsoft Store, чтобы приложения могли работать на Windows 10 устройства, на которых не установлены драйверы оборудования OpenCL или OpenGL.

Если установлены драйверы DirectX 12, поддерживаемые приложения будут работать с аппаратным ускорением для повышения производительности.

Microsoft предоставляет информацию о приложении и самом проекте по его Блог разработчиков DirectX.

Команда проекта работает над слоями отображения OpenCL и OpenGL в Direct3D 12, чтобы представить поддержку «продуктивных и творческих приложений на основе OpenCL и OpenGL, для которых недоступны собственные драйверы». Конечный результат, которого команда пытается достичь с помощью реализации, улучшает совместимость приложений на Windows 10 устройства; другими словами: приложения, которые в настоящее время не работают из-за требований OpenCL или OpenGL, могут затем запускаться на Windows 10 ПК благодаря слоям отображения в DirectX.

Пакет совместимости, выпущенный Microsoft на этой неделе для приложений, использующих OpenCL версии 1.2 и ранее и OpenGL версии 3.3 и ранее.

Microsoft выпустила две версии пакета; один для стабильных версий Windows и более новая версия, доступная для устройств предварительной оценки.

Пакет совместимости также предоставляется для устройств ARM; это значит, что Windows 10 на устройствах ARM теперь могут запускать поддерживаемые приложения при установке пакета вместо того, чтобы полагаться на программную эмуляцию.

Основная загрузка доступна на Microsoft Store. Пользователям требуется учетная запись Microsoft, чтобы загрузить пакет совместимости в свои системы и установить его.

Windows пользователи, которые не хотят этого, могут получить официальный файл appx с помощью онлайн-генератора ссылок для Microsoft Store:

  1. Откройте веб-сайт генератора ссылок в Интернете в любом браузере: https://store.rg-adguard.net/
  2. Выберите ProductId в первом меню.
  3. Вставьте идентификатор 9nqpsl29bfff в поле рядом с ним.
  4. Выберите «Быстро», чтобы получить инсайдерскую версию (более свежую), или «Розничная», чтобы получить стабильную версию приложения.
  5. Найдите нужную загрузку в списке ссылок; он должен иметь расширение файла appx, и вам нужна правильная архитектура, например x64 для 64-битной версии Windows или arm для 32-битной системы ARM.
  6. После загрузки проверьте имя файла, чтобы убедиться, что он имеет расширение .appx.
    1. Если нет, щелкните его правой кнопкой мыши, выберите переименовать и добавьте в конец .appx.
  7. Дважды щелкните файл и следуйте диалогу установки.

Закрытие слов

Microsoft отмечает, что пакет совместимости полезен только для определенных приложений, но не перечисляет эти приложения на странице Microsoft Store или в блоге разработчиков. По словам Microsoft, версия Insider поддерживает больше приложений, но, поскольку неясно, какие именно, все сводится к методам проб и ошибок со стороны пользователя.

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

(через Deskmodder)

Библиотеки. GPGPU | Ресурсный Центр Вычислительный Центр СПбГУ

Расположение библиотеки CUDA:

10.1 /usr/local/CUDA/10.1.105/
9.0 /usr/local/cuda/
8.0 /usr/local/CUDA/8.0
7.0 /usr/local/CUDA/7.0
6.0 /usr/local/CUDA/6.0

Поддержка в компиляторах:

Технология Язык Компилятор
CUDA CUDA C Nvidia: nvcc
CUDA Fortran PGI: pgfortran
OpenCL OpenCL C Nvidia: clcc
OpenACC C, C++ и Fortran PGI, GCC (>= 5. 0)

 

Содержание:

 

Введение в технологию GPGPU

GPGPU (англ. General-purpose computing for graphics processing units, неспециализированные вычисления на графических процессорах) — техника использования графического процессора видеокарты, который обычно имеет дело с вычислениями только для компьютерной графики, чтобы выполнять расчёты в приложениях для общих вычислений, которые обычно проводит центральный процессор. Это стало возможным благодаря добавлению программируемых шейдерных блоков и более высокой арифметической точности растровых конвейеров, что позволяет разработчикам ПО использовать потоковые процессоры для не-графических данных.

  

Реализации:

1) CUDA — технология GPGPU, позволяющая программистам реализовывать на языке программирования Си (а также C++/C#) алгоритмы, выполнимые на графических процессорах ускорителей GeForce восьмого поколения и новее. Технология CUDA разработана компанией Nvidia.

3) OpenCL — является языком программирования задач, связанных с параллельными вычислениями на различных графических и центральных процессорах.

5) OpenACC  — стандарт, описывающий набор директив для написания гетерогенных программ, задействующих как центральный, так и графический процессор. Используется для распараллеливания программ на языках C, C++ и Fortran. Стандарт был создан группой, в которую вошли CAPS, Cray, NVIDIA и PGI.

 

CUDA SDK позволяет программистам реализовывать на специальном упрощённом диалекте языка программирования Си алгоритмы, выполнимые на графических процессорах Nvidia, и включать специальные функции в текст программы на Си. Архитектура CUDA даёт разработчику возможность по своему усмотрению организовывать доступ к набору инструкций графического ускорителя и управлять его памятью.

OpenCL (от англ. Open Computing Language — открытый язык вычислений) — фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических и центральных процессорах, а также FPGA. В OpenCL входят язык программирования, который основан на стандарте языка программирования Си C99, и интерфейс программирования приложений. OpenCL обеспечивает параллелизм на уровне инструкций и на уровне данных и является осуществлением техники GPGPU. OpenCL является полностью открытым стандартом, его использование не облагается лицензионными отчислениями.

 

OpenACC (от англ. Open Accelerators) — программный стандарт для параллельного программирования, разрабатываемый совместно компаниями Cray, CAPS, Nvidia и PGI. Стандарт описывает набор директив компилятора, предназначенных для упрощения создания гетерогенных параллельных программ, задействующих как центральный, так и графический процессор[1][2].

 

Как и более ранний стандарт OpenMP, OpenACC используется для аннотирования фрагментов программ на языках C, C++ и Fortran. С помощью набора директив компилятора программист отмечает участки кода, которые следует выполнять параллельно или на графическом процессоре, обозначает какие из переменных являются общими, а какие индивидуальными для потока и т.

п[3]. По синтаксису схож с OpenMP[4]. Стандарт OpenACC позволяет программисту абстрагироваться от особенностей инициализации графического процессора, вопросов передачи данных на сопроцессор и обратно и т. д.

 

Пример 1 — сборка CUDA-программы при помощи компилятора nvcc и запуск на Nvidia Tesla k40 (кластер Huawei)

$ CUDA_PATH=/usr/local/cuda

$ CUDA_TEST_PATH=$CUDA_PATH/samples/1_Utilities/bandwidthTest/

$ export PATH=/usr/local/cuda/bin/:$PATH

$ CUDA_INC_PATH=/usr/local/cuda/samples/common/inc

$

$ nvcc $CUDA_TEST_PATH/bandwidthTest.cu -I$CUDA_INC_PATH

$

$ ./a.out

[CUDA Bandwidth Test] — Starting…

Running on…

 

 Device 0: Tesla K40m

 Quick Mode

 

 Host to Device Bandwidth, 1 Device(s)

 PINNED Memory Transfers

   Transfer Size (Bytes)        Bandwidth(MB/s)

   33554432                     10152. 7

 

 Device to Host Bandwidth, 1 Device(s)

 PINNED Memory Transfers

   Transfer Size (Bytes)        Bandwidth(MB/s)

   33554432                     10269.2

 

 Device to Device Bandwidth, 1 Device(s)

 PINNED Memory Transfers

   Transfer Size (Bytes)        Bandwidth(MB/s)

   33554432                     183668.1

 

Result = PASS

 

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

$

QGIS 🚀 — Поддержка OpenCL не обнаружена в смешанной системе CPU / GPU

Я немного обижен, что не подумал об этом раньше.

Не надо, ты просто победил меня вовремя, вот что я собирался предложить попробовать в следующий раз.

Длинная история:

  1. Чтобы поставлять QGIS с поддержкой OpenCL, нам нужно связать библиотеку OpenCL.dll, эта библиотека является просто загрузчиком для предоставленных поставщиком реализаций OpenCL, и она должна быть стандартной и независимой от поставщика.
  2. По этой причине мы поставляем нашу собственную версию OpenCL.dll, эта библиотека должна быть установлена ​​в целевой системе, только если в системном каталоге нет OpenCL.dll (@ jef-n поправьте меня, если я ошибаюсь) .
  3. По какой-то непонятной причине на некоторых машинах наш OpenCL.dll не может распознать и загрузить реализации OpenCL поставщика, и это вызывает проблему «В вашей системе не обнаружены устройства, совместимые с OpenCL». В этих случаях поможет удаление QGIS OpenCL.dll, поскольку вместо него будет использоваться OpenCL.dll, предоставленный поставщиком.

Итак, во время Bucharest HF (и до этого) я попытался посмотреть, как другие проекты ОС (libreoffice и blender) справляются с этой проблемой, их решение заключается в использовании оболочки, загружающей OpenCL.dll во время выполнения [1], но, к сожалению, это оболочка не только устарела, но и использует C API, в то время как мы используем C++ API.

Мне понравился этот подход, мы могли бы создать QGIS и отправить его без связывания и предоставления OpenCL. dll, делегируя целевой машине загрузку (во время выполнения) реализации OpenCL.dll, обычно предоставляемую поставщиками.

Я и @ jef-n потратили много времени, пытаясь использовать тот же подход для QGIS (сначала переключившись на C API, а затем адаптировав C ++ API для использования оболочки clew ) но он оказался очень нестабильным (разбился), и нам пришлось отказаться от этого подхода (также из-за нехватки времени).

Я, честно говоря, не знаю, как действовать сейчас, мне сложно найти решение, в основном потому, что мне никогда не удавалось воспроизвести эту проблему на моих локальных машинах разработки, а также потому, что я не обычный пользователь Windows или опытный разработчик Windows (не говоря уже о том, что мое время — очень ограниченный ресурс).

[1] https://github.com/martijnberger/clew

vulkan — В OpenCL, Вулкан Sycl

как в OpenCL относится к вулкан ?

Они оба трубопровода сепары работать с хоста на GPU и GPU на хост с использованием очереди, чтобы сократить расходы на связь, используя несколько потоков. Совместимая с DirectX-и OpenGL не может?

  • Как первый релиз 28 августа 2009 года. Более широкой аппаратной поддержки. Указатели разрешено, но только, чтобы использоваться в устройстве. Вы можете использовать локальную память разделяется между потоками. Гораздо проще для начала всем привет. Имеет API накладные для команды, если они не являются устройства очередь. Вы можете выбрать неявная синхронизация нескольких устройств или явного управления. Ошибки в основном закреплены за 1,2, но я не’т знаем о версии 2.0.

  • Вулкан: первый выпуск 16 февраля 2016(но прогресс с 2014 года). Узкий аппаратной поддержки. Может Спир-V ручки указатели? Может быть, не? Нет локальной памяти? Трудно начать Здравствуй, мир. Меньше API служебные. Вы можете выбрать неявного управления несколькими устройствами? Еще багги для Dota-2 игры и некоторые другие игры. Используя оба графика и расчета трубопроводов в то же время может скрывать еще больше задержки.

если OpenCL был вулкан, то она была скрыта от общественности в течение 7-9 лет. Если они могли бы добавить его, почему же’t они делают это для OpenGL?(возможно из-за давления на PhysX/CUDA технологии?)

Vulkan это рекламируется как вычислительный и графический API, однако я нашли очень мало ресурсов для вычислительных часть — почему ?

Для этого нужно больше времени, как в OpenCL.

Вы можете проверить информацию о вычислительные шейдеры здесь:

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#fundamentals-floatingpoint

Вот пример системы частиц, управляемых вычислительных шейдеров:

https://github.com/SaschaWillems/Vulkan/tree/master/computeparticles

ниже этого, есть слишком raytracers и обработки изображений примеры.

Вулкан имеет преимущества производительности по сравнению с OpenGL. Это же верно и для Вулкан против в OpenCL?

  • Вулкан не’т необходимость синхронизации для другой API. Его команды буферы синхронизации между commandqueues.
  • В OpenCL необходимо синхронизировать с OpenGL или DirectX (или вулкан?) прежде чем использовать общий буфер(КЛ-гл или ДХ-ХЛ взаимодействия буферов). В этом есть накладные расходы и нужно скрыть его, используя буфер обмена и конвейеризации. Если нет общего буфера существует, он может работать по совместительству на современном оборудовании с OpenGL или DirectX.

OpenCL-это печально известную, чтобы быть медленнее, чем на CUDA

Он был, но сейчас его зрелого и вызовы CUDA, тем более с гораздо более широкой аппаратной поддержки от всех игровых графических процессоров для ПЛИС при использовании версии 2.1, например, в будущем Intel может поставить ПЛИС в сердечник i3 и включить его для (софт-х86 ядра ИС) количество ядер процессора модель сокращает разрыв между производительности GPU и CPU для обновления своего процессора PhysX в играх или просто пусть для OpenCL физики осуществления сформировать его и использовать не менее %90 плашк-уголок вместо софт-ядро’s на %10-%20 эффективно используется площадь.

С таким же ценой, графические процессоры AMD можно вычислить быстрее на OpenCL и с таким же вычислительные мощности процессора Intel igpus потребляют меньше энергии. (редактировать: за исключением, когда алгоритмы чувствительны к производительности кэша, где Nvidia имеет превосходство)

Кроме того, я написал SGEMM ядра OpenCL и работать на HD7870 в 1,1 терафлопс и проверили интернете видела SGEMM henchmark на GTX680 для одинаковой производительности с помощью популярных название на CUDA!(соотношение цен на gtx680/hd7870 было 2). (правка: для NVIDIA’ы СС3.0 Не’т использовать кэш L1 при чтении глобальных массивов и мое ядро было чисто местной/общей памяти + некоторые регистры и»плиточный»)смотрите

не SYCL использует OpenCL для внутренне или использовать вулкан ? Или это использование ни и вместо этого полагаются на низком уровне, конкретного поставщика API для быть реализовано ?

Здесь

https://www.khronos.org/assets/uploads/developers/library/2015-iwocl/Khronos-SYCL-May15. pdf

говорит

предлагает методы для решения задач, которые не имеют в OpenCL(пока!)

запасной вариант осуществления процессора отлаживаемого!

поэтому он может вернуться к чисто резьбовое исполнение(по аналогии с Java’ы aparapi).

доступ к объектам OpenCL от объектов SYCL можно построить объекты SYCL от объекта в OpenCL

взаимодействие с OpenGL остается в SYCL

  • использует те же структуры/типы

он использует технологии OpenCL(может не напрямую, но с модернизированным связи водителя?), она развивается параллельно в OpenCL, но может переход на резьбу.

от самых маленьких в OpenCL 1.2 встроенное устройство для самых продвинутых в OpenCL 2.2 ускорители

OpenCL. Использование графического процессора видеокарты для рендеринга. — Дневник злостного критика-рецидивиста

Эх, как-то невнимательно я просматривал настройки Adobe Premiere Pro. Когда в настройках проекта я пытался выбрать в качестве средства рендеринга аппаратное GPU-ускорение, видео пропадало, а в окне вывода оно хоть и было, но при начале рендеринга тут-же вываливалась ошибка. При этом я лишь бегло просмотрел этот выбор, и слово в скобках названия пункта прочитал как OpenGL (а не OpenCL), потому что только оно было мне знакомо. Ну, думаю, да, моя видеокарта поддерживает OpenGL на аппаратном уровне, я это читал в её спецификации, так почему ж аппаратное ускорение не работает? Ну, и рендерил на основном процессоре, который разогнал для этой цели с 3,4 до 4,7 ГГц.

В свете последних событий с поломкой моего DVD-рекордера, и переходом на оцифровку TV-тюнером, я внимательнее отнёсся к минимизации потерь видеоинформации во всей цепочке оцифровки. Я настроил тюнер на максимальную резкость и определил, что максимальное сохранение деталей без замыливания происходит именно при работе кодека MPEG2 с максимально возможным для тюнера битрейтом 15000 кбит/с. Кроме того, напомню, что видеомагнитофон также был настроен на воспроизведение видео без искажений (специальный режим в JVC для перезаписи).

Единственная галочка, улучшающая видеоизображение, осталась стоять только в драйвере TV-тюнера, осуществляющего видеозахват. Она практически не мылила картинку, но в то же время превращала некую зелёную кашу лесного массива в нормальные деревья. На геометрически ровных объектах эта галочка вела себя по разному — что-то улучшала, что-то чуть искажала. Я подумал, что драйвер как никто другой знает особенности работы своего TV-тюнера, и поэтому, возможно, он лучше всех справится с первичным улучшением видеоизображения. Возможно, я не прав, но стоящую по умолчанию в драйвере галочку я решил не трогать.

Поскольку все остальные «улучшайзеры» были отключены, итоговая картинка получилась хотя и резкой, как я хотел, но несколько зашумленной, и я стал искать в Adobe Premiere Pro инструмент, способный качественно уменьшить шумы, сохраняя тем не менее резкость картинки. Штатный фильтр меня не очень устроил, и я нашёл в Интернете рекомендацию использовать плагин Denoicer III. В описании я прочитал, что он использует в своей работе аппаратное ускорение OpenCL. Вот тут то я заметил кое-что и насторожился. Что за CL? Знаю только GL!

После ознакомительного чтения об OpenCL оказалось, что это альтернативная библиотека параллельных расчётов. Если OpenGL (Open Graphics Library) была чисто графической библиотекой, то OpenCL (Open Computing Language) — это более универсальный фреймворк. Как гласит Википедия, «Цель OpenCL состоит в том, чтобы дополнить открытые отраслевые стандарты для трёхмерной компьютерной графики и звука OpenGL и OpenAL возможностями GPU для высокопроизводительных вычислений». Хм, но вроде OpenGL вообще внутри GPU сидит… ну ладно. Короче говоря, OpenCL может работать как на графическом процессоре, так и на центральном (на графическом, конечно, быстрее).

Тем не менее, я не стал ставить OpenCL, а сразу поставил Denoicer III и он сразу заработал. Видимо, в системе стоял какой-то вариант OpenCL для центрального процессора, либо использовались какие-то внутренние функции фильтра. Я снизил шумы на видео и включил рендеринг. И он заработал оооочень медленно. При этом, что странно, ядра процессора были загружены наполовину, а не целиком, как раньше.

Я подумал, что наверное, надо всё-таки поставить в систему OpenCL. И вот, лазия по сайтам, я выяснил, что OpenCL можно скачать как для главного процессора, так и для видеокарты. Причём OpenCL вроде как уже имеется в составе драйверов моей видеокарты! Я решил обновить драйверы видеокарты и попробовать снова включить аппаратное ускорение, что и было сделано. И вот тут-то я и увидел, что в качестве средства рендеринга предлагается вовсе не OpenGL, как я думал раньше, а именно OpenCL! Дрожащей рукой я выбрал аппаратное ускорение… И ВСЁ ЗАРАБОТАЛО!

Оказывается, у меня банально стоял устаревший драйвер видеокарты, который, возможно, был не совсем совместим с новой версией Adobe Premiere Pro СС v12.0.

Я попробовал отрендерить видео, причём на максимальных настройках, и оно отрендерилось быстрее раза в три, чем оно рендерилось на обычных настройках и без всяких фильтров на основном процессоре. Что называется, век живи — век учись… Что интересно, все ядра и потоки процессора при этом были загружены равномерно, но только на 50%.

Вообще, конечно, драйверы надо было обновить первым делом, перед всей этой оцифровкой. Но я почему-то считал, что, во-первых, они у меня достаточно свежие, а во-вторых, смутил меня этот OpenCL, прочтённый, как OpenGL, который жёстко прошит в видеокарте и, по идее, не должен зависеть от смены драйверов.

P.S.:
Вот интересно… похоже, видеокарта не справляется с рендерингом мелких быстродвижущихся сцен. Примерно раз в секунду на таких сценах мелкие дальние изображения превращаются на полсекунды в мерцающие квадратики. Выглядит это как периодическое и неравномерное дрожание картинки, а при нажатии на паузу как пикселизация квадратами. Причём это происходит только когда рендеринг идёт достаточно долго. Если я те же сцены рендерю выборочно, то такого почему-то не происходит.

В конце получасового видео у меня действие перемещается внутрь помещения с однородными стенами и крупными предметами, и глюк прекращается. Неужели придётся таки рендерить на основном процессоре?

Основному процессору доступна память 16 гигов, а графическому на карте ATI HD 7850 всего 2 гига. Может, в этом дело?

Сейчас поставлю ряд экспериментов. Рендерю сейчас центральным процессором при тех же настройках и фильтрах. Сравню. Ещё возможно, я неправильно применил шумодав. Я его применил к уже отмасштабированному эпизоду. Думаю, надо было открыть вложенный эпизод, имеющий начальное, меньшее разрешение, и применить шумодав к нему. Попробую тоже. Но уже завтра, когда отрендерится текущее видео.
 

Microsoft выпустила пакет совместимости OpenCL и OpenGL для Windows 10



Оставьте ответ

Microsoft выпустила новый пакет расширения для Windows 10, который добавляет новый уровень совместимости с DirectX. Он позволяет приложениям OpenCL и OpenGL работать на ПК с Windows 10, на котором по умолчанию не установлены драйверы оборудования OpenCL и OpenGL.

Если установлен драйвер DirectX 12, поддерживаемые приложения будут работать с аппаратным ускорением для повышения производительности. Этот пакет поддерживает приложения, использующие OpenCL версии 1.2 и ранее и OpenGL версии 3.3 и ранее.


как изменить поля в документах Google

Microsoft поставляет две версии этого пакета. Публичный доступен в Магазине, а другой доступен для участников программы предварительной оценки Windows. Последний поддерживает больше приложений из коробки.

как добавить устройство в Google Play

Пакет предоставляет новый бэкэнд D3D12 для проекта Mesa с открытым исходным кодом для поддержки OpenCL и OpenGL.Создав слои сопоставления OpenCL и OpenGL, Microsoft сможет обеспечить аппаратное ускорение для множества приложений с помощью только драйвера DX12, никаких других драйверов не требуется.

Только определенные приложения могут использовать этот пакет совместимости. Участники программы предварительной оценки Windows могут получить версию этого пакета для участников программы предварительной оценки, которая позволяет использовать его большему количеству приложений.

Вы можете получить его здесь:

OpenCL ™ и OpenGL® Compatibility Pack

Для этого пакета требуется Windows 10 версии 19041.488 или более поздней, Xbox One, DirectX 12 и доступен для платформ ARM, ARM64, x64 и x86.

как показать пинг в лол

OpenCL, Vulkan, Sycl

как OpenCL относится к вулкану ?

они оба трубопровода сепары работы с хоста на GPU и GPU на хост с использованием очереди, чтобы сократить расходы на связь с помощью нескольких потоков. Directx-opengl не может?

  • OpenCL: первоначальный релиз 28 августа 2009 года. Более широкая аппаратная поддержка. Указатели разрешены, но только для использования в устройстве. Можно использовать локальную память, совместно используемую потоками. Гораздо проще начать hello world. Имеет api накладные расходы для команд, если они не находятся в очереди на стороне устройства. Можно выбрать неявную синхронизацию нескольких устройств или явное управление. Ошибки в основном закреплены за 1.2, но я не знаю о версии 2.0.

  • Вулкан: первоначальный релиз 16 февраля 2016 года (но прогресс с 2014 года). Более узкая аппаратная поддержка. Может ли SPIR-V обрабатывать указатели? А может, и нет? Нет опции локальной памяти? Трудно начать Привет мир. Меньше API служебные. Можно ли выбрать неявное управление несколькими устройствами? Все еще багги для игры Dota-2 и некоторых других игр. Использование графики и вычислительного конвейера одновременно может скрыть еще большую задержку.

если в opencl был вулкан, то он был скрыт от общественности в течение 7-9 лет. Если они могли добавить его, почему они не сделали этого для opengl?(может быть, из-за давления physx/cuda?)

Vulkan рекламируется как вычислительный и графический api, однако я найдено очень мало ресурсов для вычислительной части-почему это ?

ему нужно больше времени, как и opencl.

вы можете проверить информацию о вычислительных шейдерах здесь:

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#fundamentals-floatingpoint

вот пример системы частиц, управляемой вычислительными шейдерами:

https://github.com/SaschaWillems/Vulkan/tree/master/computeparticles

ниже этого есть raytracers и примеры обработки изображений тоже.

Вулкан имеет преимущества производительности над OpenGL. То же самое верно для Вулкан против OpenCl?

  • Vulkan не нужно синхронизировать для другого API. Его о синхронизации буферов команд между commandqueues.
  • OpenCL необходимо синхронизировать с opengl или directx (или vulkan?) перед использованием общего буфера (буферы взаимодействия cl-gl или dx-cl). Это накладные расходы, и вы должны скрывать это используя буфер обмена и конвейеризации. Если общий буфер не существует, он может работать одновременно на современном оборудовании с opengl или directx.

OpenCL печально известен тем, что медленнее, чем CUDA

Это было, но теперь его зрелые и проблемы cuda, особенно с гораздо более широкой аппаратной поддержкой от всех игровых графических процессоров до fpgas с использованием версии 2.1, например, в будущем Intel может поместить fpga в Core i3 и включить его для (soft-x86 core ip) многоядерный процессор модель, закрывающая разрыв между производительностью gpu и процессором, чтобы обновить игровой опыт cpu-physx или просто позволить реализации физики opencl сформировать его и использовать по крайней мере %90 die-area вместо эффективно используемой области %10-%20 мягкого ядра.

С такой же ценой, графические процессоры AMD могут вычислять быстрее на opencl и с такой же вычислительной мощностью Intel igpus рисовать меньше мощности.

кроме того, я написал ядро SGEMM opencl и запустил на HD7870 в 1.1 Tflops и проверил интернет, а затем увидел SGEMM henchmark на GTX680 для той же производительности, используя популярное название на CUDA!(соотношение цены gtx680/hd7870 было 2).

использует ли SYCL OpenCL внутри или может ли он использовать vulkan ? Или нет? используйте ни то, ни другое и вместо этого полагается на низкий уровень, API поставщика быть реализованным ?

здесь

https://www.khronos.org/assets/uploads/developers/library/2015-iwocl/Khronos-SYCL-May15.pdf

говорит

предоставляет методы для работы с целями, которые не имеют В OpenCL(пока!)

резервная реализация CPU отлаживается!

таким образом, он может вернуться к чистой потоковой версии(аналогичной aparapi java).

можно получить доступ к объектам OpenCL из объектов SYCL Может создавать объекты SYCL из объекта OpenCL

взаимодействие с OpenGL остается в SYCL — Использует то же самое структуры/типа

он использует opencl(возможно, не напрямую, но с обновленной связью драйверов?), он развивается параллельно opencl, но может возвращаться к потокам.

от самого маленького встроенного устройства OpenCL 1.2 до самого продвинутого В OpenCL 2.2 ускорители

Обновлено: 05.02.2022 — 20:03

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *