疑难解答
没有内核映像可用
此问题是由 bitsandbytes 加载的 cuda 版本不受您的 GPU 支持,或者您的 pytorch CUDA 版本不匹配引起的。
要解决此问题,您需要调试 $LD_LIBRARY_PATH
、$CUDA_HOME
以及 $PATH
。您可以通过 echo $PATH
打印它们。您应该查找多个指向不同 CUDA 版本的路径。这可能包括您的 anaconda 路径中的版本,例如 $HOME/anaconda3/lib
。您可以通过 ls -l $HOME/anaconda3/lib/*cuda*
或等效路径检查这些版本。查看这些路径中文件的 CUDA 版本。它是否与 nvidia-smi
匹配?
如果您手气好,也可以尝试从源代码编译库。如果您的 PATH 变量包含多个 cuda 版本,这仍然可能有问题。因此,建议您在继续编译之前先找出路径冲突。
fatbinwrap
如果 C++ 库中的 CUDA 版本与 CUDA 部分不匹配,则会发生此错误。确保您的 $PATH
和 $LD_LIBRARY_PATH
变量中具有正确的 CUDA。在 conda 基本环境中,您可以在以下位置找到库
ls $CONDA_PREFIX/lib/*cudart*
确保将此路径附加到 LD_LIBRARY_PATH
,以便 bnb 可以找到 CUDA 运行时环境库(cudart)。
如果这无法解决问题,请尝试从源代码编译。
如果这也不起作用,请在 GitHub 上创建一个问题并粘贴您在调用 make
时打印的环境以及运行 bnb 时出现的相关错误。