ztxz16 / fastllm

纯c++的全平台llm加速库,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llama, moss基座,手机端流畅运行
Apache License 2.0
3.28k stars 332 forks source link

ChatGLM3-6B, 导出flm模型后,报浮点数例外(核心已转储) #385

Closed xinaiwunai closed 8 months ago

xinaiwunai commented 8 months ago

硬件: 96核CPU: Inetel Xeon E7-4839 v4 , 62GB内存, 无GPU 系统环境:服务器 Kylin V10 SP2 V2207, ChatGLM3-6B的原模型,可以通过python的案例脚本正常调用。 利用chatglm_export.py 导出成flm模型成功后。

问题1:

可已使用 python tools/cli_demo.py -p chatglm3-6b-float16.flm 命令载入并使用, 可正常载入模型 Load(200/200) Warmup .... finish. 进入命令行对话 但存在核心使用不足的问题,根据观察CPU状态,似乎只调用了2-4个核心。 应该如何使得模型调用全部96个核心?

问题2:

使用 ./main -p chatglm3-6b-float16.flm 命令调用,报错, 结果如下:

AVX: OFF
AVX2: OFF
AARCH64:  OFF
Neon FP16: OFF
Neon DOT: OFF
Load ( 200 / 200 )
Warmup ...
浮点数例外(核心已转储)

命令自动终止执行,使用的flm模型和上面python tools/cli_demo.py 调用的是同一个文件。 请问为什么 ./main 执行会报错?

TylunasLi commented 8 months ago
  1. 可以通过 llm.set_cpu_threads() 方法设置线程数,使用多个CPU核心。

  2. 该问题需要进一步排查,请问您gcc的版本是多少?

xinaiwunai commented 8 months ago

[root@localhost 桌面]# gcc -v 使用内建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/7.3.0/lto-wrapper 目标:x86_64-linux-gnu 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-7.3.0/obj-x86_64-linux-gnu/isl-install --without-cloog --enable-gnu-indirect-function --build=x86_64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --with-tune=generic --with-arch_32=x86-64 --disable-multilib 线程模型:posix gcc 版本 7.3.0 (GCC)

[root@localhost 桌面]# c++ -v 使用内建 specs。 COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/7.3.0/lto-wrapper 目标:x86_64-linux-gnu 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-7.3.0/obj-x86_64-linux-gnu/isl-install --without-cloog --enable-gnu-indirect-function --build=x86_64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --with-tune=generic --with-arch_32=x86-64 --disable-multilib 线程模型:posix gcc 版本 7.3.0 (GCC)

TylunasLi commented 8 months ago

问题2已经修复,感谢反馈