安装tensorrt_llm踩坑总结

问题描述
最近在使用tensorrt_llm 框架给模型加速,没想到配置环境的时候就遇到了一堆坑,主要表现为:①安装mpi4py包的时候各种报错,②需要的配置文件找不到,③各种包的版本不适配,④导入tensorrt_llm 的时候无任何反应等问题,解决方法如下:

问题一:
安装mpi4py这个包是最大的坑,后面的几个坑大多都是没有处理好这个坑导致的,这个解决了后面的问题可能就不会碰到了。
安装mpi4py之前要先安装openmpi,步骤如下:

# 下载openmpi
wget https://www.open-mpi.org/software/ompi/v5.0/downloads/openmpi-5.0.2.tar.gz  
tar xvzf openmpi-5.0.2.tar.gz
cd openmpi-5.0.2

# 编译和安装
./configure
sudo make all install  # 我当时在这里遇到了问题,起初安装的是1.10的版本,导致这一步报错,也就是最后会有"error"这个关键字输出,如果这一步遇到报错可以换个版本安装

# 添加环境变量
vim ~/.bashrc
#mpi4py
export LD_LIBRARY_PATH+=:/usr/local/lib
source ~/.bashrc

# 测试是否安装成功,如果没有报错就表示安装成功了
cd openmpi-1.10.2/examples
make
mpirun -np 4 hello_c

接下来就是安装mpi4py,切记要用conda安装,不要用pip,安装命令:conda install mpi4py。
这一步解决之后就可以安装tensorr_llm了,安装命令:

pip3 install --no-cache-dir tensorrt_llm==0.8.0.dev2024012301 --extra-index-url https://pypi.nvidia.com

如果下载速度太慢了可以使用镜像安装,命令:

pip3 install --no-cache-dir tensorrt_llm==0.8.0.dev2024012301 --extra-index-url https://pypi.nvidia.com -i https://pypi.tuna.tsinghua.edu.cn/simple

问题二:

/root/miniconda3/envs/finetune/compiler_compat/ld: warning: libopen-rte.so.40, needed by /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so, not found (try using -rpath or -rpath-link)
/root/miniconda3/envs/finetune/compiler_compat/ld: warning: libopen-pal.so.40, needed by /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so, not found (try using -rpath or -rpath-link)
/root/miniconda3/envs/finetune/compiler_compat/ld: warning: libm.so.6, needed by /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so, not found (try using -rpath or -rpath-link)
/root/miniconda3/envs/finetune/compiler_compat/ld: warning: libhwloc.so.15, needed by /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so, not found (try using -rpath or -rpath-link)

解决办法:
这些警告信息表明在编译或链接过程中找不到某些共享库 (libopen-rte.so.40, libopen-pal.so.40, libm.so.6, libhwloc.so.15)。这些库是 OpenMPI(用于并行计算的消息传递接口)的依赖库。其实系统中是有这些文件的,只不过没有在指定的路径下,所以只需要找到这些文件,然后重新指定一下这些文件的路径。

# 使用find来找这些文件
sudo find / -name libopen-rte.so.40
sudo find / -name libopen-pal.so.40
sudo find / -name libm.so.6
sudo find / -name libhwloc.so.15

然后我的这些文件都在" /usr/lib/x86_64-linux-gnu/ "下面,重新定义文件位置的环境变量:

echo 'export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

问题解决~

问题三:
因为这个框架一直在迭代,还不是很稳定,经过一番踩坑之后,建议安装tensorrt_llm的0.8.0版本,这个版本比较稳定。对应版本如下:

  • python==3.10.8
  • cuda==12.1
  • torch==2.1.2.

问题四:
好不容易把tensorrt_llm 安装好了,幻想着终于可以跑代码了,结果一个脚本运行了半个小时还没有任何的输出,搞得一脸懵逼。通过debug定位到问题出在import tensorrt_llm,然后通过‘python3 -v -c “import tensorrt_llm”’查看详细的导入过程,最终定位到导入过程卡在了" # extension module ‘mpi4py.MPI’ loaded from ‘/root/miniconda3/lib/python3.10/site-packages/mpi4py/MPI.cpython-310-x86_64-linux-gnu.so’ "这一步,很明显是mpi4py这个包出问题了。

找了一圈解决方案,最终看到有人说要使用conda来安装mpi4py,给出的理由是:“它与通过 pip 安装不同,不同之处在于 conda 包提供了自己的 MPI 环境,而 pip 包使用系统上的环境。”。试了一下,果然OK了,tensorrt_llm 包成功导入,问题解决~

总结:
如果上述方法都解决不了,直接去colab上跑吧。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值