torch.nn.attention.SDPBackend中各个后端有什么区别,分别代表什么意思?

问题描述 投票:0回答:1

SDPBackend 的 pytorch 文档中,有一些枚举可与上下文管理器一起使用,

错误:尝试确定后端时发生错误。
数学:缩放点积注意力的数学后端。
FLASH_ATTENTION:用于缩放点积注意力的 Flash 注意力后端。
EFFICIENT_ATTENTION:用于缩放点积注意力的高效注意力后端。
CUDNN_ATTENTION:用于缩放点积注意力的 cuDNN 后端。

它们是什么意思以及有何不同?

EFFICIENT ATTENTION 后端到底是什么?另一个是我在没有 GPU 的机器上检查了 torch.backends.cuda.flash_sdp_enabled() ,这是真的,但闪存注意力不是只适用于 GPU 并且它基于使用 GPU 缓存内存吗?高效注意力只是闪现注意力2吗?

python python-3.x pytorch
1个回答
0
投票

MATH
是pytorch C++注意力实现

FLASH_ATTENTION
是来自 flash 注意 论文

的注意力实现

EFFICIENT_ATTENTION
是来自 facebook xformers 库的实现

CUDNN_ATTENTION
是 Nvidia CuDNN 库的实现

您可以在此处

了解更多有关差异的信息
© www.soinside.com 2019 - 2024. All rights reserved.