在jetson orin nano 8GB板子上构建测试cuda cudnn miniconda pytorch 记录

1.在jetson板子上安装工具

sudo apt update
sudo apt install -y apt-utils 
sudo apt install -y libglfw3 libglfw3-dev
sudo apt install -y cuda-toolkit-12-2 openmpi-bin libopenmpi-dev mpich libdrm-dev pkg-config libfreeimage-dev freeglut3-dev cmake
sudo apt install -y libopenblas-base libopenmpi-dev libomp-dev
sudo apt install -y libjpeg-dev zlib1g-dev libpython3-dev libopenblas-dev libavcodec-dev libavformat-dev libswscale-dev
sudo apt install -y python3 python3-dev python3-distutils python3-venv python3-pip
sudo apt install -y zlib1g software-properties-common lsb-release cmake build-essential libtool autoconf unzip htop ninja-build terminator zip

2. 下载cuda_samples源码 编译源码

$ cd ${HOME}
$ git clone -b v12.2 https://github.com/NVIDIA/cuda-samples.git
$ cd cuda-samples
$ make clean
$ make

3. 运行cuda_samples的test demo

$ cd ${HOME}/cuda-samples/bin/aarch64/linux/release
1.
$ ./bandwidthTest
2.
$ ./deviceQuery
3.
$ ./simpleGL
4.
$ ./boxFilter
5.
$ ./nbody
6.
$ ./smokeParticles
7.
$ ./particles
8.
$ ./FDTD3d
9.
$ ./simpleCUBLAS
10.
$ ./batchCUBLAS
11.
$ ./simpleCUFFT
12.
$ ./MersenneTwisterGP11213

有些测试用例需要在显示器上跑,所以不要在串口上运行

4.下载cudnn以及cudnn_sample

https://developer.download.nvidia.cn/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz

https://developer.download.nvidia.cn/compute/cudnn/redist/cudnn_samples/linux-aarch64/cudnn_samples-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz

我这边用的版本是是cudnn-8.9.0.131版本 对应cuda版本是12

$ cd ${HOME}
$ mkdir cudnn
$ cd cudnn
$ wget https://developer.download.nvidia.cn/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz
$ wget https://developer.download.nvidia.cn/compute/cudnn/redist/cudnn_samples/linux-aarch64/cudnn_samples-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz

5.解压安装cudnn

$ sudo tar -xvf /opt/ai/cudnn/cudnn-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz -C /usr/lib/aarch64-linux-gnu/  --strip-components=2  cudnn-linux-aarch64-8.9.0.131_cuda12-archive/lib/

$ sudo tar -xvf /opt/ai/cudnn/cudnn-linux-aarch64-8.9.0.131_cuda12-archive.tar.xz -C /usr/include --strip-components=2  cudnn-linux-aarch64-8.9.0.131_cuda12-archive/include/

$ cat /usr/include/cudnn_version.h | grep  -E "CUDNN_MAJOR|CUDNN_MINOR"

6.安装miniconda3

下载Miniconda3-latest-Linux-aarch64.sh后执行

$ ./Miniconda3-latest-Linux-aarch64.sh -b -p ${HOME}/miniconda3 -f

$ export PATH=${HOME}/miniconda3/bin:$PATH

$ conda init

初始化完后重启下设备

7 安装pytorch

先执行下面搭建环境和安装必须工具

$ conda create -n torchenv python=3.10 pip
$ conda activate torchenv
$ pip install Cython
$ pip install "Numpy<2"
$ pip install pillow

下载torch-2.4.0a0+07cecf4168.nv24.05.14710581-cp310-cp310-linux_aarch64.whl

torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl

这2个安装包后本地安装

$ pip install /opt/ai/pytorch/torch-2.4.0a0+07cecf4168.nv24.05.14710581-cp310-cp310-linux_aarch64.whl
$ pip install /opt/ai/pytorch/torchvision-0.18.0a0+6043bc2-cp310-cp310-linux_aarch64.whl

安装完后可以测试了 写一个python代码文件

iimport torch

print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
print('cuDNN version: ' + str(torch.backends.cudnn.version()))

a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))

执行,打印结果如下

打印结果
2.4.0a0+07cecf4168.nv24.05
CUDA available: True
cuDNN version: 8900
/opt/ai/test_torch.py:7: UserWarning: The torch.cuda.*DtypeTensor constructors are no longer recommended. It's best to use methods such as torch.tensor(data, dtype=*, device='cuda') to create tensors. (Triggered internally at /opt/pytorch/pytorch/torch/csrc/tensor/python_tensor.cpp:78.)
  a = torch.cuda.FloatTensor(2).zero_()
Tensor a = tensor([0., 0.], device='cuda:0')
Tensor b = tensor([0.9435, 1.4644], device='cuda:0')
Tensor c = tensor([0.9435, 1.4644], device='cuda:0')

安装成功!!

<think>好的,我现在需要帮助用户解决在Jetson Orin Nano 8GB上部署DeepSeek-R1 1.5B模型的问题。首先,我要回顾用户提供的引用内容,特别是引用[2]提到了在Jetson设备上使用Ollama工具部署该模型的教程。用户明确询问的是Orin Nano 8GB的具体步骤,所以需要确保教程适用于该设备的硬件配置。 首先,我需要确认硬件是否兼容。根据引用[1],Orin Nano 8GB支持1.5B、7B、8B的模型,所以1.5B的模型应该是可行的。接下来,用户需要环境准备,可能包括JetPack系统的安装,CUDAcuDNN的版本是否适配。Ollama的安装可能依赖这些库,所以需要检查版本要求。 然后,考虑部署步骤。引用[2]提到使用Ollama工具,但可能需要具体说明如何安装Ollama在Jetson上,因为通常Ollama可能主要支持x86架构,而Jetson是ARM架构。可能需要用户从源码编译或者寻找ARM兼容的版本。此外,模型转换步骤可能需要将DeepSeek-R1转换为Ollama支持的格式,比如GGUF或GGML。 还需要注意存储空间和内存限制。Orin Nano 8GB的内存虽然足够1.5B模型,但运行时需要预留足够的内存,可能需要调整Ollama的配置参数。另外,性能优化方面,可能涉及启用TensorRT或者使用半精度浮点数来加速推理。 用户可能需要具体的命令行步骤,例如如何安装依赖,下载模型,运行推理测试等。同时,常见问题如环境配置错误、模型加载失败等,也需要预先考虑并提供解决方案。 最后,要确保回答结构清晰,分步骤说明,并验证每一步的正确性。可能需要参考NVIDIA官方文档或社区资源,确保建议的可靠性。同时,生成的相关问题需要围绕部署过程中的潜在难点,比如性能优化、内存管理、工具替代方案等,帮助用户进一步探索。</think>### Jetson Orin Nano 8GB 部署 DeepSeek-R1 1.5B 教程 #### 一、硬件与软件要求验证 1. **硬件兼容性** Jetson Orin Nano 8GB 支持部署 1.5B 参数模型[^1],其 8GB 内存可满足模型推理需求。建议预留至少 2GB 系统内存以保障系统稳定性。 2. **系统环境** - JetPack 5.1.2 或更高版本(需包含 CUDA 11.4 和 cuDNN 8.6) - Python 3.8+ 虚拟环境(推荐使用 `conda` 或 `venv`) --- #### 二、部署步骤 ##### 1. 环境配置 ```bash # 更新系统 sudo apt update && sudo apt upgrade -y # 安装基础依赖 sudo apt install -y python3-pip libopenblas-dev libomp-dev # 创建 Python 虚拟环境 python3 -m venv deepseek-env source deepseek-env/bin/activate ``` ##### 2. 安装推理框架 - **方案一:使用 Ollama(推荐)** ```bash # 安装 Ollama for ARM64 curl -L https://ollama.ai/download/ollama-linux-arm64 -o ollama chmod +x ollama sudo mv ollama /usr/local/bin/ # 启动 Ollama 服务 ollama serve & ``` - **方案二:使用 Llama.cpp(轻量化)** ```bash git clone https://github.com/ggerganov/llama.cpp cd llama.cpp && make -j4 ``` ##### 3. 模型转换与加载 - **下载模型权重** 从 DeepSeek 官方获取 DeepSeek-R1 1.5B 的原始权重(需转换为 GGUF 格式)。 - **转换为 Ollama 兼容格式** ```bash python3 convert.py --input-model ./deepseek-r1-1.5b --output-model ./deepseek-r1-1.5b-gguf ollama create deepseek-r1 -f Modelfile ``` ##### 4. 运行推理测试 ```python from transformers import pipeline generator = pipeline('text-generation', model='./deepseek-r1-1.5b') print(generator("NVIDIA Jetson Orin 的优势包括", max_length=50)) ``` --- #### 三、性能优化技巧 1. **启用 TensorRT 加速** 使用 `torch2trt` 将 PyTorch 模型转换为 TensorRT 引擎: ```python from torch2trt import torch2trt model_trt = torch2trt(model, [input_tensor]) ``` 2. **量化压缩** 使用 8-bit 量化减少内存占用: ```python model = quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8) ``` 3. **内存管理** 设置 `swapiness` 值避免 OOM: ```bash sudo sysctl vm.swappiness=10 ``` --- #### 四、验证部署结果 ```bash # 查看 GPU 利用率 tegrastats | grep GR3D # 测试推理延迟 python3 benchmark.py --model deepseek-r1-1.5b --prompt "生成文本" ``` 预期输出应显示 GPU 利用率 >60% 且单次推理延迟 <2s。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值