Release Notes

This guide was created for versions: v1.0.0 - Latest

  • v1.0.0
      • Compiler/Runtime
        • Feature
        • [SYCL 1.2.1] Runtime now conforms to SYCL 1.2.1 revision 3 spec.
        • Improvement
        • Warnings added for locally defined types
        • Bug Fixes
        • Various minor device compiler and runtime fixes
  • v0.9.1
      • Compiler/Runtime
        • Feature
        • [SYCL 1.2.1] Runtime now follows SYCL 1.2.1 revision 3 spec.
        • Bug Fix
        • Various minor device compiler and runtime fixes:

          size_t group::get_linear() replaced with:
          size_t group::get_linear_id()

          range nd_range::get_local() size_t nd_range::get_local(int dimension) replaced with:
          range nd_range::get_local_range() size_t nd_range::get_local_range(int dimension)

          range nd_range::get_group() size_t nd_range::get_group(int dimension) replaced with:
          range nd_range::get_group_range() size_t nd_range::get_group_range(int dimension)

          range nd_range::get_global() size_t nd_range::get_global(int dimension) replaced with:
          range nd_range::get_global_range() size_t nd_range::get_global_range(int dimension)

          id nd_item::get_num_groups() size_t nd_item::get_num_groups(int dimension) replaced with:
          range nd_item::get_group_range() size_t nd_item::get_group_range(int dimension)

          id nd_item::get_local() size_t nd_item::get_local(int dimension) replaced with:
          id nd_item::get_local_id() size_t nd_item::get_local_id(int dimension)

          id nd_item::get_global() size_t nd_item::get_global(int dimension)replaced with:
          id nd_item::get_global_id() size_t nd_item::get_global_id(int dimension)

  • v0.9.0
      • Compiler/Runtime
        • Feature
        • Candidate version for SYCL 1.2.1 conformance, all features and API implemented
        • Improvement
        • Clang version bumped to 6.0
        • Improvement
        • Improvements to scheduler thread locking strategy increasing performance in low-power CPUs.
        • Improvement
        • Improvements to compiler driver to enable cross-compilation support
        • Bug Fix
        • Various minor device compiler fixes
        • Bug Fix
        • Fixed: Event profile information for kernel can now be queried inmediatly after a command group submission
        • Bug Fix
        • Fixed: Accessor range incorrect when using offsets
  • v0.8.0
      • Compiler/Runtime
        • Feature
        • Vector classes fully conformant to the 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Major updates to built-in functions towards conformance 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Stream class changes to match SYCL 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Interop constructor for buffers now match SYCL 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Fully implemented 1.2.1 specification requirements for by-value and by-reference semantics
        • Feature
        • [SYCL 1.2.1] Implemented buffer::set_write_back according to SYCL 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Implemented buffer::h_item according to SYCL 1.2.1 specification
        • Bug Fix
        • Numerous minor runtime fixes
        • Bug Fix
        • Various minor device compiler fixes
  • v0.7.0
      • Compiler/Runtime
        • Feature
        • [SYCL 1.2.1] Stream class changes to match 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] is_sub_buffer method added to API
        • Feature
        • [SYCL 1.2.1] has_property and get_property support added for public queue interface
        • Feature
        • [SYCL 1.2.1] Missing pointer class functions added
        • Feature
        • [SYCL 1.2.1] event get_profiling_info implemented
        • Feature
        • [SYCL 1.2.1] trasform_swizzel functions added
        • Improvement
        • Minor improvements to scheduler
        • Bug Fix
        • Race condition in program and kernel cache fixed
        • Bug Fix
        • Various minor device compiler fixes
  • v0.6.1
      • Compiler/Runtime
        • Feature
        • [SYCL 1.2.1 REMOVALS] Get_access host_buffer and target parameters removals
        • Feature
        • [SYCL 1.2.1 DEPRECATIONS] Buffer accessor interface - order of offest and range deprecations.
        • Feature
        • [SYCL 1.2.1] Atomic class changes to match 1.2.1 specification
        • Feature
        • [SYCL 1.2.1] Exception types implemented for logging
        • Feature
        • [SYCL 1.2.1] Introduced support for image array accessors
        • Feature
        • [SYCL 1.2.1] Missing pointer class functions added
        • Feature
        • [SYCL 1.2.1] Not_Null implemented
        • Feature
        • [SYCL 1.2.1] Vector Hi, Lo, Odd, and Even methods for vec
        • Improvement
        • Minor improvements to scheduler
        • Bug Fix
        • Exception class now uses size_type
        • Feature
        • Various minor device compiler fixes
  • v0.6.0
      • Compiler/Runtime
        • Feature
        • Implemented buffer reinterpret: creates a new view of the same buffer with a different underlying type
        • Feature
        • Program, kernel, context get_info method now return SYCL objects as per specification
        • Feature
        • Updated context and kernel interface to match 1.2.1
        • Feature
        • Deprecated Kernel interop constructor in favour of new syntax
        • Feature
        • Template argument of various classes is now defaulted to 1
        • Improvement
        • Vectors can now reliably take swizzles on the right hand side of an expression and is not restricted to cl_* alias types
        • Improvement
        • Added remaining cl_half builtins
        • Bug Fix
        • Various minor device compiler fixes, including 64/32 bit
  • v0.5.1
      • Compiler/Runtime
        • Feature
        • [SYCL 1.2.1] Added functions to group and item classes as per specification.
        • Improvement
        • Error message clarification for host out of memory
        • Bug Fix
        • Various minor device compiler fixes
  • v0.5.0
      • Compiler/Runtime
        • Feature
        • Bumped SYCL interface to SYCL 1.2.1, see the relevant announcement in http://sycl.tech
        • Feature
        • [SYCL 1.2.1] All the copy functions are now SYCL core functionality hence move from the codeplay namespace to cl::sycl
        • Feature
        • [SYCL 1.2.1] Buffer/Image properties for use_host_pointer, context_bound and use_mutex
        • Feature
        • [SYCL 1.2.1] Complete device and host SYCL vector interface (cl::sycl::vec)
        • Feature
        • [SYCL 1.2.1] Implemented simple vector swizzles (e.g vec.abc())
        • Feature
        • [compute++] New -sycl-target option to specify the target of the binary
        • Feature
        • [compute++] Added -fsycl-ih-last option which forces inclusion of the integration header at the end of the translation unit.
        • Improvement
        • Performance improvements for applications using large number of command groups
        • Improvement
        • Performance improvements when dispatching multiple short-lived kernels to a device
        • Bug Fix
        • Fixed sporadic deadlock that appeared in TensorFlow test suite
        • Bug Fix
        • Fixed multiple bugs on the vector interface
        • Bug Fix
        • Various minor device compiler fixes
  • v0.4.0
      • Compiler/Runtime
        • Feature
        • New ComputeCpp unified driver to simplify build process (using a single compiler call).
        • Feature
        • Added experimental support for PTX generation.
        • Improvement
        • Accelerator devices are now reported also during device selection.
        • Improvement
        • Various minor device compiler fixes.
  • v0.3.3
      • Compiler/Runtime
        • Feature
        • Added ARM support for OpenCL SPIR or SPIR-V enabled devices.
        • Feature
        • The SYCL explicit copy operations on command groups now support fall-back queue.
        • Improvement
        • Improved error reporting when kernels fails to execute.
        • Improvement
        • Reduced execution time when multiple command groups are enqueued to the same OpenCL queue.
        • Improvement
        • Reduced overall latency of SYCL command group submission.
        • Bug Fix
        • Various bug fixes for command groups with fall-back execution.
  • v0.3.2
      • Compiler/Runtime
        • Feature
        • Added ranged get_access method to buffer.
        • Feature
        • Added a method to retrieve the get_allocator from the buffer.
        • Improvement
        • Reduced the number of OpenCL build program calls
        • Improvement
        • Improved error message for address-space resolution
        • Improvement
        • Improved error for placeholder accessor in parameters
        • Improvement
        • Improved ranged copy functions to and from device
        • Improvement
        • Improved error reporting when building kernels
        • Bug
        • Various Windows bug fixes
        • Bug
        • Added missing const to vstore method
        • Bug
        • Size method of range is now marked as const
        • Bug
        • Get device method of the queue is now const
        • Bug
        • Several bug fixes in the compiler
  • v0.3.1
      • Compiler
        • Improvement
        • Several improvements on placeholder accessor support
        • Bug
        • Fixed: Copy functions now work with ranged accessors
        • Bug
        • Fixed: Copy constructor of placeholder accessor no longer
  • v0.3.0
      • Compiler
        • Feature
        • Compute++ now based on clang/llvm 3.9.
        • Feature
        • Added support for vload/vstore functions (See CP007 https://github.com/codeplaysoftware/standards-proposals).
        • Feature
        • Updated syntax of update_to functions to match latest CP001 status https://github.com/codeplaysoftware/standardsproposals.
        • Feature
        • Experimental - Added SPIR-V generation support.
        • Feature
        • Experimental - Added Default placeholder constructor (See https://github.com/codeplaysoftware/standardsproposals/pull/18).
        • Improvement
        • Removed dependencies on C headers.
        • Bug
        • Some combinations of OpenCL builtins were not available (select, min/max, vload, …).
      • Runtime
        • Feature
        • ComputeCpp Package supports Visual Studio 2015 and above.
  • v0.2.1
      • Compiler
        • Improvement
        • Extracted the bind functionality of the initialize method in accessor detail.
        • Improvement
        • Converted the stream class delimiters to static const char arrays.
        • Improvement
        • Added computeCpp Configuration File.
        • Improvement
        • Ranged Accessors improvements and update_to/from device.
        • Improvement
        • Integrate PointerMapper in scheduler.
        • Improvement
        • Implemented a placeholder accessor type.
        • Improvement
        • Host Accessor to use map/unmap instead of clEnqueue.
        • Bug
        • Removed exception throwing in public header file.
  • v0.2.0
      • Compiler
        • Improvement
        • Added support for 16.04 Ubuntu.
        • Improvement
        • Various compiler fixes.
        • Bug
        • Several host fixes for the program class.
        • Bug
        • Minor Buffer/Subbuffer error code corrections.
  • v0.1.4
      • Tools
        • Improvement
        • Computecpp_info now prints a link to platform support notes: https://computecpp.codeplay.com/releases/latest/ platform-support-notes.
        • Improvement
        • Added CL_DEVICE_VERSION to computecpp_info verbose output.
        • Bug
        • Fixed target parsing for computecpp_info so that now all devices in the system are properly displayed.
        • Bug
        • Computecpp_info no longer reports Intel CPU devices without SSE4.1 support as 'Tested'.
      • Runtime
        • Improvement
        • Performance optimizations relating to long running programs with many buffers.
      • Compiler
        • Improvement
        • Added attributes as presented in section 5.7 of the specification are now handled by the compiler.
        • Improvement
        • Various compiler fixes.
  • v0.1.3
      • Runtime
        • Feature
        • Added Codeplay host task API extension (See Standards proposals CE01).
        • Feature
        • Added Codeplay command group API extensions update_from_device and update_to_device (See Standards proposals CE01). Versions of these methods that take an iterator have not yet been implemented.
        • Improvement
        • Improved behaviour when SIGINT is triggered to avoid crashing underlying OpenCL implementation whenever possible.
        • Bug
        • Default constructor for SYCL event created incorrect OpenCL object.
      • Compiler
        • Feature
        • As requested by various users, the SPIR is not cyphered anymore. This enables writing extra compiler passes that work on top of the SPIR produced by ComputeCpp.
        • Improvement
        • Variadic Length Arrays (VLA) are now reported as errors in SYCL device kernels.
        • Bug
        • Several device compiler bug-fixes.
      • Tools
        • Improvement
        • Computecpp_info now returns error code when error occurs.
  • v0.1.2
      • Runtime
        • Feature
        • Basic extensions support enabled.
        • Improvement
        • Improved handling of SIGINT.
        • Info
        • Added the info::gl_context_interop flag to the context constructors.
      • Compiler
        • Improvement
        • Improved device compiler speed.
        • Improvement
        • The device compiler will now warn if an undefined function is used inside a SYCL kernel.
        • Bug
        • Fixed issues related to SPIR module conformance.
        • Bug
        • Various compiler fixes.
        • Info
        • --sycl-no-diags is now deprecated and will be removed in the next release.
      • Tool
        • Improvement
        • Device support status now reported as tested/untested/unsupported in computecpp_info.
        • Info
        • Removed the --all flag from computecpp_info.
  • v0.1.1
      • Compiler
        • Bug
        • Various TensorFlow specific bug fixes.
        • Bug
        • Various performance improvements based on user feedback.
        • Info
        • SYCL_DEVICE_ONLY is now defined by device compiler.
      • Runtime
        • Bug
        • Fix for relying on the OpenCL-platform default local workgroup size when user does not provide a local workgroup side on the parallel for call.