跳转至

ev-stdexec-pmr-gpu-resource-002

字段 值
项目 NVIDIA/stdexec
固定 commit 6d7ad689f4d4
路径 include/nvexec/detail/memory.cuh
行段 L177-L191
特性 多态内存资源(std::pmr)
许可证 Apache-2.0
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-26
测试代码 否
发现方式 manual

用法

用 std::pmr::memory_resource 封装 cudaMalloc 的 GPU 内存

为什么典型

同一抽象可同时覆盖主机、固定页与设备内存,调用方只持有 memory_resource 指针。

摘录

  struct gpu_resource : public std::pmr::memory_resource
  {
    gpu_resource() noexcept = default;

    auto do_allocate(std::size_t const bytes, std::size_t const /* alignment */) -> void* override
    {
      void* ret;

      if (cudaError_t status = STDEXEC_LOG_CUDA_API(cudaMalloc(&ret, bytes)); status != cudaSuccess)
      {
        throw std::bad_alloc();
      }

      return ret;
    }

备注

生产路径;gpu_resource 与 pinned_resource 共享同一分配接口。

查看固定 commit 源码 · 返回证据索引