No edit summary |
|||
(42 intermediate revisions by 7 users not shown) | |||
Line 20: | Line 20: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
= | = OpenCL = | ||
== Summary == | == Summary == | ||
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. --> | <!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. --> | ||
This change will bring | This change will bring basic OpenCL support to Fedora to support the development of OpenCL enabled software and the development of OpenCL implementations itself. The change includes enabling Mesa's OpenCL state-tracker (in 10.0 with ICD support), packaging pocl - an CPU only OpenCL implementation - and the introduction of several other OpenCL related packages. | ||
== Owner == | == Owner == | ||
Line 41: | Line 41: | ||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/21 | Fedora 21 ]] | * Targeted release: [[Releases/21 | Fedora 21 ]] | ||
* Last updated: | * Last updated: 2014-25-01 | ||
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | <!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | ||
Bugzilla states meaning as usual: | Bugzilla states meaning as usual: | ||
Line 50: | Line 50: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1076455 #1076455] | ||
== Detailed Description == | == Detailed Description == | ||
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | <!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | ||
The change is intended to give developers a starting point to be able to use OpenCL and to improve existing OpenCL implementations. | |||
The change will include the following sub changes: | The change will include the following sub changes: | ||
* Add OpenCL implementations | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=887628 Enable OpenCL state-tracker] in Mesa '''DONE''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=996232 Package pocl] - CPU-only OpenCL implementation '''DONE''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=1052393 Package beignet] - Intel Ivy Bridge 1 only '''DONE''' | |||
* Package implementation dependencies: | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=984312 Package libclc] - needed by Mesa's state-tracker '''DONE''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=996953 Fix OpenCL path owenrship] - Who owns /etc/OpenCL '''DONE''' | |||
*** [https://bugzilla.redhat.com/show_bug.cgi?id=1001958 Review Request: opencl-filesystem - OpenCL filesystem layout] - A package owning shared paths '''DONE''' | |||
* Package related packages | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=998636 Review Request: gocl - GLib/GObject based library for OpenCL ] - glib based OpenCL library '''DONE''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=1014040 Review Request: clinfo - Enumerate OpenCL platforms and devices ] - A tool to query informations about the available OpenCL platforms '''DONE''' | |||
** [https://bugzilla.redhat.com/1024688 Review Request: erlang-cl - OpenCL binding for Erlang] '''DONE''' | |||
** [http://viennacl.sourceforge.net/ Package ViennaCL] - A math library which can utilize CPU (OpenMP) and GPU (OpenCL/CUDA) '''WIP''' | |||
** [https://pypi.python.org/pypi/pyopencl Package pyopencl] - A python library for accessing OpenCL '''BLOCKED BY [https://bugzilla.redhat.com/show_bug.cgi?id=1002898 rhbz #1002898]''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=1057567 Review Request: ocltoys - Collection of OpenCL examples focused on Computer Graphics] - A couple of OpenCL examples for testing '''WIP''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=1089962 Review Request: radeontop - View GPU utilization off AMD/ATI Radeon devices] - A tool to view the GPU utilization on ATI cards '''WIP''' | |||
** [https://bugzilla.redhat.com/show_bug.cgi?id=1091203 Review Request: clpeak - Find peak OpenCL capacities like bandwidth & compute] - Tool to determin peak capabilities of OpenCL devices '''DONE''' | |||
* | * Update existing packages if needed | ||
* | ** gegl (to be investigated) | ||
* | ** ocl-icd (done) | ||
* Potential projects to be packaged: | |||
** Package khronos icd - probably not | |||
** [https://admin.fedoraproject.org/pkgdb/package/piglit/ Package piglit] - This will be a test suite for the OpenCL implementations, has some non-fedora deps ('''PACKAGED''') | |||
** Package [https://github.com/fabiand/gst-plugins-cl gst-plugins-cl] - Gstreamer plugin for OpenCL, needs an update to gst-1.0 (NEW) | |||
* Add a new group to comps or a opencl-dev package? | * Other stuff: | ||
** Add a new group to comps or a opencl-dev package? | |||
** Add virtual provides to the OpenCL implementations - So a app requiring OpenCl just needs to require the virtual package (so any provider) | |||
** Version opencl-headers | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
<!-- What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?--> | <!-- What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?--> | ||
Developers will have an easier start to develop OpenCL based software on Fedora. Furthermore this shall be seen as a step o bring OpenCL based software to Linux in general. | |||
== Scope == | == Scope == | ||
Line 93: | Line 113: | ||
== Upgrade/compatibility impact == | == Upgrade/compatibility impact == | ||
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? --> | <!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? --> | ||
This is a pure | This is a pure enhancement, so nothing should break. | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
N/A (not a System Wide Change) | N/A (not a System Wide Change) | ||
== How To Test == | == How To Test == | ||
Line 112: | Line 132: | ||
3. What are the expected results of those actions? | 3. What are the expected results of those actions? | ||
--> | --> | ||
=== Basic === | |||
# Install <code>clinfo</code> | |||
# Run <code>clinfo</code> | |||
# Information about supported OpenCL devices should appear | |||
=== CPU-Only === | |||
Testing can be done on any CPU suported by pocl (x86_64, for now) | |||
# Install <code>ocltoys</code> | |||
# Run <code>./smallptgpu -o CPU</code> | |||
# An image should appear slowly (or very slowly on slow machines) | |||
< | === GPU-Only === | ||
Testing can be done on AMD/ATI GPUs (r600) | |||
# Install <code>ocltoys</code> and <code>mesa-opencl</code> (TBD) | |||
# Run <code>./smallptgpu -o GPU</code> | |||
# An image should appear | |||
== User Experience == | == User Experience == | ||
Line 148: | Line 182: | ||
--> | --> | ||
[[Category: | [[Category:ChangeAcceptedF21]] | ||
<!-- When your change proposal page is completed and ready for review and announcement --> | <!-- When your change proposal page is completed and ready for review and announcement --> | ||
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> | <!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler --> |
Latest revision as of 07:38, 7 September 2015
OpenCL
Summary
This change will bring basic OpenCL support to Fedora to support the development of OpenCL enabled software and the development of OpenCL implementations itself. The change includes enabling Mesa's OpenCL state-tracker (in 10.0 with ICD support), packaging pocl - an CPU only OpenCL implementation - and the introduction of several other OpenCL related packages.
Owner
- Name: Fabian Deutsch
- Email: fabiand@fedoraproject.org
- Release notes owner:
Current status
Detailed Description
The change is intended to give developers a starting point to be able to use OpenCL and to improve existing OpenCL implementations.
The change will include the following sub changes:
- Add OpenCL implementations
- Enable OpenCL state-tracker in Mesa DONE
- Package pocl - CPU-only OpenCL implementation DONE
- Package beignet - Intel Ivy Bridge 1 only DONE
- Package implementation dependencies:
- Package libclc - needed by Mesa's state-tracker DONE
- Fix OpenCL path owenrship - Who owns /etc/OpenCL DONE
- Review Request: opencl-filesystem - OpenCL filesystem layout - A package owning shared paths DONE
- Package related packages
- Review Request: gocl - GLib/GObject based library for OpenCL - glib based OpenCL library DONE
- Review Request: clinfo - Enumerate OpenCL platforms and devices - A tool to query informations about the available OpenCL platforms DONE
- Review Request: erlang-cl - OpenCL binding for Erlang DONE
- Package ViennaCL - A math library which can utilize CPU (OpenMP) and GPU (OpenCL/CUDA) WIP
- Package pyopencl - A python library for accessing OpenCL BLOCKED BY rhbz #1002898
- Review Request: ocltoys - Collection of OpenCL examples focused on Computer Graphics - A couple of OpenCL examples for testing WIP
- Review Request: radeontop - View GPU utilization off AMD/ATI Radeon devices - A tool to view the GPU utilization on ATI cards WIP
- Review Request: clpeak - Find peak OpenCL capacities like bandwidth & compute - Tool to determin peak capabilities of OpenCL devices DONE
- Update existing packages if needed
- gegl (to be investigated)
- ocl-icd (done)
- Potential projects to be packaged:
- Package khronos icd - probably not
- Package piglit - This will be a test suite for the OpenCL implementations, has some non-fedora deps (PACKAGED)
- Package gst-plugins-cl - Gstreamer plugin for OpenCL, needs an update to gst-1.0 (NEW)
- Other stuff:
- Add a new group to comps or a opencl-dev package?
- Add virtual provides to the OpenCL implementations - So a app requiring OpenCl just needs to require the virtual package (so any provider)
- Version opencl-headers
Benefit to Fedora
Developers will have an easier start to develop OpenCL based software on Fedora. Furthermore this shall be seen as a step o bring OpenCL based software to Linux in general.
Scope
- Proposal owners: Mainly packaging
- Other developers: N/A (not a System Wide Change)
- Release engineering: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
Upgrade/compatibility impact
This is a pure enhancement, so nothing should break.
N/A (not a System Wide Change)
How To Test
Basic
- Install
clinfo
- Run
clinfo
- Information about supported OpenCL devices should appear
CPU-Only
Testing can be done on any CPU suported by pocl (x86_64, for now)
- Install
ocltoys
- Run
./smallptgpu -o CPU
- An image should appear slowly (or very slowly on slow machines)
GPU-Only
Testing can be done on AMD/ATI GPUs (r600)
- Install
ocltoys
andmesa-opencl
(TBD) - Run
./smallptgpu -o GPU
- An image should appear
User Experience
N/A (not a System Wide Change)
Dependencies
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)