From Fedora Project Wiki
(Detailed Description)
 
(46 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 -->
  
= Change Proposal Name OpenCL =
+
= 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 initial OpenCL support to Fedora. This will include enabling Mesa's OpenCL state-tracker and the introduction of several OpenCL related packages.
+
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: 2013-07-17
+
* 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: <will be assigned by the Wrangler>
+
* 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:
* [https://bugzilla.redhat.com/show_bug.cgi?id=887628 Enable OpenCL state-tracker] in Mesa
+
 
* Update existing OpenCL related packages if needed
+
* Add OpenCL implementations
* [https://bugzilla.redhat.com/show_bug.cgi?id=984312 Package libclc] - needed by Mesa's state-tracker
+
** [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
+
** [https://bugzilla.redhat.com/show_bug.cgi?id=996232 Package pocl] - CPU-only OpenCL implementation '''DONE'''
* Package gocl - glib based OpenCL library
+
** [https://bugzilla.redhat.com/show_bug.cgi?id=1052393 Package beignet] - Intel Ivy Bridge 1 only '''DONE'''
* Package radeontop - To monitor a Radeon GPU (which supports OpenCL)
+
 
* [https://bugzilla.redhat.com/show_bug.cgi?id=996953 Fix OpenCL path owenrship] - In /etc/OpenCL
+
* Package implementation dependencies:
* Package piglit - This will be a testuite for the OpenCL implementations
+
** [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)
 +
 
 +
* 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?-->
Developres 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.
+
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 85: 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 enhancements, so nothing should break.
+
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 104: 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)
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
=== GPU-Only ===
N/A (not a System Wide Change)
+
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 140: Line 182:
 
-->
 
-->
  
[[Category:ChangePageIncomplete]]
+
[[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:

  • 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

  1. Install clinfo
  2. Run clinfo
  3. Information about supported OpenCL devices should appear

CPU-Only

Testing can be done on any CPU suported by pocl (x86_64, for now)

  1. Install ocltoys
  2. Run ./smallptgpu -o CPU
  3. An image should appear slowly (or very slowly on slow machines)

GPU-Only

Testing can be done on AMD/ATI GPUs (r600)

  1. Install ocltoys and mesa-opencl (TBD)
  2. Run ./smallptgpu -o GPU
  3. 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)

Release Notes