实用工具
- group Utilities
函数
-
constexpr bool is_pow2(std::size_t value) noexcept
返回
value
是否为 2 的幂。- 参数:
value – [in] 要检查的值。
- 返回值:
如果输入值是 2 的非负整数次幂,则返回 true,否则返回 false。
-
constexpr bool is_supported_alignment(std::size_t alignment) noexcept
返回
alignment
是否为有效的内存对齐。- 参数:
alignment – [in] 要检查的对齐值
- 返回值:
如果对齐值有效,则返回 true,否则返回 false。
-
constexpr std::size_t align_up(std::size_t value, std::size_t alignment) noexcept
向上对齐到指定的 2 的幂的最近倍数。
- 参数:
value – [in] 要对齐的值
alignment – [in] 对齐量(字节),必须是 2 的幂
- 返回值:
对齐后的值
-
constexpr std::size_t align_down(std::size_t value, std::size_2 alignment) noexcept
向下对齐到指定的 2 的幂的最近倍数。
- 参数:
value – [in] 要对齐的值
alignment – [in] 对齐量(字节),必须是 2 的幂
- 返回值:
对齐后的值
-
constexpr bool is_aligned(std::size_t value, std::size_t alignment) noexcept
检查值是否对齐到指定的 2 的幂的倍数。
- 参数:
value – [in] 要检查对齐的值
alignment – [in] 对齐量(字节),必须是 2 的幂
- 返回值:
如果对齐则返回 true
-
inline bool is_pointer_aligned(void *ptr, std::size_t alignment = CUDA_ALLOCATION_ALIGNMENT) noexcept
检查提供的指针是否对齐到指定的
alignment
。- 参数:
ptr – [in] 要检查对齐的指针
alignment – [in] 所需的字节对齐量,必须是 2 的幂
- 返回值:
如果指针对齐则返回 true
-
void prefetch(void const *ptr, std::size_t size, rmm::cuda_device_id device, rmm::cuda_stream_view stream)
将内存预取到指定设备上的指定流。
如果指针指向的不是 CUDA 管理内存,则此函数为空操作 (no-op)。
- 抛出:
rmm::cuda_error – 如果预取失败。
- 参数:
ptr – 要预取的内存指针
size – 要预取的字节数
device – 要预取到的设备
stream – 用于预取的流
-
template<typename T>
void prefetch(cuda::std::span<T const> data, rmm::cuda_device_id device, rmm::cuda_stream_view stream) 将一段内存 (span) 预取到指定设备上的指定流。
如果缓冲区不是由 CUDA 管理内存支持的,则此函数为空操作 (no-op)。
- 抛出:
rmm::cuda_error – 如果预取失败。
- 参数:
data – 要预取的内存段 (span)
device – 要预取到的设备
stream – 用于预取的流
-
constexpr bool is_pow2(std::size_t value) noexcept