顺手记录了,其实这一篇看的意义不大,我加进去这个模块之后也感觉速度没啥区别

主要是这个

我先要把它也启用了,于是开始查询网页和ai的无聊找事之旅(纯属浪费时间)

各种设置参数没啥用,(类似上一篇的设置显卡算力),于是我就直接下了cutlass的源码,自己编译然后再把它编译到xformers里面

准备工作(已经编译了xformers,有的我就不再讲了)

1.安装pip依赖库:cmake

2.设置pip等命令为环境变量,不然每次都要写位置很麻烦

3.拉取cutlass源码

GitHub - NVIDIA/cutlass at dc4817921edda44a549197ff3a9dcf5df0636e7b

这个没有子模块,直接拉取就行,记得别放太深,不然文件位置太长编译时系统会报错

执行生成配置缓存

打开cutlass文件夹,创建一个build文件夹

然后在这个build文件夹里面打开cmd

参数详解(不然会有各种报错)

  -G "Visual Studio 17 2022" ^  # 指定 Visual Studio 2022 生成器
  -A x64 ^  # 目标架构为 x64
  -DCUTLASS_NVCC_ARCHS=120 ^  # 针对你的 GPU 架构(Ampere 架构用 80,H100 用 90,RTX 40 系列用 89)
  -DCUTLASS_ENABLE_TESTS=OFF ^  # 跳过测试编译(加快速度)
  -DCUTLASS_UNITY_BUILD_ENABLED=ON ^  # 启用统一编译(减少文件数量)
  -DCUTLASS_LIBRARY_OPERATIONS=conv2d,gemm ^  # 仅编译卷积和矩阵运算(可按需调整)
  -DCUTLASS_DEBUG_TRACE_LEVEL=0 ^  # 禁用调试日志
  -DCUDA_PATH="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8" ^  # 显式指定 CUDA 路径
  -DCMAKE_BUILD_TYPE=Release ^  # 生成 Release 版本(默认 Debug 较慢)
  -DCMAKE_INSTALL_PREFIX=C:\cutlass\install ^  # 安装目录(可选)

这里重要的参数有:设置算力,跳过测试(没有魔法又会报错),使用release版本

其他的看你需求加

执行命令


cmake .. -DCUTLASS_NVCC_ARCHS=120 -DCUTLASS_ENABLE_TESTS=OFF -DCUTLASS_UNITY_BUILD_ENABLED=ON --DCUDA_PATH="你的cuda位置" -DCMAKE_BUILD_TYPE=Release 

执行之后就会报错哈哈,因为cutlass源码不知道为啥又有问题,应该是会报错

重点在这里

ModuleNotFoundError: No module named library

找到报错的generator.py文件以及对应行,D:\cutlass\python\cutlass_library\generator.py查看一下

又是找不到对应的文件,但是明明就是有library.py文件在同级位置啊,不知道又抽风了,于是给generator.py文件加上指定位置就行,加上下面代码

path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
sys.path.insert(0,path)
sys.path.insert(0,'')
print('')   
print (sys.path)    //测试打印位置而已

再次执行之后就可以看到build文件夹里面出现CMakeCache.txt文件

我这里时完全编译好的,有这个文件基本就好了,如果失败了,重新执行的时候记得把build文件夹里面的文件清空,以免旧缓存会出现问题

开始编译

缓存文件生成好了,那就直接编译,执行命令(一样在build文件夹的cmd)

cmake --build . --config Release -j 8

执行需要挺长的时间,使用-j 8就是8核运行,如果你硬件可以还可以12,16

一般如上图,就完成了

配置lib库

我们要先找到cutlass.lib静态库和cutlass.dll动态库,在这个文件夹

D:\cutlass\build\tools\library\Release

然后配置path环境变量

并且确定include头文件的存在

D:\cutlass\build\include\cutlass

编译测试

按照上面的位置,找到D:\cutlass\build\tools\profiler\Release文件,里面有cutlass_profiler.exe文件,打开cmd,执行命令:

cutlass_profiler.exe --operation=gemm --m=1024 --n=1024 --k=1024 

会执行很多次,我懒得等,直接ctrl+C停下来看看结果

cutlass编译完成

编译到xformers轮子文件里面

既然cutlass弄好了,那就直接把它弄进xformers里面

强制指定cutlass模块

进入xformers源码目录准备编译,先设置参数,

set TORCH_CUDA_ARCH_LIST=12.0     (设置显卡算力)

set XFORMERS_ENABLE_FLASH_ATTENTION=1       (启用fa2)

set XFORMERS_ENABLE_CUTLASS=1   (启用ckf)

set CUTLASS_PATH=“D:\cutlass\build“      (添加模块路径)

编译xformers

pip wheel . --wheel-dir=./dist --no-deps -v

之后删除原有的xformers,再用新的wheel文件安装即可,然后查询

python -m xformers.info

可以看到已经添加进去了,虽然不知道有啥用

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐