chatglm.cpp
chatglm.cpp copied to clipboard
-DGGML_CUBLAS=ON,编译成功之后无法使用显卡进行推理,仍然使用CPU进行推理
环境:win11 硬件:i9 4060 环境为conda管理虚拟环境。 模型使用的是量化后的chatGLM3-6B-int4模型。
编译命令:cmake -B build -DGGML_CUBLAS=ON -DCUDA_ARCHITECTURES="89" -DCMAKE_CUDA_COMPILER="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin\nvcc.exe" -DCMAKE_GENERATOR_TOOLSET="cuda=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3" ; cmake --build build -j --config Release
编译后无报错。
cd到example文件夹(直接在chatglm_cpp主目录下调用会报错),使用$env:MODEL="D:\langchain_GLM3_connection\chatglm.cpp\chatglm3-ggml.bin"; uvicorn chatglm_cpp.langchain_api:app --host 127.0.0.1 --port 8000 启动API后,进行调用仍然是使用CPU推理的,可以看到CPU使用率和内存使用率飙升,但是显存和GPU没有什么变化。
求问下大佬们这个问题出在哪里?编译命令已经打开了CUBLAS啊。。。也没有报错
补充一下,因为直接pip安装chatglm_cpp会报错,我使用的是(https://github.com/li-plus/chatglm.cpp/releases/tag/v0.3.0)下载的chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl进行安装的,安装指令为下载好的文件存储路径下 $env:CMAKE_ARGS="-DGGML_CUBLAS=ON"; pip install chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl。 是不是跟这个有关系呢?小白求指点
我也遇到这个问题,调用的时候有显示用到的GPU,但是用的还是CPU推理
ggml_init_cublas: found 1 CUDA devices:
Device 0: NVIDIA GeForce GTX 1650 Ti, compute capability 7.5
补充一下,因为直接pip安装chatglm_cpp会报错,我使用的是(https://github.com/li-plus/chatglm.cpp/releases/tag/v0.3.0)下载的chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl进行安装的,安装指令为下载好的文件存储路径下 $env:CMAKE_ARGS="-DGGML_CUBLAS=ON"; pip install chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl。 是不是跟这个有关系呢?小白求指点
我看其他issue有说,github上面的release是CPU版的,GPU不同版本编译的都不一样
补充一下,因为直接pip安装chatglm_cpp会报错,我使用的是(https://github.com/li-plus/chatglm.cpp/releases/tag/v0.3.0)下载的chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl进行安装的,安装指令为下载好的文件存储路径下 $env:CMAKE_ARGS="-DGGML_CUBLAS=ON"; pip install chatglm_cpp-0.3.0-cp310-cp310-win_amd64.whl。 是不是跟这个有关系呢?小白求指点
我知道问题所在了!虽然一开始cmake已经使用-DGGML_CUBLAS=ON,但是你也说了运行web_demo的时候还会报错。 这个时候,其实还需要你自己解决这个问题,这个时候你可以pip install .(我看也有写pip install chatglm_cpp的都行),这个时候再运行web_demo就不报错了。这个时候呢,你会发现运行起来推理还是用CPU! 我也是后来才发现,其实pip install .的时候也进行了cpp的编译,然后我就这么pip install:CMAKE_ARGS="-DGGML_CUBLAS=ON" pip install .,就是啊,这个时候也需要-DGGML_CUBLAS=ON。再次运行web_demo,推理就是用GPU了!!你试试,我自己是搞成了。