-
Notifications
You must be signed in to change notification settings - Fork 333
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
Comments
打错了 是-DGGML_CUDA=ON |
除夕夜终于搞定了,Windows 11 Pro 前面都按说明该装的环境装好,版本对应好,vs2022只装C++那个 1、之前win10的命令行下的set是可以有引号的,文档中没有特别说明,也没说用啥版本的windows,让人很是困惑。
这样的报错,受到前面一点的启发,直接去修改chatglm.cpp\third_party\ggml\src\ggml-alloc.c,把会报错的所有输出注释掉,类似:
可能在哪里定义NDEBUG也可以,但是我用chatgpt告诉我的方法没成功,干脆直接注释代码,改完代码再编译就没有上述报错了。 |
花了大概两天的时间,终于把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++。
The text was updated successfully, but these errors were encountered: