文件 | 函数 | 变量
工具函数

文件

file  aligned.hpp
 
file  prefetch.hpp
 

函数

constexpr bool rmm::is_pow2 (std::size_t value) noexcept
 返回 value 是否为 2 的幂。 更多...
 
constexpr bool rmm::is_supported_alignment (std::size_t alignment) noexcept
 返回 alignment 是否为有效的内存对齐。 更多...
 
constexpr std::size_t rmm::align_up (std::size_t value, std::size_t alignment) noexcept
 向上对齐到指定 2 的幂的最近倍数。 更多...
 
constexpr std::size_t rmm::align_down (std::size_t value, std::size_t alignment) noexcept
 向下对齐到指定 2 的幂的最近倍数。 更多...
 
constexpr bool rmm::is_aligned (std::size_t value, std::size_t alignment) noexcept
 检查值是否对齐到指定 2 的幂的倍数。 更多...
 
bool rmm::is_pointer_aligned (void *ptr, std::size_t alignment=CUDA_ALLOCATION_ALIGNMENT) noexcept
 检查提供的指针是否对齐到指定的 alignment更多...
 
void rmm::prefetch (void const *ptr, std::size_t size, rmm::cuda_device_id device, rmm::cuda_stream_view stream)
 将内存预取到指定设备上的指定流中。 更多...
 
template<typename T >
void rmm::prefetch (cuda::std::span< T const > data, rmm::cuda_device_id device, rmm::cuda_stream_view stream)
 将一段内存预取到指定设备上的指定流中。 更多...
 

变量

static constexpr std::size_t rmm::RMM_DEFAULT_HOST_ALIGNMENT {alignof(std::max_align_t)}
 RMM 分配的主机内存使用的默认对齐方式。
 
static constexpr std::size_t rmm::CUDA_ALLOCATION_ALIGNMENT {256}
 CUDA 内存分配使用的默认对齐方式。
 

详细描述

函数文档

◆ align_down()

constexpr std::size_t rmm::align_down ( std::size_t  value,
std::size_t  alignment 
)
constexprnoexcept

向下对齐到指定 2 的幂的最近倍数。

参数
[in]value要对齐的值
[in]对齐字节数,必须是 2 的幂
返回
对齐后的值

◆ align_up()

constexpr std::size_t rmm::align_up ( std::size_t  value,
std::size_t  alignment 
)
constexprnoexcept

向上对齐到指定 2 的幂的最近倍数。

参数
[in]value要对齐的值
[in]对齐字节数,必须是 2 的幂
返回
对齐后的值

◆ is_aligned()

constexpr bool rmm::is_aligned ( std::size_t  value,
std::size_t  alignment 
)
constexprnoexcept

检查值是否对齐到指定 2 的幂的倍数。

参数
[in]value要检查对齐的值
[in]对齐字节数,必须是 2 的幂
返回
如果已对齐,则为 true

◆ is_pointer_aligned()

bool rmm::is_pointer_aligned ( void *  ptr,
std::size_t  alignment = CUDA_ALLOCATION_ALIGNMENT 
)
inlinenoexcept

检查提供的指针是否对齐到指定的 alignment

参数
[in]ptr要检查对齐的指针
[in]对齐所需的字节对齐,必须是 2 的幂
返回
如果指针已对齐,则为 true

◆ is_pow2()

constexpr bool rmm::is_pow2 ( std::size_t  value)
constexprnoexcept

返回 value 是否为 2 的幂。

参数
[in]value要检查的值。
返回
如果输入是非负整数指数的 2 的幂,则为 True,否则为 false。

◆ is_supported_alignment()

constexpr bool rmm::is_supported_alignment ( std::size_t  对齐)
constexprnoexcept

返回 alignment 是否为有效的内存对齐。

参数
[in]对齐要检查的值
返回
如果对齐有效,则为 True,否则为 false。

◆ prefetch() [1/2]

template<typename T >
void rmm::prefetch ( cuda::std::span< T const >  data,
rmm::cuda_device_id  device,
rmm::cuda_stream_view  stream 
)

将一段内存预取到指定设备上的指定流中。

如果缓冲区不由 CUDA 管理内存支持,则此函数为空操作。

异常
rmm::cuda_error如果预取失败。
参数
data要预取的内存段
device要预取到的设备
stream用于预取的流

◆ prefetch() [2/2]

void rmm::prefetch ( void const *  ptr,
std::size_t  size,
rmm::cuda_device_id  device,
rmm::cuda_stream_view  stream 
)

将内存预取到指定设备上的指定流中。

如果指针不是指向 CUDA 管理内存,则此函数为空操作。

异常
rmm::cuda_error如果预取失败。
参数
ptr指向要预取内存的指针
size要预取的字节数
device要预取到的设备
stream用于预取的流