ztxz16 / fastllm

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

修复NVIDIA旧架构GPU编译问题,初步优化旧架构GPU性能 #444

Closed TylunasLi closed 3 months ago

TylunasLi commented 3 months ago

说明

fastllm在主分支中增加了fp16算子后,引发了一些编译问题。

  1. 在 CUDA < 11.0 以及 CUDA < 11.6 且 Compute Capability < 8.0 时,CUDA 没有定义__hmax函数,
  2. 老设备(如Tesla M40 / Tesla K40等)不支持fp16计算,因此会编译失败。

本次做了如下的修改:

  1. 修复了问题1;
  2. 本次更新增加了编译选项CUDA_NO_TENSOR_CORE
    1. 修改了fp16算子部分,开启编译宏后,这部分使用fp32计算;
    2. 修改了矩阵乘法的计算方式,优化了 Maxwell、Pascal架构(不包括Tesla P100),16系列(1660s CMP-40HX )上的推理速度。

测试

用以下方式测试过: