【jetson orin】Jetson Containers介绍安装与应用

cnblogs 2024-10-23 17:13:04 阅读 56

Machine Learning Containers for Jetson and JetPack

项目地址:项目仓库

介绍:

他的用途大概是帮助开发者快速的构建和运行一些docker镜像,比如ollama、llama-factory等热门项目都支持。在运行和构建的过程中针对jetson有做相当的优化。所以建议使用jetson容器去运行各个开源框架,尽可能的释放性能。

设备:jetson Orin NX 16G

环境:

安装步骤:

<code>cd /opt/

git clone https://github.com/dusty-nv/jetson-containers

bash jetson-containers/install.sh

使用示例:

到仓库地址找到想运行的项目是否支持:

<code># 交互模式运行ollama

jetson-containers run $(autotag ollama)

$(autotag ???)的作用是自动帮你匹配合适的镜像,如果你第一次运行,会引导你下载。

命令行打印:

Namespace(packages=['ollama'], prefer=['local', 'registry', 'build'], disable=[''], user='dustynv', output='/tmp/autotag', quiet=False, verbose=False)code>

-- L4T_VERSION=36.3.0 JETPACK_VERSION=6.0 CUDA_VERSION=12.2

-- Finding compatible container image for ['ollama']

ollama:r36.3.0

V4L2_DEVICES:

/opt/jetson-containers/run.sh: line 307: /tmp/nv_jetson_model: Is a directory

+ docker run --runtime nvidia -it --rm --network host --shm-size=8g --volume /tmp/argus_socket:/tmp/argus_socket --volume /etc/enctune.conf:/etc/enctune.conf --volume /etc/nv_tegra_release:/etc/nv_tegra_release --volume /tmp/nv_jetson_model:/tmp/nv_jetson_model --volume /var/run/dbus:/var/run/dbus --volume /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket --volume /var/run/docker.sock:/var/run/docker.sock --volume /opt/jetson-containers/data:/data -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --device /dev/snd --device /dev/bus/usb --device /dev/i2c-0 --device /dev/i2c-1 --device /dev/i2c-2 --device /dev/i2c-4 --device /dev/i2c-5 --device /dev/i2c-7 --device /dev/i2c-9 -v /run/jtop.sock:/run/jtop.sock --name jetson_container_20241023_163301 ollama:r36.3.0

注意最后的docker命令,Jetson Containers本身不运行容器,他是构建出一些启动命令发送到docker。实际上运行容器的还是docker,只是运行的镜像是优化过的。如果有需要可以复制出来做成compose文件也可以。

后台运行:

# 跟docker命令一样,最后都会拼接到启动命令中。

# 靠后的命令会覆盖前面的,所以不用担心报错,把想要的命令拼上去就行

jetson-containers run -d --name=ollama $(autotag ollama)

启动命令中默认添加了<code>--network host所以可以直接通过浏览器访问,而不用手动再映射端口。

构建新镜像:

当你想运行新框架的时候,可以构建一个新的镜像来使用,例如ollama。<code>$(autotag ollama)下载的镜像是项目作者构建好供大家下载的。他的ollama版本可能很旧,这时你可以使用build命令,构建一个新的镜像。构建过程中会自动拉取新版本的ollama。

# 他会去读取项目中的构建脚本和DockerFile构建出一个更适配jetson的镜像

jetson-containers build ollama

构建过程中需要下载大量的依赖,为了避免构建过程中出现各种奇怪问题,需提前解决好网络环境配置(魔法)。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。