@@ -457,12 +457,12 @@ class tape_impl {
457457#endif
458458 }
459459
460- DiskInfo& getDiskInfo () {
460+ CUDA_HOST_DEVICE DiskInfo& getDiskInfo () {
461461 // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
462462 return *reinterpret_cast <DiskInfo*>(&m_state);
463463 }
464464
465- void check_and_evict_impl (std::true_type) {
465+ CUDA_HOST_DEVICE void check_and_evict_impl (std::true_type) {
466466 DiskInfo& info = getDiskInfo ();
467467 if (GpuOffload && info.m_ActiveVramSlabs >= info.m_MaxVramSlabs ) {
468468 Slab* candidate = m_head;
@@ -539,9 +539,9 @@ class tape_impl {
539539 }
540540 }
541541 }
542- void check_and_evict_impl (std::false_type) {}
542+ CUDA_HOST_DEVICE void check_and_evict_impl (std::false_type) {}
543543
544- void ensure_loaded_impl (Slab* slab, std::true_type) {
544+ CUDA_HOST_DEVICE void ensure_loaded_impl (Slab* slab, std::true_type) {
545545 DiskInfo& info = getDiskInfo ();
546546 if (GpuOffload) {
547547 // Already in host RAM — return immediately
@@ -604,14 +604,14 @@ class tape_impl {
604604 }
605605 }
606606
607- void ensure_loaded_impl (Slab* slab, std::false_type) {}
607+ CUDA_HOST_DEVICE void ensure_loaded_impl (Slab* slab, std::false_type) {}
608608
609- void check_and_evict () {
609+ CUDA_HOST_DEVICE void check_and_evict () {
610610 check_and_evict_impl (std::integral_constant < bool ,
611611 DiskOffload || GpuOffload > {});
612612 }
613613
614- void ensure_loaded (Slab* slab) {
614+ CUDA_HOST_DEVICE void ensure_loaded (Slab* slab) {
615615 ensure_loaded_impl (slab, std::integral_constant < bool ,
616616 DiskOffload || GpuOffload > {});
617617 }
@@ -923,8 +923,11 @@ class tape_impl {
923923 m_capacity = SBO_SIZE ;
924924 }
925925
926- template <typename ElTy> void destroy_element (ElTy* elem) { elem->~ElTy (); }
927- template <typename ElTy, size_t N> void destroy_element (ElTy (*arr)[N]) {
926+ template <typename ElTy> CUDA_HOST_DEVICE void destroy_element (ElTy* elem) {
927+ elem->~ElTy ();
928+ }
929+ template <typename ElTy, size_t N>
930+ CUDA_HOST_DEVICE void destroy_element (ElTy (*arr)[N]) {
928931 for (size_t i = 0 ; i < N; ++i)
929932 (*arr)[i].~ElTy ();
930933 }
0 commit comments