19 #include <rmm/detail/error.hpp>
20 #include <rmm/detail/export.hpp>
22 #include <cuda_runtime_api.h>
27 namespace RMM_NAMESPACE {
29 struct cuda_device_id;
72 return lhs.value() == rhs.value();
82 [[nodiscard]] constexpr
friend bool operator!=(cuda_device_id
const& lhs,
83 cuda_device_id
const& rhs) noexcept
85 return lhs.value() != rhs.value();
102 RMM_ASSERT_CUDA_SUCCESS(cudaGetDevice(&dev_id));
114 RMM_ASSERT_CUDA_SUCCESS(cudaGetDeviceCount(&num_dev));
127 RMM_CUDA_TRY(cudaMemGetInfo(&free, &total));
128 return {free, total};
142 auto fraction =
static_cast<double>(percent) / 100.0;
143 return rmm::align_down(
static_cast<std::size_t
>(
static_cast<double>(free) * fraction),
159 needs_reset_{dev_id.value() >= 0 && old_device_ != dev_id}
161 if (needs_reset_) { RMM_ASSERT_CUDA_SUCCESS(cudaSetDevice(dev_id.
value())); }
168 if (needs_reset_) { RMM_ASSERT_CUDA_SUCCESS(cudaSetDevice(old_device_.value())); }
std::pair< std::size_t, std::size_t > available_device_memory()
返回当前设备的可用和总设备内存(字节)。
定义: cuda_device.hpp:123
cuda_device_id get_current_cuda_device()
返回当前设备的 cuda_device_id。
定义: cuda_device.hpp:99
int get_num_cuda_devices()
返回系统中的 CUDA 设备数量。
定义: cuda_device.hpp:111
std::size_t percent_of_free_device_memory(int percent)
返回当前 CUDA 设备上可用设备内存的大约指定百分比,...
定义: cuda_device.hpp:139
bool operator==(cuda_stream_view lhs, cuda_stream_view rhs)
流的相等比较运算符。
定义: cuda_stream_view.hpp:175
bool operator!=(cuda_stream_view lhs, cuda_stream_view rhs)
流的不等比较运算符。
定义: cuda_stream_view.hpp:187
static constexpr std::size_t CUDA_ALLOCATION_ALIGNMENT
用于 CUDA 内存分配的默认对齐方式。
定义: aligned.hpp:43
constexpr std::size_t align_down(std::size_t value, std::size_t alignment) noexcept
向下对齐到指定 2 次幂的最近倍数。
定义: aligned.hpp:91
CUDA 设备标识符的强类型。
定义: cuda_device.hpp:41
constexpr cuda_device_id(value_type dev_id) noexcept
从指定的整数值构造一个 cuda_device_id。
定义: cuda_device.hpp:54
cuda_device_id() noexcept
从当前设备构造一个 cuda_device_id。
定义: cuda_device.hpp:47
constexpr value_type value() const noexcept
包装的整数值。
定义: cuda_device.hpp:57
int value_type
用于设备标识符的整数类型。
定义: cuda_device.hpp:42
RAII 类,在构造时设置当前 CUDA 设备为指定设备并在析构时恢复...
定义: cuda_device.hpp:151
~cuda_set_device_raii() noexcept
重新激活之前的 CUDA 设备。
定义: cuda_device.hpp:166
cuda_set_device_raii(cuda_device_id dev_id)
构造一个新的 cuda_set_device_raii 对象并将当前 CUDA 设备设置为 dev_id
定义: cuda_device.hpp:157