Releases: intel/llvm
Releases · intel/llvm
oneAPI DPC++ Compiler 2022-12
New features
SYCL Compiler
- Added support for per-object device code compilation under the option
-fno-sycl-rdc
. This improves compiler performance and reduces memory usage,
but can only be used if there are no cross-object dependencies. [f884993] - Added support for per-aspect device code split mode. [9a2c4fe]
- Extended support for the large GRF mode to non-ESIMD kernels. [9994934]
[ab2a42c] - Implemented the
sycl_ext_intel_device_architecture
extension. [0e32a28] [b59d93c] [5bd5c87] [e5de913] - Implemented the
sycl_ext_oneapi_kernel_properties
experimental extension. [332e4ee] [27454de] [70ee3d5] [430c722] - Added support for generic address space atomic built-ins to CUDA libclc.
[d6a8fd1]
SYCL Library
- Implemented accessor member functions
swap
,byte_size
,max_size
and
empty
. [f1f907a] - Implemented SYCL 2020 default accessor constructor. [04928f9]
- Implemented SYCL 2020 accessor iterators. [5b9fd3c] [c7b1a00]
- Changed
value_type
of read-only accessors toconst
in accordance with
SYCL 2020. [227614c] - Implemented SYCL 2020
multi_ptr
andaddress_space_cast
. [8700b76]
[483984a] [4a9e9a0] - Implemented SYCL 2020
has_extension
free functions. [7f1a6ef] - Implemented SYCL 2020
aspect_selector
. [c0a4a56] - Implemented new SYCL 2020 style FPGA selectors. [0417651]
- Implemented SYCL 2020 default
async_handler
behavior. [cd93d8f] - Implemented SYCL 2020
is_compatible
free function. [67f6bba] - Implemented queue shortcut functions with placeholder accessors. [5ee066e]
- Added support for creating a kernel bundle with descendent devices of the
passed context's members. [a782779] - Implemented non-blocking destruction and deferred release of memory objects
without attached host memory. [894ce25] - Implemented the
sycl_ext_oneapi_queue_priority
extension. [cdb09dc] - Implemented the
sycl_ext_oneapi_user_defined_reductions
extension. [8311d79] - Implemented the
sycl_ext_oneapi_queue_empty
extension proposal. [c493295] - Implemented the
sycl_ext_oneapi_weak_object
extension. [d948427] [9297f63] - Implemented the
sycl_ext_intel_cslice
extension. The old behavior that exposed compute slices as sub-sub-devices is
now deprecated. For compatibility purposes, it can be brought back via the
SYCL_PI_LEVEL_ZERO_EXPOSE_CSLICE_IN_AFFINITY_PARTITIONING
environment
varible. [5995c618] - Implemented the
sycl_ext_intel_queue_index
extension. [d2ec964] [7179e83] - Implemented the
sycl_ext_oneapi_memcpy2d
extension. [516d411] - Implemented device ID, memory clock rate and bus width information queries
from thesycl_ext_intel_device_info
extension. [1d99344] [4f7787c] - Implemented
ext::oneapi::experimental::radix_sorter
from the
sycl_ext_oneapi_group_sort
extension proposal. [86ba180] - Implemented a new unified interface for the
sycl_ext_oneapi_matrix
extension for CUDA. [166bbc3] - Added support for sorting over sub-groups. [168767c]
- Added C++ API wrappers for the Intel math functions
ceil
,floor
,rint
,
sqrt
,rsqrt
andtrunc
. [1b7582b] - Implemented a SYCL device library for
bfloat16
Intel math function
utilities. [fc136d6] - Added support for range reductions with any number of reduction variables.
[572bc50] - Added support for reductions with kernels accepting
item
. [5d5e9f4] - Enabled sub-group masks for 64-bit subgroups. [10d50ed]
- Implemented the new non-experimental API for DPAS. [55bf1a0] [1e7a8ea]
- Added 8/16-bit type support to
lsc_block_load
andlsc_block_store
ESIMD
API. [f9d8059] - Implemented atomic operation support in the ESIMD emulator. [a6a0dea]
- Added various trivial utility functions for the
half
type. [b4ce7c0] - Added type cast functions between
half
andfloat
/integer types to
libdevice. [599b1b9] - Implemented the
ONEAPI_DEVICE_SELECTOR
environment variable that, in
addition to supportingSYCL_DEVICE_FILTER
syntax, allows to expose GPU
sub-devices as SYCL root devices and supports negative filters.
SYCL_DEVICE_FILTER
is now deprecated. [28d0cd3] [b21e74e] [77b6f34]
[6bd5f9c] [6aefd63] - Added the
SYCL_PI_LEVEL_ZERO_SINGLE_ROOT_DEVICE_BUFFER_MIGRATION
enviornment variable. [bd03e0d]
Documentation
- Added the
sycl_ext_oneapi_device_architecture
extension specification. [7f2b17e] - Added the
sycl_ext_oneapi_memcpy2d
extension specification. [296e9c3] - Added the
sycl_ext_oneapi_user_defined_reductions
extension specification. [cd4fd8c] - Added the
sycl_ext_oneapi_weak_object
extension specification. [d948427] - Added the
sycl_ext_oneapi_prod
extension proposal. [ed7cb4b] - Added the
sycl_ext_codeplay_kernel_fusion
extension proposal. [be3dfbd] - Added the
sycl_ext_intel_queue_index
extension proposal. [f5fb759] - Added the
sycl_ext_intel_cslice
extension proposal. [5777e1f] - Added the
sycl_ext_oneapi_group_sort
extension update proposal that introduced sorting functions with fixed-size arrays. [c6d1caf] - Added device ID, memory clock rate and bus width device information queries to the
sycl_ext_intel_device_info
extension. [1d99344][4f7787c]
Improvements
SYCL Compiler
- Added the
InferAddressSpaces
pass to the SPIR/SPIR-V compilation pipeline,
reducing the size of the generated device code. [a3ae0dd] - Redesigned pointer handling so that it no longer decomposes kernel argument
types containing pointers. [3916d3b] [d55e9c2] [9b02506] - Kernel lambda operator is now always inlined in the device code entry point
unless-O0
is used. [b91b732] [2359d94] - Improved entry point handling in the
sycl-post-link
tool. [53d9c7b] - The
reqd_work_group_size
attribute now works with 1, 2 or 3 operands.
[4ff42c3] - Enabled using
-fcf-protection
option with-fsycl
, which results in it
being applied only to host code compilation and producing a warning. [b6f61f6] - Linux based compiler driver on Windows now pulls in the
sycld
debug library
whenmsvcrtd
is specified as a dependent library. [ebf6c59] - Added
/Zc:__cplusplus
as a default option during host compilation with MSVC.
[e7ed860] - Improved the
ESIMDOptimizeVecArgCallConv
optimization pass to cover more IR
patterns. [4926454] - Added support for more types in ESIMD lsc functions. [d9e40ec]
- Added error diagnostics for using
sycl::ext::oneapi::experimental::annotated_arg/ptr
as a nested type.
[321c733] - The status of
bfloat16
support was changed from experimental to supported.
[7b47ebb]
SYCL Library
- Updated
online_compiler
with Gen12 GPU support. [adfb1c1] get_kernel_bundle
andhas_kernel_bundle
now check that the kernels are
compatible with the devices. [91b1515]- Waiting for an event associated with a kernel that uses a stream now also
waits for the stream to be flushed. [1db0e81] - Added the requested device type to the message of the exception thrown when no
such devices are found. [6b83ad7] - Optimized
operator[]
ofhost_accessor
. [01e60f7] - Improved reduction performance on discrete GPUs. [99bdc82]
- Added
invoke_simd
support for functions withvoid
return type. [3fd0850] - The Level Zero plugin now creates every event as host-visible by default.
[f3d245d] - Added Level Zero plugin support for global work sizes greater than
UINT32_MAX
as long as they are divisible by some legal work-group size and
the resulting quotient does not exce...
DPC++ daily 2023-02-08
[CI][OpenCL] Add code owner for OpenCL CPU RT (#8241) Add code owner for OpenCL CPU RT and SYCL transform folders.
OpenCL SVML libraries
SVML libraries for OpenCL CPU RT.
sha256 sums for packages:
-
4357d656787a667c3d7a10492d6046840d62e867daff6856a176fcd11ddaeeb8 ocl-svml-2022-lin.tar
-
c2fef677ed78fea5902f2575c9571740b8116f3658f8992d4711fa0be3b6f827 ocl-svml-2022-win32.zip
-
c9d58ee00ca724ed21ac30815d5acb38b3f178a0f4ebaea5e822265e807e928e ocl-svml-2022-win64.zip
DPC++ daily 2023-02-07
[OpenCL] Add support for cslice partitioning (#7963) Recently, an extension was added here: https://github.com/intel/llvm/pull/7513 This extension allows partitioning a device by "cslice" (aka CCS-es). With this change, on PVC sub-sub-devices now require info::partition_property::ext_intel_partition_by_cslice instead of info::partition_property::partition_by_affinity_domain that wasn't quite accurately describing the actual scheme. Level Zero backend support was added here: https://github.com/intel/llvm/pull/7626 In this change, we are adding support in OpenCL plugin. This change makes use of the cl_intel_command_queue_families recently added. Signed-off-by: Arvind Sudarsanam <arvind.sudarsanam@intel.com>
DPC++ daily 2023-02-06
[SYCL][Fusion][NFC] Fix warning in `FusionHelper.cpp` (#8207) Warning log: ``` /path/to/llvm/sycl-fusion/jit-compiler/lib/fusion/FusionHelper.cpp: In lambda function: /path/to/llvm/sycl-fusion/jit-compiler/lib/fusion/FusionHelper.cpp:136:11: warning: control reaches end of non-void function [-Wreturn-type] 136 | }(); | ``` Signed-off-by: Artem Gindinson <artem.gindinson@intel.com> Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
DPC++ daily 2023-02-04
[SYCL] Implement diagnostic for !access_mode::read + const T (#8169) According to [Read only accessors](https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#_read_only_accessors) A const qualified DataT is only allowed for a read-only accessor. This PR: - Implements Implement diagnostic for !access_mode::read + const T - Adds test to for above diagnostic - Updates affected tests. - Assigns access::mode:read to access mode of local accessor when the data type is constant. The previous value was access::mode:read, which lead to an assert after implementing above diagnostic.
DPC++ daily 2023-02-03
[SYCL][Clang] Fix annotations applied to integer fields (#8198) Due to incorrect conflict resolution between 8e13852c (intel/llvm customization) and https://reviews.llvm.org/D138722 clang started emitting annotations applied to integer class/struct fields incorrectly. Incorrect overload of llvm.ptr.annotation intrinsic was picked up and this resulted in invalid IR emission. This patch restores behavior introduced by 8e13852c. The existing test added for 8e13852c didn't catch the problem since it is modified upstream test `CodeGen/annotations-field.c` which doesn't test typed pointers.
DPC++ daily 2023-02-02
[SYCL] Fix error when size_t is used as enum base (#8162) "std::size_t" was emitted in the forward declaration of enum in integration header. This resulted in compilation errors about use of undeclared identifier "std". To fix this, builtin is resolved to integral type in forward declaration.
DPC++ daily 2023-02-01
[SYCL] Add generic fabs imp for bf16 (#8143) Signed-off-by: jinge90 <ge.jin@intel.com>
DPC++ daily 2023-01-31
[SYCL][HIP] Add basic HIP atomics (#8003) Adding support for basic atomic operations for HIP AMD backend. --------- Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>