В чем разница между POCL(Portable Computing Language) и OpenCL?

В чем разница между POCL(Portable Computing Language) и OpenCL, и каковы преимущества POCL? http://pocl.sourceforge.net/

Есть ли в POCL C-подобный язык, который отличается от OpenCL, другой компилятор (Clang> = 3.2), другой бэкэнд (llvm), лучшая переносимость или что-то еще?

И когда нам нужно использовать (жестко связывающий) OCL, а когда нужно использовать ICD? http://streamcomputing.eu/blog/2013-07-08/installing-and-using-pocl/

2 ответа

Решение

Pocl похож на любую другую платформу opencl. Он предоставляет процессор Opencl на платформе x86/arm и многих других системах. Он почти соответствует стандартам opencl 1.2, за исключением того, что у него нет таких вещей, как совместное использование cl_gl и т. Д. Он использует clang / llvm для использования всех ядер процессора и векторных модулей в процессоре.

opencl - это спецификация, и pocl реализует эту спецификацию, чтобы предоставить вам платформу с процессорами

Приходя в ICD, вы связываетесь с ICD, когда у вас установлено более одной платформы opencl. Скомпилируйте этот код icd из khronos http://www.khronos.org/registry/cl/specs/opencl-icd-1.2.11.0.tgz и вы получите загрузчик icd, который может загрузить любую платформу opencl. Жесткая ссылка на платформу ".so" возможна, скажем, libpocl.so, но другие установленные платформы не будут видны при вызове clGetPlatformIDs. Так что МКБ лучше

OpenCL - это спецификация, поддерживаемая Khronos. Существует множество реализаций от таких производителей, как AMD, NVIDIA, Intel и Apple. Чтобы называть себя реализацией OpenCL, поставщик должен пройти тесты на соответствие, быть участником Khronos и, возможно, некоторых других вещей.

POCL (Portable Computing Language, ранее Portable OpenCL) - это реализация с открытым исходным кодом, очень похожая на OpenCL, но она находится в стадии разработки и не прошла тесты на соответствие, поэтому на самом деле пока не является реализацией OpenCL. Я понимаю, что они стремятся стать единым целым в будущем, и желаю им удачи.

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

Я предполагаю, что POCL использует тот же язык на основе C99 для ядер, если они стремятся быть совместимыми с OpenCL.

Больше на POCL в: http://pocl.sourceforge.net/

Другие вопросы по тегам