Skip to content

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

Description

@KirroNeko

花了大概两天的时间,终于把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++。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions