Update Kokkos library in LAMMPS to v2.7.24
This commit is contained in:
@ -136,6 +136,55 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void* get_shmem_aligned (const ptrdiff_t size, const ptrdiff_t alignment, int level = -1) const {
|
||||
if(level == -1)
|
||||
level = m_default_level;
|
||||
if(level == 0) {
|
||||
|
||||
char* previous = m_iter_L0;
|
||||
const ptrdiff_t missalign = size_t(m_iter_L0)%alignment;
|
||||
if(missalign) m_iter_L0 += alignment-missalign;
|
||||
|
||||
void* tmp = m_iter_L0 + m_offset * size;
|
||||
if (m_end_L0 < (m_iter_L0 += size * m_multiplier)) {
|
||||
m_iter_L0 = previous; // put it back like it was
|
||||
#ifdef KOKKOS_DEBUG
|
||||
// mfh 23 Jun 2015: printf call consumes 25 registers
|
||||
// in a CUDA build, so only print in debug mode. The
|
||||
// function still returns NULL if not enough memory.
|
||||
printf ("ScratchMemorySpace<...>::get_shmem: Failed to allocate "
|
||||
"%ld byte(s); remaining capacity is %ld byte(s)\n", long(size),
|
||||
long(m_end_L0-m_iter_L0));
|
||||
#endif // KOKKOS_DEBUG
|
||||
tmp = 0;
|
||||
}
|
||||
return tmp;
|
||||
} else {
|
||||
|
||||
char* previous = m_iter_L1;
|
||||
const ptrdiff_t missalign = size_t(m_iter_L1)%alignment;
|
||||
if(missalign) m_iter_L1 += alignment-missalign;
|
||||
|
||||
void* tmp = m_iter_L1 + m_offset * size;
|
||||
if (m_end_L1 < (m_iter_L1 += size * m_multiplier)) {
|
||||
m_iter_L1 = previous; // put it back like it was
|
||||
#ifdef KOKKOS_DEBUG
|
||||
// mfh 23 Jun 2015: printf call consumes 25 registers
|
||||
// in a CUDA build, so only print in debug mode. The
|
||||
// function still returns NULL if not enough memory.
|
||||
printf ("ScratchMemorySpace<...>::get_shmem: Failed to allocate "
|
||||
"%ld byte(s); remaining capacity is %ld byte(s)\n", long(size),
|
||||
long(m_end_L1-m_iter_L1));
|
||||
#endif // KOKKOS_DEBUG
|
||||
tmp = 0;
|
||||
}
|
||||
return tmp;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
template< typename IntType >
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ScratchMemorySpace( void * ptr_L0 , const IntType & size_L0 , void * ptr_L1 = NULL , const IntType & size_L1 = 0)
|
||||
|
||||
Reference in New Issue
Block a user