diff --git a/src/core/cuda/unified_allocator.hh b/src/core/cuda/unified_allocator.hh index 97f4983..fad299b 100644 --- a/src/core/cuda/unified_allocator.hh +++ b/src/core/cuda/unified_allocator.hh @@ -1,52 +1,50 @@ /* * SPDX-License-Indentifier: AGPL-3.0-or-later * * Copyright (©) 2016-2022 EPFL (École Polytechnique Fédérale de Lausanne), * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) * Copyright (©) 2020-2022 Lucas Frérot * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ /* -------------------------------------------------------------------------- */ #ifndef UNIFIED_ALLOCATOR_HH #define UNIFIED_ALLOCATOR_HH /* -------------------------------------------------------------------------- */ #include "span.hh" #include #include /* -------------------------------------------------------------------------- */ namespace tamaas { /// Class allocating [unified /// memory](http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__MEMORY.html#group__CUDART__MEMORY_1gd228014f19cc0975ebe3e0dd2af6dd1b) template struct UnifiedAllocator { /// Allocate memory static span allocate(typename span::size_type n) noexcept { T* p = nullptr; cudaMallocManaged(&p, n * sizeof(T)); return p; } /// Free memory - static void deallocate(T* p, __attribute__((unused)) std::size_t n) { - cudaFree(p); - } + static void deallocate(span view) noexcept { cudaFree(p); } }; } // namespace tamaas #endif // UNIFIED_ALLOCATOR_HH