DPC++ Runtime
Runtime libraries for oneAPI DPC++
group_local_memory.hpp
Go to the documentation of this file.
1 //==----- group_local_memory.hpp --- SYCL group local memory extension -----==//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 #pragma once
9 
12 
13 #include <type_traits>
14 
16 namespace sycl {
17 template <typename T, typename Group>
19  "use sycl::ext::oneapi::group_local_memory_for_overwrite instead")
21  std::is_trivially_destructible<T>::value && detail::is_group<Group>::value,
22  multi_ptr<T, access::address_space::local_space>> __SYCL_ALWAYS_INLINE
24  return sycl::ext::oneapi::group_local_memory_for_overwrite<T, Group>(g);
25 }
26 
27 template <typename T, typename Group, typename... Args>
28 __SYCL_DEPRECATED("use sycl::ext::oneapi::group_local_memory instead")
30  std::is_trivially_destructible<T>::value && detail::is_group<Group>::value,
31  multi_ptr<T, access::address_space::local_space>> __SYCL_ALWAYS_INLINE
32  group_local_memory(Group g, Args &&... args) {
33  return sycl::ext::oneapi::group_local_memory<T, Group, Args...>(
34  g, std::forward<Args>(args)...);
35 }
36 } // namespace sycl
37 } // __SYCL_INLINE_NAMESPACE(cl)
cl::sycl::ext::oneapi::group_local_memory
std::enable_if_t< std::is_trivially_destructible< T >::value &&sycl::detail::is_group< Group >::value, multi_ptr< T, access::address_space::local_space > > __SYCL_ALWAYS_INLINE group_local_memory(Group g, Args &&... args)
Definition: group_local_memory.hpp:47
__SYCL_DEPRECATED
#define __SYCL_DEPRECATED(message)
Definition: defines_elementary.hpp:47
spirv_vars.hpp
sycl
Definition: invoke_simd.hpp:68
cl::sycl::multi_ptr
Provides constructors for address space qualified and non address space qualified pointers to allow i...
Definition: atomic.hpp:33
cl::sycl::ext::oneapi::group_local_memory_for_overwrite
std::enable_if_t< std::is_trivially_destructible< T >::value &&sycl::detail::is_group< Group >::value, multi_ptr< T, access::address_space::local_space > > __SYCL_ALWAYS_INLINE group_local_memory_for_overwrite(Group g)
Definition: group_local_memory.hpp:30
__SYCL_ALWAYS_INLINE
#define __SYCL_ALWAYS_INLINE
Definition: defines_elementary.hpp:29
group_local_memory.hpp
cl
We provide new interfaces for matrix muliply in this patch:
Definition: access.hpp:13
cl::sycl::detail::is_group
Definition: type_traits.hpp:31
cl::sycl::access::address_space
address_space
Definition: access.hpp:45
std
Definition: accessor.hpp:2617
cl::sycl::detail::enable_if_t
typename std::enable_if< B, T >::type enable_if_t
Definition: stl_type_traits.hpp:24
__SYCL_INLINE_NAMESPACE
#define __SYCL_INLINE_NAMESPACE(X)
Definition: defines_elementary.hpp:12