53 friend ::Arcane::Impl::HostKernelRemainingArgsHelper;
58 static_assert(std::is_trivially_copyable_v<T>,
"type T is not trivially copiable");
69 _addShareMemory(command);
74 _addShareMemory(command);
79 return { m_ptr, m_size.size() };
84#if defined(ARCANE_COMPILING_CUDA) || defined(ARCANE_COMPILING_HIP)
85 ARCCORE_DEVICE
void _internalExecWorkItemAtBegin(
Int32)
87 std::byte* begin = Impl::_getAcceleratorSharedMemory() + m_offset;
88 m_ptr =
reinterpret_cast<T*
>(begin);
90 ARCCORE_DEVICE
void _internalExecWorkItemAtEnd(
Int32){};
93#if defined(ARCANE_COMPILING_SYCL)
96 std::byte* begin = shm_view.
ptrAt(m_offset);
97 m_ptr =
reinterpret_cast<T*
>(begin);
102 void _internalHostExecWorkItemAtBegin()
104 m_ptr =
new T[m_size.size()];
106 void _internalHostExecWorkItemAtEnd()
124 m_offset = command._addSharedMemory(
static_cast<Int32>(
sizeof(T) * m_size.size()));
Classe pour appliquer la finalisation pour les arguments supplémentaires.