返回列表 发布新帖

青龙人形机器人开源强化学习环境报错大全(一) cuda篇

600 0
发表于 2024-11-28 10:38:12 | 查看全部 阅读模式
本帖最后由 十日无冬 于 2024-11-28 11:19 编辑

青龙人形机器人开源强化学习环境自从八月上线以来,收获了广泛关注,不少机器人爱好者,强化学习爱好者下载,安装,尝试了我们的强化学习框架。少部分人经验老道,安装出现问题也能自行有效的解决,有些却是刚刚上手的初学者,安装起来没有那么得心应手。针对这一问题,我们在我们的官方账号上投稿了一个青龙人形机器人开源强化学习框架GymLoong安装教程,方便初学者们能顺利的安装并使用我们的强化学习框架:

青龙开源强化学习环境安装

但是除此之外,我们也收到了很多源自其他原因的报错求助,其中最多也最难解决的就是冲突性的报错,即一台电脑/服务器中安装多个环境,他们都需要某依赖,但是需要的版本不同(如A环境需要使用cuda12.0,而B环境需要使用cuda11.7);或者电脑/服务器中的显卡驱动版本为525.xxx.xxx,安装的框架却推荐使用535.xxx.xxx版本的显卡驱动;又或者在使用了conda虚拟环境的情况下,以为可以大展拳脚,随便安装卸载系统内的驱动和软件包,最终不仅当前虚拟环境软件引用错乱,更是导致系统驱动版本混用、紊乱、崩溃,不得不以重装系统收尾。

在此帖中,我们将会梳理并归纳所有被反馈并解决过的问题,方便所有的开发者遇到类似的问题的时候便捷的自查。首先就以cuda相关的报错开始(注意,本贴所有问题以及解决方法是在Ubuntu20.04版本下)


CUDA版本不一致/nvcc cuda/nvidia-smi/~bashrc

CUDA版本不一致是开发中经常遇到的问题,尤其是多个虚拟环境并存时,稍有使用不当就可能导致所有环境都收到影响。

首先CUDA版本有很多查询的方法,常用的有nvidia-smi和nvcc cuda,但是对于我们使用IsaacGym来说,这两个方法都是错误的!

首先nvidia-smi,如果显卡和显卡驱动正常的话,会返回一个表格,其中包含显卡的一些信息,并附带有CUDA的版本号,但是这里的版本号,仅仅只是该显卡推荐使用的CUDA版本,和你运行程序所需要的版本无关,和你目前安装的版本也无关,即使你的CUDA引用一团乱,这里也会根据你的显卡型号显示同样的版本。

再一个是nvcc cuda,这个命令返回的版本号也是不正确的,它会和你在~bashrc中指定的CUDA path有关,所以当你使用虚拟环境时nvcc cuda返回的版本就有可能不正确了。而且值得一提的是,如果你没有nvcc的相关组件,他会提示你:
  1. $ nvcc cuda
  2. Command 'nvcc' not found, but can be installed with:
  3. sudo apt install nvidia-cuda-toolkit
复制代码

此处千万不要跟随指令安装toolkit,这个toolkit安装之后会附带一个cuda版本,导致版本管理出现问题。正常运行IsaacSim是不需要这个nvidia-cuda-toolkit的,即使正确安装了cuda也可能出现Command 'nvcc' not found。


Warning: failed to preload CUDA lib/PhysX libs
  1. <div class="blockcode"><blockquote>*** Warning: failed to preload CUDA lib
  2. *** Warning: failed to preload PhysX libs
复制代码




此错误表示你没有正确的安装Cuba lib和PyhsX libs,导致仿真界面无法调用GPU资源,转而使用CPU,然后CPU不堪重负仿真界面崩溃。

这个错误出现在安装过程中,通常由于CUDA未正确安装,可能是前一步的时候安装CUDA失败,也可能是之后安装了其他版本的CUDA导致依赖调用异常。建议直接使用和之前相同的命令重新安装CUDA,谨慎使用别的命令直接安装CUDA或者尝试更改bashrc文件中CUDA的引用路径,很可能导致混用,进而出现大量误导性的报错,难以溯源。

一定要注意CUDA的版本要和你用的pytorch相对应,而不是和你的显卡推荐的CUDA版本。

ldd: /<Isaac Gym 安装目录>/lib/PhysXDevice.so: No such file or directory


No such file or directory 的错误提示说明路径中缺少 PhysXDevice.so 文件,但是请注意,这个报错同样由于CUDA依赖问题导致。

在IsaacGym的preview4文件夹中的PhysXDevice本来就是没有PhysXDevice.so文件的,只有libphysxSchemaTools.so和libphysxSchema.so,且运行IsaacGym也不需要此文件。在解决完CUDA问题后,此问题就自然消失了。


internal error : libcuda.so!
  1. buildAgent/work/99bede84aa0a52c2/source/physx/src/gpu/PxPhysXGpuModuleLoader.cpp (148) : internal error : libcuda.so!
  2. [Warning] [carb.gym.plugin] Failed to create a PhysX CUDA Context Manager. Falling back to CPU.
复制代码

同上,这个问题看似报错是PhysX,其实还是CUDA依赖错误导致的问题。但是这个错误GPT会推荐你把libcuda.so的路径添加到LD_LIBRARY_PATH中,千万不要这么做。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2025 OPENLOONG. All Rights Reserved. Powered by Discuz!
  • 关注B站
  • 关注抖音
  • 关注微信公众号
Copyright © 2025 开发者论坛 - OpenLoong 版权所有 All Rights Reserved.
关灯 在本版发帖 返回顶部
快速回复 返回顶部 返回列表