首页 > 解决方案 > CUDA for pytorch:CUDA C++ 流和状态

问题描述

我正在尝试遵循本教程并使用 CUDA 后端制作一个简单的 c++ 扩展。
我的 CPU 实现似乎工作正常。

我很难找到示例和文档(似乎事情在不断变化)。

具体来说,

  1. 我看到 pytorch cuda 函数得到THCState *state参数 - 这个参数来自哪里?我怎样才能获得state我的功能呢?
    例如,在 cuda 实现中tensor.cat

    void THCTensor_(cat)(THCState *state, THCTensor *result, THCTensor *ta, THCTensor *tb, int dimension)
    

    但是,当tensor.cat()从 python one 调用时不提供任何state参数,pytorch 在“幕后”提供它。pytorch 如何提供此信息以及如何获取它?

  2. state然后转换为cudaStream_t stream = THCState_getCurrentStream(state);
    出于某种原因,THCState_getCurrentStream不再定义?我怎样才能stream从我的state?

我还尝试在pytorch论坛上提问 - 到目前为止无济于事。

标签: c++cudapytorch

解决方案


它已被弃用(没有文档!)请参见此处: https ://github.com/pytorch/pytorch/pull/14500

简而言之:使用at::cuda::getCurrentCUDAStream()


推荐阅读