Skip to content

Conversation

@Lastique
Copy link
Member

The debug implementation is not thread-safe, even if different threads are using separate iterators for reading elements of the container. BOOST_CB_DISABLE_DEBUG macro is no longer used, BOOST_CB_ENABLE_DEBUG=1 should be defined instead to enable debug support.

Fixes https://svn.boost.org/trac/boost/ticket/6277.

The debug implementation is not thread-safe, even if different threads are using separate iterators for reading elements of the container. BOOST_CB_DISABLE_DEBUG macro is no longer used, BOOST_CB_ENABLE_DEBUG=1 should be defined instead to enable debug support.

Fixes https://svn.boost.org/trac/boost/ticket/6277.
keryell added a commit to triSYCL/triSYCL that referenced this pull request Apr 30, 2016
…odern Boost

The issue is described in https://svn.boost.org/trac/boost/ticket/6277 and
fixed with boostorg/circular_buffer#9

Do not define MAKE_BOOST_CIRCULARBUFFER_THREAD_SAFE when using a modern
version of Boost.
TODO: Add automatic testing for Boost version when the fix is released.
@keryell
Copy link

keryell commented May 2, 2016

Nice! I've tried your version in https://github.com/amd/triSYCL/commit/dd5adeb9d8954ebccf13b837e5a6d415752db490 and it works. So, for me, it looks ready to land.

Thank you for your fix of this 4 year old bug!

@keryell
Copy link

keryell commented Aug 9, 2016

Ping!
Anyone to review this pull request?
Thank you.

@viboes
Copy link
Contributor

viboes commented Aug 10, 2016

I have no rights to merge this pull request :(

Can someone do it?

@glenfe glenfe merged commit 12b896d into boostorg:develop Aug 11, 2016
@glenfe
Copy link
Member

glenfe commented Aug 12, 2016

Done.

@viboes
Copy link
Contributor

viboes commented Aug 12, 2016

Thanks.

@Lastique Lastique deleted the disable_debug_by_default branch August 12, 2016 04:56
keryell added a commit to triSYCL/triSYCL that referenced this pull request Oct 26, 2016
The list of commits since last publication:

commit 3758f2bd0a78709bb987e9d16de73dc785be9f1c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Oct 26 12:21:57 2016 +0100

    Move documentation from AMD GitHub to Xilinx GitHub

commit ec31f37a403749ffcd835f7f44f4cfd58d9a09d6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Oct 26 12:21:03 2016 +0100

    Simplify Khronos SYCL URL

commit 4bcb54de92f25b771ebdd20c52b4d427092292c0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Oct 26 11:49:55 2016 +0100

    Move "Some other implementations" section earlier

commit e4b72fd40ca437ef3441c3eec1aad745f89819b9
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Oct 26 11:49:01 2016 +0100

    Add a linkk to Codeplay & ComputeCpp

commit 94cb4e0870ffa50809c899e4245ac2faeeb5e767
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Oct 26 11:41:10 2016 +0100

    triSYCL moved from AMD to Xilinx on GitHub

commit bcc0fdba473a0026e505a23117bb63d794859059
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Oct 20 13:07:48 2016 +0100

    Test for more versions of FileCheck in LIT configuration

commit fcff87abc545fef0fa4f81fba83db983c61eecc3
Merge: fced026 f8bc693
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Sun Sep 4 23:17:24 2016 -0700

    Merge pull request #3 from ahonorat/master
    
    Jacobi examples without new/delete to manage accessors in kernel
    
    This update fixes a bug when creating accessors inside a kernel with new and capture by address of the accessors.
    Now all accessors in Jacobi examples are created on the stack by static list initialization and are captured by value.

commit f8bc69377346fa8cb218d36dc8073e0c83a3865e
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Sep 3 23:10:30 2016 +0200

    R. Keryell tests/Makefile version

commit 0d710ef663a6f9d6f0aed868bc3bfd8601064cf0
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Sep 3 23:04:18 2016 +0200

    Removing new/delete to constructs accessors in kernels

commit e2ecf4566abf1a42afb50352a927a68591956318
Merge: 31e7a26 fced026
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Fri Sep 2 19:48:48 2016 +0200

    Merge remote-tracking branch 'upstream/master'

commit fced0263ca61558717e76d7132a4bbf4e8964f79
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Sep 2 17:48:22 2016 +0100

    Fix a deadlock when the buffer waiter is waiting for a buffer destructor
    
    When the buffer waiter destructor is waiting for the buffer destruction
    and it is actually the only owner, there is nobody else to notify for
    the completion...

commit 1d134fd30181e0a6adb9f0f30a797aba6084145d
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Sep 2 15:19:57 2016 +0100

    Simplify demangling code in debug messages

commit 6da51725545b1c71f4fa8a66632604b8defab003
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Sep 2 15:02:46 2016 +0100

    Use Boost.TypeIndex in debug mode to display demangled C++ type names

commit 6bc0465904144ecf79ebbc611da5477d7503074f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Sep 2 15:00:01 2016 +0100

    Fix hexadecimal thread display in debug mode

commit 31e7a26541a868e78098295915dd3c24643cf9ec
Merge: 39fb220 57e745a
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Aug 27 23:03:30 2016 +0200

    Merge with upstream

commit 39fb2200837e07e3a11884444230a186ef708472
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Aug 27 23:01:02 2016 +0200

    Makefile with my own compiler path ... g++-5.4

commit 57e745a5e445f566421cf30588b3eb3515e8c756
Merge: 2a99a13 c4ef594
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Fri Aug 26 08:23:36 2016 -0700

    Merge pull request #15 from keryell/opencl: OpenCL support through the OpenCL interoperability mode
    
    The single source mode with an out-lining compiler is not implemented yet but at least OpenCL kernels can be run now with the OpenCL compatibility mode of SYCL.
    The advantage compared to plain OpenCL is that the data movement between host and devices is managed automatically by the accessors.

commit c4ef59446b5d1f4b6c7c80e286bfa3a7464d07be
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Aug 26 16:00:19 2016 +0100

    Update compiler versions

commit 8eb09cda50d21a47f1fe004b880019f4dee9909c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Aug 26 15:59:15 2016 +0100

    Make the accessor to compile without OpenCL again

commit 6e338adce0ff7d4dc9694dc0208b4af2a45bcbec
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Aug 26 15:12:28 2016 +0100

    Finish renaming some macros and identifiers in stencil examples

commit e36ab90e7ed92cbaa3cdf95c5a88fe8a8d9f60b0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Aug 23 18:18:04 2016 +0100

    Rename some macros and identifiers in stencil examples to avoid OpenCL conflicts
    
    CL_DEVICE_LOCAL_MEM_SIZE is an OpenCL identifier used in cl.h
    by clGetDeviceInfo() and it was redefined by the application to
    represent the memory to used as local memory.
    
    As a defensive approach, add "J_" prefix (for "Jacobi") to all the
    identifiers starting with "CL_".

commit 2588474153dc33bd9105558da072858447850b30
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Aug 22 20:17:04 2016 +0100

    Add unit tests to check the behaviour of global buffer destructor

commit 3fb9badff348bb0b3022dd5b164f0253c0bd21e8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Aug 22 19:31:37 2016 +0100

    Add enable_if magic to debug class to avoid breaking assignment synthesis
    
    The current implementation was always declaring copy and move
    constructors, preventing the synthesis of default assignments in some cases,
    such as for buffer.

commit 92789e5f2714c7a53a60258823695e97e2316732
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Aug 12 12:26:55 2016 +0100

    Update news in the README about OpenCL kernel interoperability mode

commit 7920fcdc91ec0677eac3dec2389f2bde162cb9e7
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Aug 12 12:13:31 2016 +0100

    Add variadic set_args() to set all kernel arguments at once in OpenCL kernel interoperability mode
    
    This is discussed in
    https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15978
    
    In the current SYCL specification, when using plain OpenCL kernels with the interoperability mode, it is only possible to set arguments one at a time with handler::set_arg().
    
    This is verbose and cumbersome, whereas Khronos cl2.hpp and Boost.Compute provide ways to do this based on variadic templates.
    
    So add a
    
      template <typename... Ts> void set_args(Ts&&... args)
    
    for this.
    
    I think this should be also back-ported to SYCL 1.2.1.
    
    Question for an OpenCL lawyer:
    Should we verify that the number of arguments matches the kernel arity?
    I have the feeling that we should not because we may imagine a kernel
    with some trailing unused arguments and in that case it is useless to
    set them.

commit 9e7e67e31a48aeb67beba37a2d87de1cd5d184bf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 19:00:13 2016 +0100

    Remove debug messages

commit b74c7e327b6251778f0fab6eb85e2f2f2dcd85a4
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 18:49:55 2016 +0100

    Clear explicitly prologue and epilogue hooks in task to remove a dead-lock
    
    The functors hold shared_ptr to accessors holding shared_ptr to buffers.
    Since buffer destructors are blocking, avoid keeping them alive for
    nothing...

commit 223c7fae0972e39f9c1dd23c3a043f70ceabb3ff
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 17:12:50 2016 +0100

    Simplify capture of task by value

commit 66b9f3c3febacb513415821eecfb4fe3cf53133a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 17:02:11 2016 +0100

    Fix another "this" captured by reference instead of a member by value

commit 5f5da3bf5e32a5a3d2431d88d8b6d963745ce101
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 14:47:57 2016 +0100

    Fix a bug around a nasty implicit this capture by address
    
    Hard to find!

commit 291a22072966c0efdde0454d8a4cd25bd6e4500e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 13:03:20 2016 +0100

    First implementation of set_arg() for OpenCL kernel
    
    Still a memory issue in the task

commit 8262b1aa646e4fc86497dd4d7946fe0aff9302f8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 06:51:14 2016 +0100

    Add is_read_access() to accessor

commit fbc02e4def4d6d41cf6e457ae44bae4dda8b76d0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Aug 10 06:46:27 2016 +0100

    Add get_size() method to detail::buffer too

commit 62b2304ad6f0c922e573e902d486e1e950bfca1a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Aug 9 10:09:00 2016 +0100

    Improve example to test accessors [][] in kernel context

commit 35e1e9ac93cabb814ac357f2402cc5de6c7cdd4a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Aug 9 09:24:55 2016 +0100

    Use shared_ptr to simplify buffer accessor ownership

commit c5de16c15c3f7b901ed723d232b88972b81e49e9
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Aug 8 16:09:58 2016 +0100

    Work around Clang bug 28873
    
    Clang cannot use the destructor of a templated class as a friend
    https://llvm.org/bugs/show_bug.cgi?id=28873

commit a7d4d008184ccda835b3a8fdf21885cbde056bcc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Aug 8 15:23:14 2016 +0100

    Support to run prologue & epilogue to kernels

commit c8de722392be6e4ce38f4267d6c50937c1919651
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Aug 2 16:16:43 2016 +0100

    Capture buffers in accessors with shared_ptr
    
    This is a cleaner implementation without too early optimization.

commit dd5530314b9d369020033ac0151218cd7f56a124
Merge: 77657b5 2a99a13
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Jul 18 16:18:35 2016 +0100

    Merge branch 'master' into opencl
    
    Fix a few conflicts related to enum classes for access target and mode

commit 77657b5925479f78b56cce579031999644b94ec0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 15:27:16 2016 +0100

    Add final wait for a kernel without any buffer use

commit 72dfc0a0d716743ac01b6ebc66d9d3ed372c263e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 15:19:19 2016 +0100

    Fix argument order in OpenCL kernel call and add synchronization

commit a22513358ce5c21625865f193d436fa774fdbcdf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 13:59:36 2016 +0100

    Capture pipe implementation with shared_ptr in accessors
    
    When the queue had been changed to non blocking in the destructor and
    the buffer destructor changed to non always blocking, the fact that the
    pipe implementations were captured by simple reference blew away during
    asynchronous execution because often the pipes were destroyed before the
    usage...
    
    Now the command group keep a reference on the pipe through the accessor.

commit 4a07558a14ea535de88ab7f7bee75737629ca65f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 13:47:57 2016 +0100

    Fix struct/class inconsistencies

commit f39896b88cba02fda5c2038be727befd790042f3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 12:59:32 2016 +0100

    Improve access specifiers in accessors

commit 6fb7de16b2ea36d15b8b926d7940ee40065e815b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 09:45:59 2016 +0100

    Improve access specifiers in buffers

commit d9560dc7ba330ba04361c15b9823f65b8afa5a84
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 09:08:55 2016 +0100

    Change static_pipe to use common shared-pointer based implementation framework
    
    No longer use ad-hoc implementation.
    Improve access specifiers.

commit e9ad436f4ca4e91b5e63bf15367f0e87fe3da020
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 13 08:53:10 2016 +0100

    Change pipe to use common shared-pointer based implementation framework
    
    No longer use ad-hoc implementation.

commit d01a9f01e3d60f0be2638e659d7cde7b8ad2981f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 12 17:49:57 2016 +0100

    Replace struct by class in pipes and precise access specifiers
    
    Do this before fixing issues in current pipe ownership.

commit 8df51ec4ec792a26c25c6738b326f886d23353fd
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 12 17:03:43 2016 +0100

    Add forgotten "implementation->" in is_read_only()

commit 13e58f373af323852360e77d506498dc98f1e3fa
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 12 15:44:22 2016 +0100

    Implement waiting for buffer destruction using optional future/promise

commit 8c482b2631f793c2cc96ee48ec78a1dfaefede43
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 12 13:58:46 2016 +0100

    Add some lacking implementation indirections

commit ecf3e6874a1e29ddd08c7c0d7e3bb0d0c4d2eacc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 8 21:24:50 2016 +0100

    Add an intermediate buffer_waiter to deal with blocking buffers
    
    Still a WIP

commit b814f7bbc07cd20309a01740dbb610aed4a25d6e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 8 19:02:31 2016 +0100

    Only wait for buffer write-back with a host pointer when non-const

commit 0b2e0dc5caacd19029722e9f98b708787db80def
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 8 19:01:09 2016 +0100

    Add buffer constructor/destructor tracing tracing

commit b1dd91d8c01d816f8a6811ce8d3abac32c8f0744
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 8 16:28:56 2016 +0100

    Reverse ownership of task and buffer_base
    
    Since buffer constructors are blocking and not queue, it makes more
    sense to have task owning the buffers they are using.
    Use cleaner weak_ptr instead of raw pointers.

commit 72f1e9d347437dbb0ee6e17c2f0967a2a09a09da
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 8 15:26:16 2016 +0100

    Make the buffer destructor blocking when required

commit 6a282e4178fc0b9c486f406d1cbee4565308f74f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jul 6 17:23:53 2016 +0100

    Add forgotten shared pointer initialization in buffer

commit c593d51b104c8fda268a4475e02cdb882e4c9eb3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 5 16:38:14 2016 +0100

    Add new OpenCL kernel tests
    
    Rename a former one too.
    Current state is still a WIP.

commit 504d86612047f2e39236cf7842602768f540ce8b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 5 16:36:09 2016 +0100

    Replace blocking queue destructor by blocking buffer destructor
    
    After discussion in committee, the queue destructor is not blocking,
    only used buffers have blocking destructors waiting for their usage to
    be released.
    
    Discussed in https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15837
    
    Also simplify the code by "using namespace cl::sycl".

commit f28de6658041b85c9a0fea9ec1f9cbd62a3ae60f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jul 5 13:52:13 2016 +0100

    First implementation of OpenCL kernel compatibility mode
    
    Still some regressions.

commit edeec8ecdd5df88966e2206153f7e71a5a4b0450
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jul 1 11:35:13 2016 +0100

    Update object checking infrastructure and add kernel checks

commit e74780e058e27da41d1b68f43966a8ff4055f384
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Jun 30 12:38:15 2016 +0100

    Implement construction of SYCL kernel from OpenCL kernel

commit 2a99a13bee351cd530a892f30536ded6253bacf3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 28 07:24:36 2016 +0100

    Make access::mode and access::target enum class instead of enum
    
    This was inconsistent with specification.
    Now the enum member names are no longer injected into the enum outer
    scope.
    
    This fix bug https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15913

commit 28d89fd6f9ba94d3c8f515ac69d0865d538ef615
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jun 10 11:37:41 2016 +0100

    Fix coding style issue

commit 266db2bc70fb5fff96c8f2a36c78358e8c5b9dfe
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jun 10 11:37:04 2016 +0100

    Implement basic features of OpenCL queue

commit 60314aaa446c645d1904fdc75b5b227d3403ff3b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 14:49:19 2016 +0100

    Implement most of host queue methods

commit a19b6b83e2f43ae7cabcef3138152c228b21ab4b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 14:41:01 2016 +0100

    Factorize out test on default device with associative containers

commit 593d44f2007b35b67164c47c849edacc28ecf6ed
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 14:21:15 2016 +0100

    Factorize out the test of throwing get() on non OpenCL objects

commit cc3894a2fbe118737c0d7357d0d48d3497343493
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 13:08:00 2016 +0100

    Add a separate host_queue in the queue hierarchy

commit 0798f702d469db7c3aa90c9a749e17c21aad3df1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 10:47:54 2016 +0100

    Factorize out singleton management into a specific mix-in

commit 590ffcb0ea1bc154e85f8a1dfb10a588df1d66e4
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 09:12:26 2016 +0100

    Factorize out queue with implementation framework

commit 9fbb1c1db8fc80a3a8f9731e364caf0fee637af1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jun 7 07:42:26 2016 +0100

    Check platform in associative containers
    
    Fix a wrong copy/paste.

commit 796136f765120e59102ce5d037183f1ddaa79397
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 25 20:44:43 2016 +0100

    Implement SYCL exceptions

commit 6dfca6e86bc0371f8955fa5cbe5f93d90d0a6471
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 25 19:20:52 2016 +0100

    Implement exception_list

commit e71497b8e9f5941b9430db6960364ab6bb702592
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 24 20:38:37 2016 +0100

    Implement device constructor from device_selector

commit 45b5d99cf6fdfd5d0bddd0415c44982e742bdbaf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 24 11:06:54 2016 +0100

    Add device_typename_selector and use to implement all the specific device_selector
    
    To be added to the specification.

commit e9d7f331589a30ee33134393d900713bb07321d6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 24 10:46:36 2016 +0100

    Simplify device::get_devices() for all device selection

commit b0a27de754a8f628c32d640f956deeebceab76d0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 24 09:59:28 2016 +0100

    Add OpenCL device selector
    
    To be added to the specification

commit 4eae8b80009527b7fddb69f2218c97dcc1623443
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 24 08:26:56 2016 +0100

    Add a device_type_selector also used in device::get_devices()

commit 1ff519a9ac161843a026c33b4568e43c3cc22379
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 23 21:32:38 2016 +0100

    Introduce new device::type() method to get the device_type
    
    It is in Boost.Compute and is useful at least for the SYCL implementation.
    To be added to the specification.

commit 80b165b78a11604f7022376df620199f34f31499
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 23 20:14:34 2016 +0100

    Introduce a new platform::get_info<>(info::platform) method

commit eebd1e9ae41a92bb3aa26d9d4b58dc1435d8a7b5
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 23 19:09:54 2016 +0100

    Implement OpenCL platform

commit 9d86a9afc029dcab29e0b70a5ed3cd32cfc8640a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 23 17:45:42 2016 +0100

    Add associative container tests on default platform

commit a303b620fa2924700adf50aba9a479100a64d8e5
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 23 14:28:49 2016 +0100

    Factorize out platform implementation
    
    Use infrastructure for implementation as a shared_ptr.
    Add detail and host platform as a virtual class.

commit f3f9ef7e2d62b6ae1e645e45aacfe6d592240bb5
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 16 21:54:29 2016 +0100

    Factorize out opencl_device unit test

commit a2aa153ec8ef492ebcc27327fc2029f341f2704a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 16 21:39:07 2016 +0100

    Generalize usage of detail::shared_ptr_implementation to device

commit 74100fdf533091f47060174d5465ddc73f267309
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 16 16:51:51 2016 +0100

    Remove dependency on OpenCL in device

commit bed086e439ce8473b159569d4b9ef7eca5bff04b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 16 16:27:52 2016 +0100

    Add OpenCL devices in device list and add device construction from cl_device_id

commit 6f67c515b577d36af6bf3ca9a36fd3f2464f3f15
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri May 13 15:53:21 2016 +0100

    Add a cache mechanism to OpenCL device

commit 71117f130598818f3f4470582754f996fd866322
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri May 13 12:35:13 2016 +0100

    Remove useless dynamic allocation

commit 2ae1028e813d2b4f758576fab79fa7403580dabf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri May 13 06:17:13 2016 +0100

    First version of an OpenCL device

commit be303c9e80aa77e152afdf1d2ab9370a39d0397e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu May 12 15:50:55 2016 +0100

    Buffer with mix-in for shared pointer implementation with associative container support

commit bfeb49d1fa56792d44912a9e0c00285a4f1088cf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 11 17:38:35 2016 +0100

    Add host device in device list

commit b65c2e980c752ea8dd50979dc915312445db9236
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 11 16:34:19 2016 +0100

    The host device throws an error when asked for its OpenCL device

commit 959001664ecded4f96be26502388282e1380f4b7
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 11 16:13:33 2016 +0100

    Update to have compilation working with OpenCL environment

commit a0a21ed9a2eedd59d0dda311883ed9841f33f497
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 11 16:12:10 2016 +0100

    Forward more environment variables to lit
    
    Forward some variables typically used to setup OpenCL environment.

commit 60814d95045df53322a3b8ec28b580e120873cac
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 10 20:13:59 2016 +0100

    Make the host device a singleton

commit e27ffdb19998a69120dd2ed64d5b9572a9a30b28
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 10 19:13:52 2016 +0100

    Add a hashing specialization to device to be part of unordered containers

commit b50b61761fac82578b068c013ee813a57923a46b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 10 16:03:45 2016 +0100

    Add the totally ordered concept to device so it can be used in associative containers

commit aac93d91cdab8c05be90ea9d67b058cf672338eb
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue May 10 14:46:03 2016 +0100

    First version of host device based on dynamic polymorphism

commit 54d186c3dc3a2ae27cd3fb584a3eb180802daad1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon May 9 17:22:57 2016 +0100

    Move device information types to their own file

commit 8400c1bfe7aba05f4fd2b2619556ab5abc48489c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed May 4 13:41:02 2016 +0100

    Add Xilinx_blocking_pipes to host platform and set version as 2.2
    
    Add also 2.2 info::platform::host_timer_resolution

commit dd5adeb9d8954ebccf13b837e5a6d415752db490
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Apr 30 09:02:38 2016 +0100

    Make Boost.CircularBuffer work-around optional since it is fixed in modern Boost
    
    The issue is described in https://svn.boost.org/trac/boost/ticket/6277 and
    fixed with https://github.com/boostorg/circular_buffer/pull/9
    
    Do not define MAKE_BOOST_CIRCULARBUFFER_THREAD_SAFE when using a modern
    version of Boost.
    TODO: Add automatic testing for Boost version when the fix is released.

commit 85e08ab92f6ffeb98cffc32d86878ebd3e642deb
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Apr 19 09:20:17 2016 +0100

    Add news on SYCL 2.2 publication and pipes

commit 3afa57a8f38a7c6524da2604dac53203bb0a7ad1
Merge: 9b4158b 5095407
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Apr 19 09:09:07 2016 +0100

    Merge branch 'ronan/pipes'

commit 9b4158be283b6e14bb2ba4985641bb97e274259b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Apr 19 08:59:30 2016 +0100

    Pass shared pointer by copy to increment reference counter

commit 40034abac90babbd73f8bbc16a3ae10620bd4c0c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Apr 7 15:49:43 2016 +0100

    Add links to presentations made at SG14 C++ committee

commit 0420ee007f021b69d26513dc290f6837e7089860
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Apr 1 10:42:52 2016 +0100

    Add OpenMP and OpenACC to related projects

commit f19036b40238c64f4e336e5a6ae608afae3a7b99
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Apr 1 10:24:14 2016 +0100

    Update related projects

commit 50954073ac8653c7ef55955a5199431bd7b21eb6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Mar 7 19:35:31 2016 +0000

    Add an API to enable/disable pipe debug mode at run time
    
    It does nothing by itself but the programmer is expected to add some
    specific debug code in pipe, pipe_accessor, etc. code to do the real
    debug work.

commit e2fef4741fd20b644298d30a6abe3861cf95f182
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Mar 7 19:31:39 2016 +0000

    Verify that a pipe is accessed at most once for reading and writing

commit 199e7fb96e875dc30691a8fe04ae600fa42a2ac3
Merge: c007b07 c6d2314
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Mar 9 10:01:41 2016 +0000

    Merge branch 'master' into ronan/pipes

commit c6d2314b4f10c6d8944cc44ccc725458f0ceede9
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Feb 29 17:11:09 2016 +0000

    Add kernel start/finish tracking mode with TRISYCL_TRACE_KERNEL

commit c007b07a60b54cf77bb7f0dedeb3f18c642f144d
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Jan 30 15:23:19 2016 +0000

    Replace std::enable_if_t by static assert in pipe_accessor for better error message
    
    Rather than to have a cryptic message when using for example by error
    a read operation on pipe with write access, output an explicit message.

commit 5dd7ad26c15c9d8721709cbc2ce84e57a1bb2e5d
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Feb 18 04:49:03 2016 +0000

    Rename program_pipe to static_pipe
    
    Also update some comments along the SYCL 2.2 proposal.

commit 7bc04b72ef0b1728b630f2092572fbe468c8a9b5
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Feb 18 03:27:44 2016 +0000

    Move pipe_reservation iterators to the end since they are less important

commit 07aa8be6bc68d54497328fcb567b7355415c7663
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Feb 18 03:22:58 2016 +0000

    Improve comments and const-ness to be in sync with SYCL 2.2 proposal

commit 7900b2740d7f08bacac32c6a893b0121474090da
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Feb 18 00:15:39 2016 +0000

    Add STL types and iterator methods around pipe-related objects
    
    This is mainly to make the SYCL 2.2 specification headers.

commit 21c52154f43f24de5b43a02a9550c3b2179830e8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Feb 16 00:54:51 2016 +0000

    Fix typesetting of for loop

commit 7693549748ff37f7f51b66dca7d8cee120ec3192
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Feb 13 00:31:51 2016 +0000

    Update the comments since in triSYCL the address space usage is more general as in plain SYCL

commit e6e85187d87d166c71f531dc5d219634b0fd7f7d
Merge: 4244709 e788a84
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Fri Feb 12 15:27:33 2016 -0800

    Merge pull request #14 from benoitsteiner/master
    
    Fix compilation warning

commit 4244709f6c5fab48217502242a5d7f144f68cc8a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Feb 12 19:10:10 2016 +0000

    Add C++ committee and SG14 to related projects

commit c311f19697377d3275360abbfc52c1f677313f6b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Feb 12 18:51:25 2016 +0000

    Add link to Khronos cl2.hpp in related projects

commit e788a8488347f871cbba01de947715a48533c61d
Author: Benoit Steiner <benoit.steiner.goog@gmail.com>
Date:   Thu Feb 11 17:59:02 2016 -0800

    Fixed compilation warning

commit fca6277b555a648d9dfbb23f01f5750242f78bc8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Feb 9 20:17:05 2016 +0000

    Add PACXX in related projects

commit 69281129ce734fa149dfae4bee4861870dad09bf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jan 29 00:33:47 2016 +0000

    Update README with latest status, related projects and presentations

commit 899ae92717022237395f00bf5563eb209899cdb2
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jan 26 19:28:40 2016 +0000

    Fix Alex Bourd last name

commit fe3965c8fcdcbf2d456077c0f81ef4a8a7bd1a9b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jan 20 14:52:16 2016 +0000

    Update & add examples for HiPEAC tutorial, WRC and AND REFORM workshop
    
    Fix missing <numeric>.
    Remove useless block.

commit 4b9faf45819f6ab7f161585f5b8505c724c19e11
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jan 20 14:43:19 2016 +0000

    Update & add pipe examples for HiPEAC tutorial, WRC and AND REFORM workshop

commit dcfb16476b1012a8d2793c644012a9f6824c3a10
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sun Jan 17 21:28:46 2016 +0000

    Improve comments for HiPEAC SYCL 2016 tutorial

commit 1e5585e39b8ca9557a917b06a33638e69027c4d4
Merge: 22dbbd1 38d315c
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Jan 12 11:21:41 2016 -0800

    Merge pull request #12 from szellmann/master
    
    Add accessor::get_size()

commit e94287def69a55a9a6817ccba7316e791be324ca
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Jan 12 19:17:51 2016 +0000

    Make bool conversion from pipe_accessor explicit

commit 38d315cf78bea63336bfeb63c140eb9ba83bab9a
Author: Stefan Zellmann <info@szellmann.de>
Date:   Tue Jan 12 11:36:56 2016 +0100

    Add accessor::get_size()

commit 22dbbd1497a6d755418fc7cd12e83d4acb78c2ed
Merge: 6653605 b4ac7e9
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Sun Jan 10 09:45:57 2016 -0800

    Merge pull request #10 from szellmann/master
    
    Compile on MAC OS X with clang

commit b4ac7e93c4a9e9e18ddbba3f5386995db5236287
Author: Stefan Zellmann <info@szellmann.de>
Date:   Sun Jan 10 18:05:23 2016 +0100

    Compile on MAC OS X with clang
    
    Cannot create constexpr initializer list from a temporary

commit 7d38bca022642e9d6f59ec14d0d6d98409277ca9
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sun Jan 10 14:59:49 2016 +0000

    Rename detail::pipe_accessor file to suite the new class name

commit 7c19ad06b46743033eff0bd9b71f88c341e8bab5
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Jan 9 02:14:25 2016 +0000

    Rename some pipe examples to describe better their content

commit 75b8c53a58152c2567b3eaa7663611e836541cf8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Jan 9 02:00:40 2016 +0000

    Move the notification of the condition variable for reservation to the commit part
    
    This fix a dead-lock due to the notify_all() at the wrong place.

commit 05192ede45efa33fb3d7a50bef4c8456343fb1f6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jan 8 23:48:12 2016 +0000

    Implement read/write blocking reservations on pipe

commit 6653605d67b9dab2f57764ca534cf29aa0c0c57c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jan 8 19:31:02 2016 +0000

    Use C++14 std::enable_if_t instead of longer C++11 std::enable_if

commit 7bb103ed4126cb0760000e6281468b5e1c55a5e3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Jan 8 19:28:21 2016 +0000

    Enable simple read() method only for blocking pipes

commit a6f83c142defec3533bf79c6640c3e3846e1d9fa
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Jan 7 19:51:30 2016 +0000

    Implement read & write methods of blocking pipe accessor

commit a93c5fada23824ebc5e8ef06d1169d677ddee6c3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Jan 7 14:00:05 2016 +0000

    Implement program-scoped pipes

commit 611453544697bfbf2834c98aa3da4cdd72f85e23
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Jan 7 13:29:44 2016 +0000

    Add a read/write reservation pipe test case.
    
    Fix details in some other pipe tests.

commit d86ac37b95cd2eafa0deb7a37e107dc1699212e1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Jan 7 11:06:31 2016 +0000

    By default a pipe_reservation is not reserved or committable at creation time

commit 816146a53100dcf61bd4e2bf7c82df9b2bce8892
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Jan 6 16:48:16 2016 +0000

    Implement pipe read reservation

commit 548da3d495d921af5db3d22493d99c8dfcad9be2
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Jan 4 18:30:56 2016 +0000

    Change pipe variable to lower case

commit ecf36112f2464402228f47c342594c1671cdd1a8
Merge: ae1e2cf 1cafdfb
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Jan 4 18:19:58 2016 +0000

    Merge branch 'master' into ronan/pipes

commit 1cafdfbbeaa569c53f0f6dc3571896d19f228f10
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Dec 18 11:22:54 2015 +0000

    Improve Doxygen module organization

commit 9d937eb9635d7329fed85652d250626aaadc134e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Dec 18 06:56:25 2015 +0000

    Update detail::parallel_for_workitem to compile without OpenMP

commit ae1e2cf6b4ca102dcc5d09c2c5d2cec10a92eda6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Dec 18 06:29:47 2015 +0000

    Fix a race condition in pipes related to Boost.CircularBuffer debug mode
    
    The debug mode of boost/circular_buffer.hpp has a nasty side effect in
    multithread applications using several iterators at the same time even
    in read-only mode because the library tracks them for debugging
    purpose in a... non-thread safe way.
    
    Remove some "mutable" since now the circular buffer car really be
    const without this debug mode.

commit 5b107bf4ebe55a0f8d69cd09572f6cffce2708cf
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 10 15:27:33 2015 +0000

    Fix copy-paste typing error detail::pipe::size_with_lock()
    
    Clean up some examples.

commit 59e141d4cd373249db4b2ca0e942969a03a8cf99
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 10 13:46:37 2015 +0000

    Fix several issues in pipe reservation
    
    Fix size computation.
    Use move construction of reservation station and fix the move
    constructor to avoid commiting in the destructor of the moved object.
    Add mutable state for survive to lambda expressions.
    Verify that the reservation is in a good state before using it.
    Add debuging code.
    Improve example to use work-group loops.

commit da323cae10d5dfeefcd7a0a3d3c43ff7cab70801
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Dec 7 17:18:01 2015 +0000

    Add locks on user-level pipe observers
    
    Otherwise some havoc may happen if another thread updates the pipe.

commit 77fcc8211e463f67b4e51242e808a6f12bf73b0a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Dec 7 17:16:59 2015 +0000

    Add const to operator [] on pipe accessor so it can work in a lambda

commit ff276929f15c88fe1f770491375bc37293e6469b
Merge: 9332c79 12b6f49
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Dec 7 09:04:52 2015 +0000

    Merge branch 'master' into ronan/pipes

commit 12b6f49b5be339627685698a9d5c0d1ab6d75257
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sun Dec 6 20:37:00 2015 +0000

    Implement nd_range with global size not a multiple of work-group size

commit bc42abc89e0420d55f4044c1e81d6a90f4563fb1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sun Dec 6 20:16:24 2015 +0000

    Add an explicit broadcasting constructor for ranges, offset, etc.
    
    Can for example write range<3> { 11 } to construct { 11, 11, 11 }

commit 0d40c5afaa675ffb1e88cf4a7ec4862324f8382b
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 21:58:00 2015 +0000

    Add a group::parallel_for_work_item() method for functors accepting item

commit 664011bc67cbb726ccab402602b07f31fae0431c
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 21:54:20 2015 +0000

    Add nd_item::get_item() method

commit 64d9499f49b66feec03497157ca05d29bdcdf73f
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 19:31:10 2015 +0000

    Remove spurious spaces and tabs

commit ad6b1cce16c71fd10aea09ba6aec3287afa06949
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 14:55:31 2015 +0000

    Add parallel_for_work_item() as a method of cl::sycl::group

commit 9332c795336256dadfa06a6b633bd85c89487a23
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 11:45:18 2015 +0000

    First running example of pipe reservation for writing
    
    Fix a bug on difference of unsigned values.
    Compute the reserved size instead of partially trying to track it.

commit a7153a3b1622ca730e3f7d5e1f4475e8e5f233c6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Dec 3 11:34:10 2015 +0000

    Fix allocation bug around pipe_reservation
    
    Really allocate the pipe_reservation with a new to be able to have it
    through the shared pointer.

commit 6dac44ddd8dc0b5cf002d591e42651da307656aa
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Dec 2 18:42:10 2015 +0000

    Compiling version of reservation for pipes
    
    Break some cyclic dependencies on types.
    Remove some accessor/detail::accessor confusion.
    Remove accessor indirection and use detail::pipe directly.
    Add -lpthread library in the case there is no OpenMP mode used with
    asynchronous mode.

commit e3f3ee58073e671ac7b3f8fc46ec8ab9bbc098cd
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Nov 30 18:50:46 2015 +0000

    Refactor pipe reservation using std::deque directly instead of std::queue
    
    I needed to encapsulate the iterator in the pipe_reservation object.
    Add comments.
    Not compiling yet...

commit 11f5cc3794d62efc5b6d3def915c870be0dfa9d3
Merge: e1b06b7 0a9974a
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Mon Nov 30 00:38:51 2015 -0800

    Merge pull request #9 from pkeir/master
    
    cl::sycl::item and parallel_for without offset

commit f79be0921df810532e6ff3963491339e2505beee
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Nov 30 07:49:13 2015 +0000

    First infrastructure for pipe reservation
    
    Not yet compiling.

commit 0a9974aa6bb31d852d6e798f4c63a5620cf3b7c4
Author: Paul Keir <pkeir@outlook.com>
Date:   Sat Nov 28 16:30:48 2015 +0000

    reconstruct_item is needed only for a kernel indexed with an item.

commit 359a0920353875152070fc01a81506a5c6103a46
Author: Paul Keir <pkeir@outlook.com>
Date:   Sat Nov 28 15:18:48 2015 +0000

    Reworked parallel_for to support kernels indexed with either item or int types, using a proxy function to dispatch to one of two ternary parallel_for overloads based on the kernel index type.

commit 19fc466506700e4bf836537ee1fefdd4c2a5b26e
Author: Paul Keir <pkeir@outlook.com>
Date:   Fri Nov 27 10:33:51 2015 +0000

    2014 is used in the spec.

commit f2685b806435b9e9ddaee66546589b27bd77d28b
Author: Paul Keir <pkeir@outlook.com>
Date:   Thu Nov 26 16:29:48 2015 +0000

    Removed the use of item::get_linear_id in favour of item::operator[].

commit 4517cb79fbef095f706a4857ae3d731ccf3a3880
Author: Paul Keir <pkeir@outlook.com>
Date:   Thu Nov 26 16:22:13 2015 +0000

    Removed an unnecessary change.

commit ded28af495b4e95db0a24bc67bfff0f44e9056c0
Merge: 81aa69f e1b06b7
Author: Paul Keir <pkeir@outlook.com>
Date:   Thu Nov 26 16:13:48 2015 +0000

    Merge remote-tracking branch 'upstream/master'

commit 81aa69fff88afe7c57df1079006681a3ef342d81
Author: Paul Keir <pkeir@outlook.com>
Date:   Thu Nov 26 16:09:20 2015 +0000

    Just a silly commit to test that my user name is now propogated correctly.

commit 10377d3e898e90944a89ebfe8c7f1f0acaa6d651
Author: Paul Keir <paul.keir@uws.ac.uk>
Date:   Thu Nov 26 15:42:46 2015 +0000

    Modified the tests which use an int as the index, to use the item class.

commit 2e15c353701fadab610b670221be93a5edd4a1e5
Author: Paul Keir <paul.keir@uws.ac.uk>
Date:   Thu Nov 26 12:07:58 2015 +0000

    Modified the parallel_for overload for a range, to avoid a compilation error.

commit e1b06b70b199823749596403a95af9081e6a2fbc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 11:54:08 2015 +0000

    Remove useless vector

commit cd1dd39979d3c3bec481527d84341e8ed8425842
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 11:50:28 2015 +0000

    Add example with 4 kernels and 3 pipes to sum 2 buffers in a streaming way

commit 9fb04b4c3cd8057b6712e3736e2df73fcb429587
Merge: 2081922 83dcb62
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 11:27:56 2015 +0000

    Merge branch 'master' into ronan/pipes

commit 83dcb62e02e0b46433cf7ab3db30906448cf84d6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 11:20:57 2015 +0000

    Move accessor detail into buffer/detail
    
    Because it is only related to buffer accessor.
    This matches the organization of pipe accessor in futuristic branch.

commit 9e8ae6a014bc72cbcb017cd3a9520d385c1e18aa
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 11:13:55 2015 +0000

    Add iterator support to buffer accessors
    
    It would be nice to add them to the specification.

commit 51d178884601b017ccfb1a8f135942b51d75f59d
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 26 10:17:09 2015 +0000

    Simplify constness management in buffer accessor relative to non-mutable lambda capture
    
    Replace ugly const casts by a mutable member, as done in a futuristic
    branch on pipe accessors.

commit bf95e276f7a8d16f8b482243118e1ca41f02c1d6
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 25 15:35:58 2015 +0000

    Add a test case with kernels defined as independent classes (functors)

commit 2081922c4ad05e3ba042bcb29c49549e087cf2f3
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 24 19:10:29 2015 +0000

    Add a missing synchronization to pipe_observers test case

commit f244214773166c18433cbe40ba283327a9c75e25
Merge: 6b03785 49f48bc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 24 19:01:30 2015 +0000

    Merge branch 'master' into ronan/pipes

commit 49f48bc2d22b1f4989b45bb80ecd4acc84f40cdc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 24 18:57:03 2015 +0000

    Implement queue::wait() method
    
    I need it for my futuristic branch implementing pipes.

commit 6b0378571990eb61d7d05d4f57c8de99795044ac
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 24 13:28:28 2015 +0000

    Implement observers for pipe on kernel side: full(), empty(), size(), capacity()

commit e0dcd94c71b38ea250499faffc62afc8bbc0b243
Merge: 0faf794 77c3db7
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 24 13:07:05 2015 +0000

    Merge branch 'master' into ronan/pipes

commit 77c3db77fb9be0a7d2e8ee5d86af5598fb09ace1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Nov 23 20:29:32 2015 +0000

    Experiment a * operator to access first element of a buffer accessor

commit 0faf794b84b35062f1f9952f018afe6025119da2
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Nov 14 22:14:47 2015 +0000

    Add << and >> operators on pipe accessors

commit 710f04d65e6721ad5b584bbdd6c6accdb71d1fce
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Nov 14 22:11:53 2015 +0000

    Improve read() and write() pipe access methods to return the accessor
    
    Then the read() and write() method can be chained without repeating
    the accessor.
    Add a bool conversion operator to return the ok status of the last
    operation, since now the read() and write() does not return it
    any longer.

commit 2ce1262ca5c50bf0fa44080ca9bf4f648cb28637
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Nov 14 21:15:45 2015 +0000

    Add a case with 2 separated queues
    
    Use now only a pipe of size 2 in the simple pipe example.
    Using a xr-value queue can be seen as a way to achieve a synchronous execution.
    Fix a bug in the Makefile where the asynchronous mode was ignored.

commit d274881d4d97a781ac9dd3bce1f41e5f36cbc9d4
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Nov 13 02:48:53 2015 +0000

    First prototype of SYCL pipe
    
    Almost working: there is still some blocking in
    pipe/pipe_producer_consumer.cpp when the pipe is smaller.

commit 59fa875849d8dffb7088e26bdc06308ce7b87cdd
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Sat Nov 14 00:59:48 2015 +0000

    Remove useless header inclusion

commit 34703aa9950bff1724bf3431a1486a9bdc582ae0
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 12 23:17:08 2015 +0000

    Bump into more modern compilers
    
    On Ubuntu 15.10 & Clang++-3.7 the omp.h header is not found when using
    OpenMP mode.

commit dc7f811da626147562dbbb3996996cd34fc6092d
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 12 22:56:52 2015 +0000

    Add a script to help using git bisect
    
    Actually I was looking at a problem that seems related to recent
    Boost.Log 1.58-1.59 not working for me with gcc-4.9 on Ubuntu 15.10
    and Debian/unstable.

commit 8557c9d2b0cf881e6f654e24effb409f1e5affd8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Nov 12 17:52:15 2015 +0000

    Keep track of tasks using buffers with shared pointer
    
    This makes sure that the task may not disappear in the mean time.
    So now the validation is passing in both synchronous and asynchronous mode.
    
    But I have just upgrading my machine to Ubuntu 15.10 and the debugging
    mode with boost/log/trivial.hpp is crashing on some malloc().

commit cd7b1ad378aef7f94f66d608ec39a5196e219464
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 11 01:54:30 2015 +0000

    Add new Jacobi examples in the non-regression testing infrastructure

commit 8e578958bf279f670a931f76b974889a9edacb2a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 11 01:45:58 2015 +0000

    Fix 3 issues in a test example failing in asynchronous mode
    
    Avoid 2 kernels in the same command group Use 2 submissions to the
    queue instead.
    Accessor needs to be captured by value and not by reference since the
    original may no longer exist when executing in another thread.
    Since the buffer is a global object, add an host accessor to access
    its content.

commit 46ad590b8e9095c05f73eff0d68a2eda42a39afc
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 11 01:41:55 2015 +0000

    Fix example to avoid 2 kernels in the same command group
    
    Use 2 submissions to the queue instead.

commit 121f7249e0f2e6a2574bd522b17526acba5c4a7a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 11 01:32:58 2015 +0000

    Correct some examples with array accesses in the wrong scope
    
    The buffer associated to the array needs to go out-of-scope before
    accessing to the array.

commit b10f8d72eb65b60a927ae4da92133e85e7d889f1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Wed Nov 11 01:23:44 2015 +0000

    Improve task debug messages

commit d94c4d661e77b25cd15b894c783cc46391bc22a1
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 10 20:51:15 2015 +0000

    Add tracking of all the buffer usages to avoid destroying a buffer in use
    
    Simplify task producer logistic.
    
    Parallel failure cases go down to 5 but there are now some deadlocks
    in the sequential mode.

commit 5377b6e2ec3d8a1640f4a86479782f36c4807df2
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 10 16:00:27 2015 +0000

    Add kernel tracking in the command group to wait for kernel completion
    
    There are still 8 failures in the tests.

commit c62256cb5a73136f363e8404f13f9cb3ea59164e
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 10 15:37:58 2015 +0000

    buffer::get_access(handler&) constructs a kernel accessor, not a host one
    
    Add a handler parameter forgotten in a call to an accessor constructor.

commit 1ed7401b68a2f1f08ef80c02c36852df74c5bd5a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 10 03:00:50 2015 +0000

    Add a new preprocessor flag TRISYCL_DEBUG_STRUCTORS for tracing constructors/destructors
    
    It is easier not to trace them when just looking at multithreading messages.

commit 2117b4c30cddd80b35497d4ce8a8d302ba8d105a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 10 02:39:35 2015 +0000

    Clean intermediate .o for tests with multiple compilation units

commit 559afa21de33ee9dbfc09af75b150dcf3c0f0035
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Nov 9 23:45:34 2015 +0000

    In synchronous mode, executes also all the dependency verification code
    
    Fix the deadlock on accessor/demo_parallel_matrix_add.cpp test.
    So now all the dependency checking is done, even if the kernels are
    executed in order.
    The nice side effect is that it will lock waiting for some buffer that
    will never be produced instead of having undefined behavior for some
    applications that cannot be executed with kernels in order.

commit a93199cf1504af0d7c2db25f340b126f0c6654e8
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Mon Nov 9 22:21:04 2015 +0000

    Major refactoring of asynchronous execution towards supporting latest 1.2 specification
    
    The asynchronous execution mode was never completed with the command
    groups as defined in the provisional specification.
    
    This is a first attempt for supporting asynchronous execution with the
    command group handlers as defined in the final 1.2 SYCL specification.
    
    The tests in synchronous execution mode mostly pass for now, besides a
    dead lock in accessor/demo_parallel_matrix_add.
    
    There are still a lot of failures in asynchronous mode.

commit 8cf506aa31b9e44b96fbdd7b143df51de8061bca
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Nov 3 22:38:19 2015 +0000

    Add accessor constructors with and without handler
    
    Add some assert to verify target constraints.

commit 147eea67113b1aa260c02985b5df83a4e02c1b91
Merge: 4e41dab 4ca6cb1
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Nov 3 01:10:30 2015 +0000

    Merge pull request #2 from ahonorat/master
    
    Improving stencil DSEL in tests/jacobi
    
    Specifying coefficients function in one of the jacobi examples.
    Adding time printing for jacobi with tiling.
    Generalizes improvements to normal version and fixed coefs one. Update README.
    Improving templating of static args as access function
    More generic version of stencil DSEL, new example with complex type
    A more generic version of var stencils seems to be slower, the old one is used by default

commit 4ca6cb102df8ba3bf451b88441b5fb6791c59b6c
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Oct 31 21:20:25 2015 +0100

    Specifying coefficients function in one of the jacobi examples.

commit d3e59ce96df1cca3172b13a210caa36e9457f385
Merge: f147c80 4e41dab
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sat Oct 31 21:07:59 2015 +0100

    Merge remote-tracking branch 'upstream/master'

commit 4e41dab7a3710e4dd4ce4a49501f62e831f412b7
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Oct 30 01:03:27 2015 +0000

    Add test for buffer size methods, add use_count method  and fix bugs
    
    Always add unit tests...
    Refactor code from buffer.cpp into detail.

commit f147c801834a81cdf3833aa4b5edefa607fca651
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Thu Oct 29 22:25:51 2015 +0100

    Addind time printing for jacobi with tiling

commit 8e2b9bbb8b1f823d138b045aca5910d8f15e51ef
Merge: 82bad38 9e03dcf
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Thu Oct 29 22:19:38 2015 +0100

    Merge remote-tracking branch 'upstream/master'

commit 9e03dcfb0d112394122a61297552b782c881e1f2
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Oct 29 18:19:13 2015 +0000

    Add a get_count() method to range
    
    size() should get only the number of dimensions.
    Still some work to unify naming with C++ committee work.

commit 82bad386bf55166fab25b88ca87183c56a828ea5
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sun Oct 25 18:39:06 2015 +0100

    Generalizes improvments to normal version and fixed coefs one. Update README.

commit d889e501ecb2881c4b60a485b8d5a0f315e6e692
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sun Oct 25 17:45:53 2015 +0100

    Improving templatig of static args as access function

commit 71397c780aa89fdccf1ee8e98decd9215f1ba042
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Oct 23 15:41:22 2015 +0100

    Implement buffer creation from shared pointer

commit f370e18c5105a194901c4f577cb18c09b9749640
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Fri Oct 23 15:10:34 2015 +0100

    Synchronize buffer comments with specification and cleaning
    
    Add \todo on specification.
    Remove useless code.
    Improve asserts on get_access().

commit d035c13503b3adf6d34c526be18e45cbad732ecd
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Thu Oct 22 05:10:01 2015 +0100

    Implement buffer creation from unique pointer

commit a4032a46961dfed185a95927203c3acc5e3a6946
Merge: 0b034c6 820a814
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Fri Oct 16 23:48:29 2015 +0200

    Merge remote-tracking branch 'upstream/master'

commit 0b034c66cce02805700f401ed8b12f63a25bf4d2
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Fri Oct 16 23:46:59 2015 +0200

    More generic version of stencil DSEL, new example with complex type

commit c87e585c33732d0226faa405f45e31d2b94abb6b
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Thu Oct 15 22:55:08 2015 +0200

    A more generic version of var stencils seems to be slower, the old one is used by default

commit 820a814cfeafdc561bf9ddf8045664bd1779720a
Author: Ronan Keryell <ronan.keryell@xilinx.com>
Date:   Tue Oct 13 16:53:56 2015 +0100

    Implement buffer::set_final_data()
    
    Make also a slight change to the API to a weak_ptr by value instead of
    by reference.

commit cde8e5e61a7804db30cc914479afefafd454dd2c
Author: Ronan Keryell <rkeryell@xilinx.com>
Date:   Mon Oct 12 19:31:14 2015 +0100

    Update some test cases to pass in TRISYCL_DEBUG mode too
    
    Accept some debug messages between values.

commit 0e0c280dd5a9d71e2b7f8a446daed5b16c1b926b
Author: Ronan Keryell <rkeryell@xilinx.com>
Date:   Sat Oct 10 15:57:57 2015 +0100

    Add initialization of pointer with address space from address of an element of the same type and address type
    
    Fix a bug in the test case related to access through unitilialized pointer.

commit e4a4959c582dc3001c1af1c2ce88c5444aa29c23
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Sep 29 15:32:10 2015 +0200

    Simplify parallel vector add example to fit better in a single slide

commit db95a20ab2acd8947605aeebcd690f862bad20d1
Merge: ded668b 1cf4668
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Mon Oct 12 18:59:22 2015 +0100

    Merge pull request #1 from ahonorat/master
    
    New stencil DSEL used by jacobi examples + new workitem OpenMP parallelisation paradigm
    
    
    
    Modifications:
    
        refactor jacobi examples;
        change workitem parallelisation to OpenMP tasks (one per workitem).
    
    New stuff:
    
        enhance jacobi examples with a stencil Domain Specific Embedded Language (DSEL) based on triSYCL.
    
    This DSEL is currently working on jacobi examples. It's a proof of concept to automatically translate stencils problems (as in Jacobi) to parallel code using only C++ features (mostly templates and auto keyword), so without developping a new compiler, neither modifying an existant one. The DSEL has been written at INRIA Bordeaux (french research institute), in the Storm team. The main goal is to hide parallelisation to the user.

commit 1cf46682f0dd0386d400d8dd7b627f4a16a5bf13
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sun Oct 11 17:01:43 2015 +0200

    Adding a stencil DSEL based on triSYCL, and used by jacobi test examples

commit 3bcaea609c8ab9566faf39c013726e53ba375944
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sun Oct 11 16:58:45 2015 +0200

    Refactor of jacobi test examples

commit ca5f200c1a4caa6e49a925faef94e37e4043927b
Author: Alexandre Honorat <alexandre.honorat@yahoo.fr>
Date:   Sun Oct 11 16:54:52 2015 +0200

    Change workitem parallelisation paradigm: now one OpenMP task is created for each workitem.

commit ded668b120cc1a0c504d469e064a39f1e24ceb77
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Fri Sep 25 13:19:05 2015 +0200

    Reorganize host platform files

commit dd1d6a797cec3add5b0f7b8b90281d23af9d80ac
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Fri Sep 25 13:08:10 2015 +0200

    Fix bugs when using SYCL platform with Boost.Compute OpenCL

commit 6db8e5087d19b45ed215eb164769d45548656ff1
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Fri Sep 25 12:08:21 2015 +0200

    Add a minimal SYCL event class stub to be able to compile with OpenCL

commit be87a852ca0de3bebb30612b29173f28218e3480
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Sep 22 20:58:20 2015 +0200

    Add inline to host platform info functions and improve test

commit b2a5915e1468959830e9c272802f0ce0d1b3a57f
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Sep 22 20:40:07 2015 +0200

    Implement host and OpenCL platform
    
    This is the first entrance of OpenCL into the project, based on Boost.Compute.
    For now just test the host platform implementation.

commit 00c873d280945e8abd4bd8284b8604983163fe0f
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Tue Sep 22 16:46:01 2015 +0200

    Update Boost.Compute URL

commit bf65c3754e2c331259295f499bc84ef590b55d71
Author: Ronan Keryell <ronan@keryell.fr>
Date:   Wed Sep 9 16:04:42 2015 +0200

    Update README
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants