请教Windows下csrc/layer_norm安不上的问题。
我的环境是
win10 cuda-12.2
visualStudio2022最新版本
pytorch 2.1.0.dev20230805+cu121
16G内存 2080ti 22G显存
cd flash-attention && pip install .成功
pip install csrc/layer_norm失败
pip install csrc/rotary成功
我拉取并尝试了1.0.6、1.0.7、1.0.8、1.0.9版本的flash-attention代码,csrc/layer_norm安装失败的错误信息差不多:
flash-attention\csrc\layer_norm\ln_bwd_kernels.cuh(479): error C2975: “Has_colscale”:“layer_norm::Kernel_traits_finalize”的模板参数无效,应为编译时常量表达式
在github的issues里有一个类似的问题:https://github.com/Dao-AILab/flash-attention/issues/50
但是没有提供解决方案,有人安装成功了吗?我怀疑是我的cuda或是visualStudio版本原因,但我不确定应该更换到哪个版本。
另外,在仅rotary可用的情况下,并没有体验到明显的性能提升,仅四轮对话(300context len)的表现来看,都占用17G显存,生成速率在10token/s左右。
或许只有更长的对话才能体现flash-attention的优势吧,也可能是没有layer_norm导致的表现不显著。
flash attention好像官方没支持windows,不知道有没有什么其它的兼容性问题影响性能。
另外,Flash Attention v1 v2的测速结果在modelcard中有体现,可以比对下看看。
主要性能提升还是来自attention,那部分pytorch 2.1.1已经合进去了,提升不大也可能是正常的。
同问哈哈