@@ -124,9 +124,6 @@ unoptimized_destroy(ExecutionPolicy&& policy, Iterator first, Iterator last)
124124 destroy_functor<Iterator>(first));
125125}
126126
127- void
128- workaround_synchronize_managed_memory ();
129-
130127} // namespace stdgpu::detail
131128
132129template <typename T>
@@ -179,61 +176,6 @@ createHostArray(const stdgpu::index64_t count, const T default_value)
179176 return host_array;
180177}
181178
182- template <typename T>
183- T*
184- createManagedArray (const stdgpu::index64_t count, const T default_value, const Initialization initialize_on)
185- {
186- using Allocator = stdgpu::safe_managed_allocator<T>;
187- Allocator managed_allocator;
188-
189- T* managed_array = stdgpu::allocator_traits<Allocator>::allocate (managed_allocator, count);
190-
191- if (managed_array == nullptr )
192- {
193- printf (" createManagedArray : Failed to allocate array. Aborting ...\n " );
194- return nullptr ;
195- }
196-
197- switch (initialize_on)
198- {
199- #if STDGPU_DETAIL_IS_DEVICE_COMPILED
200- case Initialization::DEVICE:
201- {
202- stdgpu::uninitialized_fill (stdgpu::execution::device,
203- stdgpu::device_begin (managed_array),
204- stdgpu::device_end (managed_array),
205- default_value);
206- }
207- break ;
208- #else
209- case Initialization::DEVICE:
210- {
211- // Same as host path
212- }
213- [[fallthrough]];
214- #endif
215-
216- case Initialization::HOST:
217- {
218- stdgpu::detail::workaround_synchronize_managed_memory ();
219-
220- stdgpu::uninitialized_fill (stdgpu::execution::host,
221- stdgpu::host_begin (managed_array),
222- stdgpu::host_end (managed_array),
223- default_value);
224- }
225- break ;
226-
227- default :
228- {
229- printf (" createManagedArray : Invalid initialization device. Returning created but uninitialized array "
230- " ...\n " );
231- }
232- }
233-
234- return managed_array;
235- }
236-
237179template <typename T>
238180void
239181destroyDeviceArray (T*& device_array)
@@ -275,21 +217,6 @@ destroyHostArray(T*& host_array)
275217 host_array = nullptr ;
276218}
277219
278- template <typename T>
279- void
280- destroyManagedArray (T*& managed_array)
281- {
282- using Allocator = stdgpu::safe_managed_allocator<T>;
283- Allocator managed_allocator;
284-
285- // Call on host since the initialization place is not known
286- stdgpu::allocator_traits<Allocator>::deallocate_filled (stdgpu::execution::host,
287- managed_allocator,
288- managed_array,
289- stdgpu::size (managed_array));
290- managed_array = nullptr ;
291- }
292-
293220template <typename T>
294221T*
295222copyCreateDevice2HostArray (const T* device_array, const stdgpu::index64_t count, const MemoryCopy check_safety)
@@ -565,33 +492,6 @@ safe_host_allocator<T>::deallocate(T* p, index64_t n)
565492 memory_type);
566493}
567494
568- template <typename T>
569- template <typename U>
570- safe_managed_allocator<T>::safe_managed_allocator([[maybe_unused]] const safe_managed_allocator<U>& other) noexcept
571- {
572- }
573-
574- template <typename T>
575- [[nodiscard]] T*
576- safe_managed_allocator<T>::allocate(index64_t n)
577- {
578- T* p = static_cast <T*>(
579- detail::allocate (n * static_cast <index64_t >(sizeof (T)), memory_type)); // NOLINT(bugprone-sizeof-expression)
580- register_memory (p, n, memory_type);
581- return p;
582- }
583-
584- template <typename T>
585- void
586- safe_managed_allocator<T>::deallocate(T* p, index64_t n)
587- {
588- deregister_memory (p, n, memory_type);
589- // NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
590- detail::deallocate (static_cast <void *>(const_cast <std::remove_cv_t <T>*>(p)),
591- n * static_cast <index64_t >(sizeof (T)), // NOLINT(bugprone-sizeof-expression)
592- memory_type);
593- }
594-
595495template <typename Allocator>
596496typename allocator_traits<Allocator>::pointer
597497allocator_traits<Allocator>::allocate(Allocator& a, typename allocator_traits<Allocator>::index_type n)
0 commit comments