将函数元素应用于 Pytorch CUDA 张量的并行方式

Posted

技术标签:

【中文标题】将函数元素应用于 Pytorch CUDA 张量的并行方式【英文标题】:Parallel way of applying function element-wise to a Pytorch CUDA Tensor 【发布时间】:2017-11-10 00:09:56 【问题描述】:

假设我有一个 Torch CUDA 张量,我想应用一些函数,例如 sin(),但我已经明确定义了函数 F。如何使用并行计算在 Pytorch 中应用 F

【问题讨论】:

你能详细说明这个问题吗?是否要在 GPU 中执行用户定义的F 【参考方案1】:

我认为目前,不可能在 CUDA-Tensor 上显式并行化函数。一个可能的解决方案是,您可以定义一个函数,例如非线性激活函数。所以你可以通过网络和你的函数来反馈它。

缺点是,它可能不起作用,因为你必须定义一个 CUDA-Function 并且必须重新编译 pytorch。

【讨论】:

谢谢。经过进一步探索,我的解决方案是直接使用 cuda 库并对 gpu 内核进行编程。我也觉得这在 Pytorch 或 Tensorflow 中是不可能的。 不幸的是,目前你必须自己实现它。 @abhinav-singh 你能回答你自己的问题来展示你是如何做到的吗?我想实现类似的功能。

以上是关于将函数元素应用于 Pytorch CUDA 张量的并行方式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pytorch 中检查张量是不是在 cuda 上?

为啥 PyTorch nn.Module.cuda() 不移动模块张量而只移动参数和缓冲区到 GPU?

PyTorch从入门到精通100讲-PyTorch张量从概念到应用

pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法

pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法

pytorch张量torch.Tensor类型的构建与相互转换以及torch.type()和torch.type_as()的用法