From Fedora Project Wiki
 
(31 intermediate revisions by 6 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 basic OpenCL support to Fedora to support the development of OpenCL enabled software and the development of OpenCL implementations itself.. This will include enabling Mesa's OpenCL state-tracker (in 9.3), packaging pocl - an CPU only OpenCL implementation - and the introduction of several other 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-09-23
+
* 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 ==
Line 59: Line 59:
  
 
* Add OpenCL implementations
 
* Add OpenCL implementations
** [https://bugzilla.redhat.com/show_bug.cgi?id=887628 Enable OpenCL state-tracker] in Mesa '''NEW'''
+
** [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=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:
 
* Package implementation dependencies:
Line 70: Line 71:
 
** [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=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/show_bug.cgi?id=1014040 Review Request: clinfo - Enumerate OpenCL platforms and devices ] - A tool to query informations about the available OpenCL platforms '''DONE'''
** [http://viennacl.sourceforge.net/ Package ViennaCL] - A math library whcih can utilize CPU (OpenMP) and GPU (OpenCL/CUDA) '''WIP'''
+
** [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://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
 
* Update existing packages if needed
Line 78: Line 83:
  
 
* Potential projects to be packaged:
 
* Potential projects to be packaged:
** Package beignet
 
 
** Package khronos icd - probably not
 
** Package khronos icd - probably not
** Package radeontop - To monitor a Radeon GPU (which supports OpenCL)
+
** [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 piglit - This will be a testuite for the OpenCL implementations
+
** 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:
 
* Other stuff:
 
** Add a new group to comps or a opencl-dev package?
 
** Add a new group to comps or a opencl-dev package?
** Add virtual provides to the opencl implementations - So a app requireing opencl just needs to require the virtual package (so any provider)
+
** 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
 
** Version opencl-headers
  
Line 109: 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 128: 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
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
=== CPU-Only ===
N/A (not a System Wide Change)
+
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 164: 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

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