1.NVIDIA Jetson NX安装torchvision教程
2.ffmpeg使用NVIDIA GPU硬件编解码
3.Apollo6.0安装文档教程——环境搭建、源码安装、下载编译、源码测试
4.在 Nvidia Docker 容器编译构建显存优化加速组件 xFormers
5.NVIDIA Modulus 23.03安装和使用方法
NVIDIA Jetson NX安装torchvision教程
安装 torchvision 前,下载先确保已安装 pytorch,源码参考相关教程进行操作。下载起名字源码
首先,源码切换至国内软件源,下载执行更新操作。源码
安装 torchvision 所需依赖。下载
使用 dpkg 手动安装时,源码注意到 libpython3-dev 未有候选版本,下载需手动安装。源码安装其他依赖已满足。下载
下载 arm 架构的源码 libpython3-dev_3.6.7-1~._arm.deb 包,确保版本与当前 python3(3.6.9)兼容。
使用 dpkg -i 安装 deb 包,若遇到依赖问题,直接在网页中查找所有依赖的下载链接。
安装 libpython3-dev 的依赖 libpython3.6-dev 时,出现版本不正确的错误。分析后发现 libpython3.6-dev 需要的版本为 3.6.9-1~.ubuntu1.4,已有的版本为 3.6.9-1~.,因此安装 libpython3.6-dev 的候选版本 libpython3.6-stdlib 中最后一个版本,即为所需版本 3.6.9-1~.ubuntu1.4。
安装 torchvision 源码,确保 pytorch 和 torchvision 版本匹配,如 torch 1.6 版本对应 torchvision 0.7.0 版本。Linux导出java源码
使用码云账号注册并导入 torchvision 仓库,完成代码下载。
进入 torchvision 目录,使用命令编译,通常需时约十分钟。
当出现 pillow 报错时,说明 torchvision 近于安装成功。返回上一级目录,使用 pip/pip3 安装 pillow。
若下载速度慢,可使用国内豆瓣源下载安装 pillow。
安装 pillow 后,再次尝试导入 torch 仍报错,需再次进入 torchvision 目录进行编译安装。这次配置完成迅速。
使用 pip3 list 查看已安装包及版本,确认 torchvision 安装完成。
执行卷积神经网络训练,速度比本地快四倍。使用 jtop 监控 CPU、GPU 运行情况,观察在 Jetson Nano 上使用 pytorch 并设置 CUDA 进行训练时,主要由 GPU 执行计算,W 功率能达到的算力相当不错。
ffmpeg使用NVIDIA GPU硬件编解码
要在Ubuntu .上利用NVIDIA GPU硬件加速ffmpeg 3.4.8的编解码功能,首先需要安装必要的依赖库和特定驱动。 1. 安装依赖库:确保系统具备基本的偷源码判几年开发环境,可以通过apt命令安装。 2. 安装ffnvcodec:这是关键组件,用于利用NVIDIA硬件进行视频编码和解码。 遇到官方驱动安装问题时,建议采取以下步骤:卸载旧版本Nvidia驱动
加入显卡驱动的PPA(个人包存档)
查找并安装最新NVIDIA驱动,可能需要查看官方文档获取版本号
推荐学习资源:有关音视频开发的免费课程,包括FFmpeg、WebRTC等,可通过链接获取更多资料和学习资料包。 3. 安装CUDA:CUDA是NVIDIA提供的GPU计算库,对视频编解码的支持至关重要,可以从developer.download.nvidia.cn下载。 4. 编译ffmpeg:在安装完CUDA后,进行ffmpeg的编译。在编译前,务必检查系统环境是否正确设置。 针对NVIDIA NVENC并发Session数量的限制,如果你的GTX显卡限制在2路编码,可以参考老雷的Windows解决方案,虽然Linux下修改方法尚未在GitHub上找到通用解决方案,但已有一些针对不同驱动版本的特定修改,如github.com/keylase/nvidia...。 对于编码输出帧的问题,当使用nvenc或h_nvenc时,可能会出现SEI帧在RTP传输中导致错误。解决方法是直接在ffmpeg源码中的nvenc.c文件进行适当修改。 最后,mallplus作者卖源码完成上述步骤后,你可以编译ffmpeg进行测试,确保硬件加速功能正常工作。Apollo6.0安装文档教程——环境搭建、安装、编译、测试
一、环境搭建 为了安装Apollo 6.0,您需要以下环境准备:Ubuntu .,安装教程参阅相关资源。
NVIDIA显卡驱动,根据官方指南进行安装。
Docker引擎,Apollo安装步骤中完成。
NVIDIA容器工具,Apollo安装步骤中完成。
安装过程中,请确保禁用nouveau驱动,操作步骤如下: 在终端中添加指定内容至文件末尾并保存,然后重启系统。重启后执行命令,检查禁用状态。 二、下载源码 前往Apollo下载地址,选择对应版本。 三、安装 安装Docker:进入Apollo 6.0的导航美化网站源码docker目录,执行安装命令。安装完成后,重启电脑。 安装NVIDIA容器工具:与Docker安装同步进行。 创建Apollo容器:下载所需image,此过程可能耗时较长。成功后,会显示“[OK], Enjoy!”。 进入容器:执行相关命令。 四、编译与测试 编译Apollo:根据容器中的GPU状态(有或无)进行编译。可能遇到的warning如“DimsNCHW”被标记为过时,这是正常现象,不会影响后续使用。 启动Dreamview:可能遇到权限问题,使用chmod进行授权。如果问题仍未解决,授权整个Scripts目录并执行。 Dreamview查看:在浏览器中输入http://localhost:访问Apollo Dreamview。 测试:下载测试文件并运行。设置循环回放模式,使用指定命令停止container和退出容器。 五、运行笔记记录 重新启动Apollo docker时,切换至APOLLO目录进行操作。记录运行过程中的注意事项及解决方法。在 Nvidia Docker 容器编译构建显存优化加速组件 xFormers
本篇文章,聊聊如何在新版本 PyTorch 和 CUDA 容器环境中完成 xFormers 的编译构建。
让你的模型应用能够跑的更快。
写在前面
xFormers[1] 是 FaceBook Research (Meta)开源的使用率非常高的 Transformers 加速选型,当我们使用大模型的时候,如果启用 xFormers 组件,能够获得非常明显的性能提升。
因为 xFormers 对于 Pytorch 和 CUDA 新版本支持一般会晚很久。所以,时不时的我们能够看到社区提出不能在新版本 CUDA 中构建的问题( #[2]或 #[3]),以及各种各样的编译失败的问题。
另外,xFormers 的安装还有一个问题,会在安装的时候调整当前环境已经安装好的 PyTorch 和 Numpy 版本,比如我们使用的是已经被验证过的环境,比如 Nvidia 的月度发布的容器环境,这显然是我们不乐见的事情。
下面,我们就来解决这两个问题,让 xFormers 能够在新的 CUDA 环境中完成编译,以及让 xFormers 的安装不需要变动我们已经安装好的 Pytorch 或者 Numpy。
环境准备
环境的准备一共有两步,下载容器和 xFormers 源代码。
Nvidia 容器环境
在之前的 许多文章[4]中,我提过很多次为了高效运行模型,我推荐使用 Nvidia 官方的容器镜像( nvcr.io/nvidia/pytorch:.-py3[5])。
下载镜像很简单,一条命令就行:
完成镜像下载后,准备工作就完成了一半。
准备好镜像后,我们可以检查下镜像中的具体组件环境,使用docker run 启动镜像:
然后,使用python -m torch.utils.collect_env 来获取当前环境的信息,方便后续完成安装后确认原始环境稳定:
获取 xFormers
下载 xFormers 的源代码,并且记得使用--recursive 确保所有依赖都下载完毕:
xFormers 的源码包含三个核心组件cutlass、flash-attention、sputnik,除去最后一个开源软件在 xFormers 项目 sputnik 因为 Google 不再更新,被固定了代码版本,其他两个组件的版本分别为:cutlass@3.2 和 flash-attention@2.3.6。
Dao-AILab/flash-attention[6]目前最新的版本是 v2.4.2,不过更新的主干版本包含了更多错误的修复,推荐直接升级到最新版本。在 v2.4.2 版本中,它依赖的 cutlass 版本为 3.3.0,所以我们需要升级 cutlass 到合适的版本。
Nvidia/cutlass[7] 在 3.1+ 的版本对性能提升明显。
不过如果直接更新 3.2 到目前最新的 3.4flash-attention 找不到合适的版本,会发生编译不通过的问题,所以我们将版本切换到 v3.3.0 即可。
另外,在前文中提到了在安装 xFormers 的时候,会连带更新本地已经安装好的依赖。想要保护本地已经安装好的环境不被覆盖,尤其是 Nvidia 容器中的依赖不被影响,我们需要将xformers/requirements.txt 内容清空。
好了,到这里准备工作就结束了。
完成容器中的 xFormers 的安装
想要顺利完成 xFormers 的构建,还有一些小细节需要注意。为了让我们能够从源码进行构建,我们需要关闭我们下载 xFormers 路径的 Git 安全路径检查:
为了让构建速度有所提升,我们需要安装一个能够让我们加速完成构建的工具ninja:
当上面的工具都完成后,我们就可以执行命令,开始构建安装了:
需要注意的是,默认情况下安装程序会根据你的 CPU 核心数来设置构建进程数,不过过高的工作进程,会消耗非常多的内存。如果你的 CPU 核心数非常多,那么默认情况下直接执行上面的命令,会得到非常多的Killed 的编译错误。
想要解决这个问题,我们需要设置合理的MAX_JOBS 参数。如果你的硬件资源有限,可以设置 MAX_JOBS=1,如果你资源较多,可以适当增加数值。我的构建设备有 G 内存,我一般会选择设置 MAX_JOBS=3 来使用大概最多 GB 的内存,来完成构建过程,MAX_JOBS 的构建内存消耗并不是完全严格按照线性增加的,当我们设置为 1 的时候,GB 的设备就能够完成构建、当我们设置为 2 的时候,使用 GB 的设备构建会比较稳妥,当设置到 4 的时候,构建需要的内存就需要 GB 以上了。
构建的过程非常漫长,过程中我们可以去干点别的事情。
当然,为了我们后续使用镜像方便,最好的方案是编写一个 Dockerfile,然后将构建的产物保存在镜像中,以方便后续各种场景使用:
在构建的时候,我们可以使用类似下面的命令,来搞定既使用了最新的 Nvidia 镜像,包含最新的 Pytorch 和 CUDA 版本,又包含 xFormers 加速组件的容器环境。
如果你是在本机上进行构建,没有使用 Docker,那么构建成功,你将看到类似下面的日志:
等待漫长的构建结束,我们可以使用下面的命令,来启动一个包含构建产物的容器,来测试下构建是否成功:
当我们进入容器的交互式命令行之后,我们可以执行python -m xformers.info,来验证 xFromers 是否构建正常:
以及,使用python -m torch.utils.collect_env 再次确认下环境是否一致:
最后
好了,这篇文章就先写到这里啦。
NVIDIA Modulus .安装和使用方法
如果你对NVIDIA的Modulus .版本感兴趣,以下是你需要了解的安装和使用指南。从年开始,Modulus将进行重大更新,建议直接从.版本开始,因为它将成为新开发的基础,旧版本将不再维护,所有功能将迁移至此。 Modulus .开源,可在GitHub获取。新版本主要由两个部分组成:Modulus包和modulus-sym包。sym包整合了大量API接口,以下是部分核心模块的导入示例: from modulus.sym.hydra import to_absolute_pathfrom modulus.sym.solver import Solver
from modulus.sym.domain import Domain
...
from modulus.sym.utils.io.plotter import ValidatorPlotter
安装步骤如下:首先,从GitHub下载modulus源代码,确保选择正确的版本,然后构建镜像:
#docker build -t modulus:ci --target ci -f Dockerfile .启动镜像,在其中安装modulus-sym:
#pip install .可能需要额外安装一些依赖,如:
sudo apt-get install libx-6sudo apt install libgl1-mesa-glx
sudo apt-get install libxrender1
完成以上步骤后,你就可以开始编写并运行Modulus .的代码了。对于进一步的技术交流和疑难解答,我们建议加入以下QQ群: 群名称:英伟达Modulus仿真技术交流(PINN)群号:
这里是一个活跃的社区,可以与同行分享经验和解决问题。祝你在使用Modulus .的过程中顺利!