用git工具将lmdeploy 工程源码clone到本地
git clone https://github.com/InternLM/lmdeploy.git
刚开始我也不知道如何编译这个源码,在网上搜到了cmake .. -G "Visual Studio 17 2022" -A x64
提示缺少CUDA toolset,于是接下来安装cuda,在桌面点击右键->弹出右键菜单栏->显示更多选项->NCIDIA控制面板->系统信息
点击组件一栏
可以看到显示的cuda是12.8版本,然后到官网下载对应版本的toolkit
选择对应的版本进行下载,下载完成后进行安装
没想到最后安装失败了,猜测和显卡驱动版本有关,于是将显卡的驱动更新到最新版本,后面用最新版本的驱动跑算法也应该会更好吧。
到官网下载一个最新的驱动并安装
安装完成后,重新下载对应版本的cuda进行安装,顺便把cudnn也安装了
安装成功后,在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\extras\demo_suite 打开命令窗口,输入.\bandwidthTest.exe
说明安装成功了,这时候在重新回来编译lmdeploy
这时候提示pybind11 没有找到,通过pip3 install pybind11安装后,重新编译还是一样的问题,因为把python 装在了C:\Program Files\Python312,可能有些权限的问题,于是把python 卸载了,重新按照到user目录下,pybind11 没有找到的问题就解决了。
后面有出现了其他的编译错误,比如target_compile_features(LlamaTritonBackend PRIVATE cxx_std_14) 提示no known features for CXX compiler。
前面编译的问题折腾了很久,后面才发现在源码的目录下就有window 上编译的命令示例,在builder\windows\README.md
于是查看脚本里面是什么内容,-T 后面指定了工具版本,Visual Studio 2019 对于的是V142,Visual Studio 2022是143.
通过Visual Studio 可以查看到平台工具集的版本,用Visual Studio Installer 下载了v142版本的工具集,然后重新编译
执行脚本后,发现会一直卡着不动了,总感觉还有错误没有解决导致卡主了,等了半个小时,既没有报错也没有提示任何错误,使用cmake-gui去配置,也是一样的现象,打印上面的提示后一直不动,既然不没有错误,会不会有可能卡在等待某些资源上,于是打开CMakeLists.txt查看一下(如果实在看不出来是卡在哪里,可以在里面加message来输出提示)。
然后发现CMakeLists.txt 还有依赖从github下载第三方源码编译的行为,而从github下载源码很慢导致卡着很久,解决办法是提前将源码下载到本地,然后修改CMakeLists.txt指向本地的路径。
cmake --build . --config Release -- /m
最后把lmdeploy编译成功