Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于在Windows环境下编译CUDA版本出现的问题和一些应该去标明环境的细节 #343

Open
XiaoQiu2451 opened this issue Sep 1, 2024 · 3 comments

Comments

@XiaoQiu2451
Copy link

花了大概两天的时间,终于把ChatGLM.cpp的CUDA环境编译成功了,我觉得应该要指出一些问题来
系统环境:
Windows 11 Pro
Python 3.10
CMake 3.30
CUDA 12.3 ->12.6

过程:
首先直接编译,注意到第一个问题就是在cmd下直接使用set CMAKE_ARGS="-DGGML_METAL=ON" 在cmd中的得到的是'"-DGGML_METAL=ON"'的str值
在setup.py 60line中并没有直接对item进行strip操作,导致传进cmake_args的参数是一个带有引号的参数,导致编译的时候不是按照cuda的版本编译的,应该修改

修改之后,注意到第二个问题是版本问题。README中没有提及,但是要编译CUDA版本,对CUDA要求至少是要12.4以上,所以我才从12.3版本升级到了12.6版本
这里插一个小插曲,应该是NVIDIA的锅。CUDA Toolkit没有正确处理MSBuildExtensions,导致出现No CUDA toolset found的错误。不知道这是个例问题还是版本问题。解决方法可以看https://stackoverflow.com/a/77085810

升级之后,注意到nvcc不支持flag -Wno-expansion-to-defined。这个是在CMakeList 11line出现的。作者标明了# suppress ggml warnings。具体我没怎么了解这个flag是否是版本差异还是OS差异,但至少在Windows下的CUDA 12.6版本是没有这个flag的。

在踩了这些坑之后总算是编译出来了,当然后面注意到GGML在疯狂的显示warning,应该和前面去除的flag有关,但至少能跑。还是希望作者能够出cuda的whl,不然整编译环境实在是不方便我们这些没有学习C++。

@XiaoQiu2451
Copy link
Author

打错了 是-DGGML_CUDA=ON

@HoneyWhiteCloud
Copy link

一样的过程,历经千辛万苦,但到编译chatglm.cpp的步骤时出现报错,实在不知道如何解决:
image
image

@HoneyWhiteCloud
Copy link

一样的过程,历经千辛万苦,但到编译chatglm.cpp的步骤时出现报错,实在不知道如何解决: image image

将编译GPU生成的build文件夹拷贝到临时文件夹后重新编译在CPU上的main.exe,能够正常运行,随后替换为译GPU生成的build文件夹重新拷贝到chatglm.cpp文件夹中并替换掉原先用于CPU的build文件夹后执行cmake -B build -DGGML_CUDA=ON && cmake --build build -j --config Release命令即可正常输出用于cuda的main.exe,但速度相比于CPU快不了多少。
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants