Page 1 of 3 123 LastLast
Results 1 to 10 of 31

Thread: Official OpenCL 2.0 Feedback thread

Hybrid View

  1. #1
    Administrator khronos's Avatar
    Join Date
    Jun 2002
    Location
    Montreal
    Posts
    54

    Official OpenCL 2.0 Feedback thread

    Khronos Releases OpenCL 2.0 Provisional Specification for Public Review
    New generation of industry open standard for cross-platform parallel programming delivers increased flexibility, functionality and performance

    July 22nd 2013 – SIGGRAPH - Anaheim, CA – The Khronos™ Group today announced the ratification and public release of the OpenCL™ 2.0 provisional specification. OpenCL 2.0 is a significant evolution of the open, royalty-free standard that is designed to further simplify cross-platform, parallel programming while enabling a significantly richer range of algorithms and programming patterns to be easily accelerated. As the foundation for these increased capabilities, OpenCL 2.0 defines an enhanced execution model and a subset of the C11 and C++11 memory model, synchronization and atomic operations. The release of the specification in provisional form is to enable developers and implementers to provide feedback before specification finalization, which is expected within 6 months. The OpenCL 2.0 provisional specification and reference cards are available at www.khronos.org/opencl/.

    “The OpenCL working group has combined developer feedback with emerging hardware capabilities to create a state-of–the-art parallel programming platform - OpenCL 2.0,” said Neil Trevett, chair of the OpenCL working group, president of the Khronos Group and vice president of mobile content at NVIDIA. “OpenCL continues to gather momentum on both desktop and mobile devices. In addition to enabling application developers it is providing foundational, portable acceleration for middleware libraries, engines and higher-level programming languages that need to take advantage of heterogeneous compute resources including CPUs, GPUs, DSPs and FPGAs.

    Updates and additions to OpenCL 2.0 include:

    Shared Virtual Memory
    Host and device kernels can directly share complex, pointer-containing data structures such as trees and linked lists, providing significant programming flexibility and eliminating costly data transfers between host and devices.

    Dynamic Parallelism
    Device kernels can enqueue kernels to the same device with no host interaction, enabling flexible work scheduling paradigms and avoiding the need to transfer execution control and data between the device and host, often significantly offloading host processor bottlenecks.

    Generic Address Space
    Functions can be written without specifying a named address space for arguments, especially useful for those arguments that are declared to be a pointer to a type, eliminating the need for multiple functions to be written for each named address space used in an application.

    Images
    Improved image support including sRGB images and 3D image writes, the ability for kernels to read from and write to the same image, and the creation of OpenCL images from a mip-mapped or a multi-sampled OpenGL texture for improved OpenGL interop.

    C11 Atomics
    A subset of C11 atomics and synchronization operations to enable assignments in one work-item to be visible to other work-items in a work-group, across work-groups executing on a device or for sharing data between the OpenCL device and host.

    Pipes
    Pipes are memory objects that store data organized as a FIFO and OpenCL 2.0 provides built-in functions for kernels to read from or write to a pipe, providing straightforward programming of pipe data structures that can be highly optimized by OpenCL implementers.

    Android Installable Client Driver Extension
    Enables OpenCL implementations to be discovered and loaded as a shared object on Android systems.

    OpenCL BOF at SIGGRAPH, Anaheim, CA July 24th 2013
    There is an OpenCL BOF “Birds of a Feather” Meeting on Wednesday July 24th at 4-5PM at the Hilton Anaheim, California Ballroom A & B, where attendees are invited to meet OpenCL implementers and developers and learn more about the new OpenCL 2.0 specification.



  2. #2
    Junior Member
    Join Date
    Aug 2010
    Posts
    16
    Hi,

    it's great to see depth texture support, but only for 32 bit float, and 16 bit unsigned normalized integer formats. I suppose these would be GL_DEPTH_COMPONENT16 and GL_DEPTH_COMPONENT32F in OpenGL. Why is there no support for the good old 24 bit format like the GL_DEPTH24_STENCIL8 format? Can we get support for that, please?

  3. #3
    Pipes: What is the idea behind the new pipe objects? Maybe I am too narrow-minded but I just come up with a good use case for them.

    clGetKernelArgInfo: Could you add a cl_kernel_arg_info constant named CL_KERNEL_ARG_INFO_TYPE_SIZE? It would be possible to infer this information from the type name but that sounds not too nice for me.

    General: Could you fix the documentation and documentation links. For example, enqueue_kernel is not listed in the side bar of the online manpages and I get asked for a password when trying to access get_default_queue.

  4. #4
    work_group_prefixsum_{inclusive,exclusive}_{add,mi n,max} functions are not named correctly, since they are not necessarily additions. Is it too late to change them to
    work_group_{inclusive,exclusive}_prefix_{add,min,m ax} or something else that removes the "sum" part of the name?

  5. #5
    Senior Member
    Join Date
    Sep 2002
    Location
    Santa Clara
    Posts
    105
    The 24-bit depth / stencil format is supported as an optional extension. These are described in the OpenCL 2.0 extension specification (refer to section 9.11)

  6. #6
    Newbie
    Join Date
    Aug 2013
    Posts
    1
    I would really like a way to uniquely identify devices, particularly in a way that would allow identifying between platforms. What I am working on essentially is a system to distribute different tasks (unrelated processes working on different problems) between all devices in a system. However the same device could still be available on multiple platforms, and I would like to avoid scheduling a task on 2 different platforms that are using the same physical device. For example, a common and easy to detect without a feature would be if you have both the AMD and Intel platforms installed, both will expose the same physical CPU device. In that particular case it is easy to detect, but more difficult cases arise with multiple GPUs. What I want is the PCIe ID, or some device hash that would be based on it for PCIe devices for uniquely identifying a device within the system.

  7. #7
    Junior Member
    Join Date
    Dec 2008
    Location
    Toronto, Ontario, Canada
    Posts
    16
    Hi everyone.

    Just a quick note that I have read the OpenCL 2.0 specification and have made extensive notes to provide feedback. I am currently writing it up, and it will take me a week or so to compile all of my notes into something easily read. I haven't seen much activity on this topic, and I wanted to reassure committee members that feedback is coming, so don't pass the spec yet!

  8. #8
    Senior Member
    Join Date
    Oct 2012
    Posts
    105
    There's a discrepancy in the OpenCL C Specification document (version 11):

    - Paragraph 6.5.1 (global) states that: "Variables defined at program scope (...) can also be declared in the global address space."
    - Paragraph 6.5.3 (constant) states that: "Variables in the program scope must be declared in the __constant address space."

  9. #9
    Junior Member
    Join Date
    Dec 2008
    Location
    Toronto, Ontario, Canada
    Posts
    16
    Hi everyone, I decided to provide detailed feedback in the form of blog articles. You can read them here: https://blog.ajguillon.com/

    The first relevant blog is: https://blog.ajguillon.com/2013/09/1...zation-issues/

    Thanks.

  10. #10
    Junior Member
    Join Date
    Aug 2010
    Posts
    16
    Quote Originally Posted by affie View Post
    The 24-bit depth / stencil format is supported as an optional extension. These are described in the OpenCL 2.0 extension specification (refer to section 9.11)
    awesome, thank you!
    I hope it gets at least AMD/NV support

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •