В списке рассылки разработчиков LLVM представлен [2] проект Portable OpenCL [3], в рамках которого ведётся разработка полностью открытой и независимой реализации стандарта OpenCL [4], который определяет API и расширения языка Си для параллельного программирования с использованием как многоядерных CPU, так и GPU видеокарт.
Задача проекта - создать единую реализацию OpenCL, независимую от производителей графических ускорителей, которая позволила бы разработчикам не задумываться об особенностях той или иной реализации стандарта и применении специфических техник оптимизации. Для этого Portable OpenCL реализован по модульному принципу, позволяющему использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров. Пока проект находится в стадии активной разработки, поэтому доступен только один бэкенд, поддерживающий использование центрального процессора на базе архитектуры x86.
Также стало известно [5] о появлении проекта по работе над открытой OpenCL-библиотекой, который имеет сходные цели, но гораздо меньшие масштабы. В рамках проекта libclc [6] идет работа только над интерфейсом языка Си, описанном в стандарте, без реализации уровней OpenCL Platform и OpenCL Runtime. Для связи библиотеки с конкретной реализацией OpenCL от производителя используется простое переопределение функций. Цель проекта: позволить разработчикам использовать стандартные открытые средства разработки приложений вместо инструментов, предоставляемых производителями графических ускорителей.
Для генерации OpenCL-кода обе реализации используют инструментарий LLVM [7]. Дополнительно можно отметить ещё один открытый проект FreeOCL [8], в рамках которого создаётся реализация спецификации OpenCL 1.1, нацеленная на использование CPU (x86, x86_64, ARM, PPC64). FreeOCL написан на языке С++ с задействованием некоторых нововведений стандарта C++11. Вместо специального или встроенного компилятора, FreeOCL полагается на использовании внешних компиляторов, такие как GCC 4.4, ICC 11.0, LLVM 2.8 и armcc.
Ссылки:
[1] http://htfl.ru/cat-news-novosti
[2] /out.php?link=http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-October/044266.html
[3] /out.php?link=https://launchpad.net/pocl
[4] /out.php?link=http://www.khronos.org/opencl/
[5] /out.php?link=http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-October/044380.html
[6] /out.php?link=http://www.pcc.me.uk/%7Epeter/libclc/
[7] /out.php?link=http://www.llvm.org
[8] /out.php?link=http://code.google.com/p/freeocl/