19 #include <rmm/detail/export.hpp>
25 namespace RMM_NAMESPACE {
52 [[nodiscard]] constexpr
bool is_pow2(std::size_t value) noexcept
54 return (value != 0U) && ((value & (value - 1)) == 0U);
77 [[nodiscard]] constexpr std::size_t
align_up(std::size_t value, std::size_t alignment) noexcept
80 return (value + (alignment - 1)) & ~(alignment - 1);
91 [[nodiscard]] constexpr std::size_t
align_down(std::size_t value, std::size_t alignment) noexcept
94 return value & ~(alignment - 1);
105 [[nodiscard]] constexpr
bool is_aligned(std::size_t value, std::size_t alignment) noexcept
123 return is_aligned(
reinterpret_cast<std::uintptr_t
>(ptr), alignment);
static constexpr std::size_t CUDA_ALLOCATION_ALIGNMENT
CUDA 内存分配使用的默认对齐方式。
定义: aligned.hpp:43
constexpr bool is_aligned(std::size_t value, std::size_t alignment) noexcept
检查值是否按指定 2 的幂的倍数对齐。
定义: aligned.hpp:105
bool is_pointer_aligned(void *ptr, std::size_t alignment=CUDA_ALLOCATION_ALIGNMENT) noexcept
检查提供的指针是否按指定对齐方式对齐。
定义: aligned.hpp:119
static constexpr std::size_t RMM_DEFAULT_HOST_ALIGNMENT
RMM 分配的主机内存使用的默认对齐方式。
定义: aligned.hpp:37
constexpr bool is_supported_alignment(std::size_t alignment) noexcept
返回对齐方式是否为有效的内存对齐方式。
定义: aligned.hpp:64
constexpr std::size_t align_down(std::size_t value, std::size_t alignment) noexcept
向下对齐到指定 2 的幂的最近倍数。
定义: aligned.hpp:91
constexpr std::size_t align_up(std::size_t value, std::size_t alignment) noexcept
向上对齐到指定 2 的幂的最近倍数。
定义: aligned.hpp:77
constexpr bool is_pow2(std::size_t value) noexcept
返回值是否为 2 的幂。
定义: aligned.hpp:52