|
__host__ constexpr __device__ | DynamicBuffer (T *p_data, ElementSpaceSize element_space_size) |
|
__host__ constexpr __device__ | DynamicBuffer (T *p_data, ElementSpaceSize element_space_size, T invalid_element_value) |
|
__host__ constexpr __device__ const T & | operator[] (index_t i) const |
|
__host__ constexpr __device__ T & | operator() (index_t i) |
|
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value||!is_native_type< X >(), bool >::type = false> |
__host__ constexpr __device__ auto | Get (index_t i, bool is_valid_element) const |
|
template<InMemoryDataOperationEnum Op, typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false> |
__host__ __device__ void | Update (index_t i, bool is_valid_element, const X &x) |
|
template<typename DstBuffer , index_t NumElemsPerThread> |
__host__ __device__ void | DirectCopyToLds (DstBuffer &dst_buf, index_t src_offset, index_t dst_offset, bool is_valid_element) const |
|
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value||!is_native_type< X >(), bool >::type = false> |
__host__ __device__ void | Set (index_t i, bool is_valid_element, const X &x) |
|
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false> |
__host__ __device__ void | AtomicAdd (index_t i, bool is_valid_element, const X &x) |
|
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false> |
__host__ __device__ void | AtomicMax (index_t i, bool is_valid_element, const X &x) |
|
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false>
__host__ __device__ void ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::AtomicAdd |
( |
index_t |
i, |
|
|
bool |
is_valid_element, |
|
|
const X & |
x |
|
) |
| |
|
inline |
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false>
__host__ __device__ void ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::AtomicMax |
( |
index_t |
i, |
|
|
bool |
is_valid_element, |
|
|
const X & |
x |
|
) |
| |
|
inline |
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<typename DstBuffer , index_t NumElemsPerThread>
__host__ __device__ void ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::DirectCopyToLds |
( |
DstBuffer & |
dst_buf, |
|
|
index_t |
src_offset, |
|
|
index_t |
dst_offset, |
|
|
bool |
is_valid_element |
|
) |
| const |
|
inline |
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value||!is_native_type< X >(), bool >::type = false>
__host__ constexpr __device__ auto ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::Get |
( |
index_t |
i, |
|
|
bool |
is_valid_element |
|
) |
| const |
|
inlineconstexpr |
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value||!is_native_type< X >(), bool >::type = false>
__host__ __device__ void ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::Set |
( |
index_t |
i, |
|
|
bool |
is_valid_element, |
|
|
const X & |
x |
|
) |
| |
|
inline |
template<AddressSpaceEnum BufferAddressSpace, typename T , typename ElementSpaceSize , bool InvalidElementUseNumericalZeroValue, AmdBufferCoherenceEnum coherence = AmdBufferCoherenceEnum::DefaultCoherence>
template<InMemoryDataOperationEnum Op, typename X , typename enable_if< is_same< typename scalar_type< remove_cvref_t< X >>::type, typename scalar_type< remove_cvref_t< T >>::type >::value, bool >::type = false>
__host__ __device__ void ck::DynamicBuffer< BufferAddressSpace, T, ElementSpaceSize, InvalidElementUseNumericalZeroValue, coherence >::Update |
( |
index_t |
i, |
|
|
bool |
is_valid_element, |
|
|
const X & |
x |
|
) |
| |
|
inline |