系统环境 ubuntu20.04
安装ktransformers ,运行install.sh的时候卡在编译的一步
subprocess.CalledProcessError: Command '['cmake', '/home/fox/env/kt31/ktransformers/csrc/ktransformers_ext', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/fox/env/kt31/ktransformers/build/lib.linux-x86_64-cpython-311/', '-DPYTHON_EXECUTABLE=/home/fox/.conda/envs/kt3/bin/python3.11', '-DCMAKE_BUILD_TYPE=Release', '-DKTRANSFORMERS_USE_CUDA=ON', '-D_GLIBCXX_USE_CXX11_ABI=0', '-DLLAMA_NATIVE=ON', '-DEXAMPLE_VERSION_INFO=0.3.1+cu118torch23avx2']' returned non-zero exit status 1.
让AI把这段编译的代码提出来
cmake \
/home/fox/env/kt31/ktransformers/csrc/ktransformers_ext \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/fox/env/kt31/ktransformers/build/lib.linux-x86_64-cpython-311/ \
-DPYTHON_EXECUTABLE=/home/fox/.conda/envs/kt3/bin/python3.11 \
-DCMAKE_BUILD_TYPE=Release \
-DKTRANSFORMERS_USE_CUDA=ON \
-D_GLIBCXX_USE_CXX11_ABI=0 \
-DLLAMA_NATIVE=ON \
-DEXAMPLE_VERSION_INFO=0.3.1+cu118torch23avx2
手动运行debug 发现报错:
CMake Error at CMakeLists.txt:316 (find_package):
By not providing "FindCUDAToolkit.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"CUDAToolkit", but CMake did not find one.
Could not find a package configuration file provided by "CUDAToolkit" with
any of the following names:
CUDAToolkitConfig.cmake
cudatoolkit-config.cmake
Add the installation prefix of "CUDAToolkit" to CMAKE_PREFIX_PATH or set
"CUDAToolkit_DIR" to a directory containing one of the above files. If
"CUDAToolkit" provides a separate development package or SDK, be sure it
has been installed.
解决方案:
查阅资料,排除gcc g++版本问题后(cuda12,不支持老版本gcc 需要使用gcc版本13,cuda11.8,可以使用gcc版本11),遂检查cmake版本,ubuntu20.04自带的cmake版本3.16,升级成 3.20,问题解决
cmake升级教程参考:Ubuntu20.04升级cmake(不用去额外删除现有版本)_cmake 3.20 or higher is required. you are running -CSDN博客
其他的坑点:
如果想使用cuda11.8,需要手动安装 pytorch2.3.0 然后再去ktransformers 文件夹中 bash instal.sh
# CUDA 11.8
conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=11.8 -c pytorch -c nvidia