li-plus / chatglm.cpp

C++ implementation of ChatGLM-6B & ChatGLM2-6B & ChatGLM3 & GLM4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

-DGGML_CUBLAS=ON,编译成功之后无法使用显卡进行推理,仍然使用CPU进行推理

wfgods opened this issue · comments

环境: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了!!你试试,我自己是搞成了。