三、NVIDIA Jetson Orin开发板-GPU加速

一、NVIDIA Jetson Orin开发板的硬件情况

df -h#查看操作系统情况
Filesystem      Size  Used Avail Use% Mounted on
**/dev/nvme0n1p1**  234G   17G  208G   8% /
none            7.4G     0  7.4G   0% /dev
tmpfs           7.6G     0  7.6G   0% /dev/shm
tmpfs           1.6G   19M  1.5G   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.6G     0  7.6G   0% /sys/fs/cgroup
tmpfs           1.6G   28K  1.6G   1% /run/user/1000

Ubuntu操作系统安装在一个NVMe固态硬盘(/dev/nvme0n1p1)上

free -h#查看CPU内存情况
              total        used        free      shared  buff/cache   available
Mem:           15G         2G        11G        1.5G        2G         11G
Swap:          2G         0M         2G

CPU的内存情况

sudo pip3 install -U jetson-stats#安装
sudo systemctl restart jtop.service#启动
sudo jtop#q退出

显示GPU运行情况。

二、在NVIDIA Jetson Orin开发板上的PyCharm中运行代码并利用GPU进行加速

  1. cuda库和驱动程序 :
    jetpack(NVIDIA JetPack 是专为 NVIDIA Jetson 系列开发板(如 Jetson Nano、Jetson TX2、Jetson Xavier NX 和 Jetson AGX Orin 等)设计的综合性软件开发包。JetPack 提供了一整套工具和库,用于加速 AI 和边缘计算应用的开发。)
  2. 支持GPU加速的库:pytorch

1.1 安装命令

sudo apt update
sudo apt install nvidia-jetpack

1.2 查看cuda是否安装成功

ls /usr/local/cuda#显示cuda目录

1.3 配置环境变量

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

1.4 检验cuda版本,显示版本信息即安装成功

nvcc --version

2、pytorch安装
2.1、下载预编译轮子文件

https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
确认适合Python3.8和cuda11.4的文件
wget https://developer.download.nvidia.cn/compute/redist/jp/v44/pytorch/torch-1.10.0-cp38-cp38-linux_aarch64.whl
wget https://developer.download.nvidia.cn/compute/redist/jp/v44/pytorch/torchvision-0.11.1-cp38-cp38-linux_aarch64.whl

2.2、安装轮子文件

pip install numpy  # 安装 numpy
pip install torch-1.10.0-cp38-cp38-linux_aarch64.whl
#pip install torchvision-0.11.1-cp38-cp38-linux_aarch64.whl

2.3、安装依赖库OpenBLAS(它是一个高性能的线性代数库,pytorch依赖他进行数值计算)

sudo apt-get install libopenblas-dev

2.4、测试安装情况

import torch
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():print("CUDA device name:", torch.cuda.get_device_name(0))

三、设置pycharm项目界面开机自启动

1、确定项目结构和入口脚本
/home/makerobo/PycharmProjects/SVDD-Python-master/

├── pyqt_test/
│   ├── boundary.png
│   ├── distance.png
│   └── main.py
├── SECURITY.md
├── src/
│   ├── BaseSVDD.py
│   └── __pycache__/

2、创建启动脚本‘run.sh’
在项目目录 /home/makerobo/PycharmProjects/SVDD-Python-master/ 中创建一个名为 run.sh 的启动脚本:

#!/bin/bash
export DISPLAY=:0  # 确保图形界面可用
cd /home/makerobo/PycharmProjects/SVDD-Python-master/  # 进入项目目录# 激活虚拟环境,我的虚拟环境为pytorch_svdd
source /home/makerobo/anaconda3/bin/activate pytorch_svdd# 运行Python脚本
python pyqt_test/main.py

确保‘run.sh’脚本有可执行权限:

chmod +x /home/makerobo/PycharmProjects/SVDD-Python-master/run.sh

3、创建‘systemd’服务单元文件
在‘/etc/systemd/system/’下创建‘SVDD-Python-master.service’服务文件

sudo vi /etc/systemd/system/SVDD-Python-master.service
[Unit]
Description=My PyCharm Python Project
After=network.target[Service]
ExecStart=/home/makerobo/PycharmProjects/SVDD-Python-master/run.sh
WorkingDirectory=/home/makerobo/PycharmProjects/SVDD-Python-master
Environment="DISPLAY=:0"#指定显示环境变量,用于 GUI 应用程序,确保它们知道在哪里绘制窗口
Environment="XAUTHORITY=/home/makerobo/.Xauthority"#用于身份验证,允许程序在显示器上绘制窗口
Environment="CONDA_EXE=/home/makerobo/anaconda3/bin/conda"#指定 conda 可执行文件的位置
Environment="CONDA_PREFIX=/home/makerobo/anaconda3/envs/pytorch_svdd"#指定激活的 conda 环境路径
Environment="CONDA_PYTHON_EXE=/home/makerobo/anaconda3/bin/python"#指定 Python 可执行文件的位置
Environment="CONDA_DEFAULT_ENV=pytorch_svdd"#指定默认的 conda 环境
Environment="PATH=/home/makerobo/anaconda3/envs/pytorch_svdd/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"#更新 PATH 变量,使其包含 conda 环境中的可执行文件路径
StandardOutput=inherit
StandardError=inherit
Restart=always
User=makerobo[Install]
WantedBy=multi-user.target

4、设置文件权限和所有权
确保项目目录及其文件的所有权和权限正确

sudo chown -R makerobo:makerobo /home/makerobo/PycharmProjects/SVDD-Python-master/
sudo chmod -R +x /home/makerobo/PycharmProjects/SVDD-Python-master/

5、启用和启动服务
重新加载‘system’配置:

sudo systemctl daemon-reload

启用服务,使其在开机时自动运行

sudo systemctl enable SVDD-Python-master.service

启动服务

sudo systemctl start SVDD-Python-master.service

6、验证服务是否正常运行

sudo systemctl status SVDD-Python-master.service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 2644.找出可整除性得分最大的整数:暴力模拟(两层循环)

【LetMeFly】2644.找出可整除性得分最大的整数:暴力模拟(两层循环) 力扣题目链接:https://leetcode.cn/problems/find-the-maximum-divisibility-score/ 给你两个下标从 0 开始的整数数组 nums 和 divisors 。 divisors[i] 的 …

MySQL库/表/数据的操作

文章目录 1.数据库操作1.1 创建、删除、查看和修改1.2 编码格式1.3 备份和恢复 2.表的操作2.1 创建表2.2 存储引擎2.3 查看表、修改表、删除表 3.数据类型3.1整数类型3.2字节类型(bit)3.3浮点类型(bit)3.4 decimal3.5 字符串类型3.6 日期和时间类型3.7 enum和set关于如何查找想…

webpack 学习之 五大核心

为什么用 webpack webpack 官网传送门 … 官网:webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。总结:汇总所有模块…

Python中别再用 ‘+‘ 拼接字符串了!

大家好,在 Python 编程中,我们常常需要对字符串进行拼接。你可能会自然地想到用 操作符将字符串连接起来,毕竟这看起来简单明了。 在 Python 中,字符串是不可变的数据类型,这意味着一旦字符串被创建,它就…

【Python】—— lambda表达式

目录 (一)应用场景 (二)lambda 语法 (三)示例分析 (四)lambda参数形式 4.1 无参数 4.2 一个参数 4.3 默认参数 4.4 可变参数 :*args 4.5 可变参数 :…

【Python爬虫】案例_github模拟登录

import requests import re from datetime import datetimedef login():sessionrequests.session()session.headers {User-Agent :XXXX #写自己的}url1 https://github.com/loginres_1 session.get(url1).content.decode()token re.findall(name"authenticity_token&q…

基于Matlab实现BP神经网络的手写数字识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉和模式识别领域的一个经典问题,具有广泛的应用场景&…

信息安全从业者书单推荐

作为一名网安人,身上肩负的责任是很大的,能力越大,责任也越大,反过来责任越大,能力也必须跟得上。不管是想进这行,还是已经在这行,持续学习肯定是不能缺少的,除了在工作中积累&#…

qt多语言翻译不生效的原因

假设您有QT语言家的基础知识,假设网上那些所有的问题您都已经排查过了,但依然翻译不生效,那么可以看下这篇帖子,其实就一个问题,变量的生命周期,假设QTranslator是一个函数内的变量,且没有被声明…

亿图图示——删除水印

一、文件以PPT格式导出 二、点击水印所在区域,点击多次delete键 三、调整PPT页面尺寸 四、转成PDF 五、PDF转成图片

Spring的Profile功能及其应用场景

Spring的Profile功能是一种条件化配置机制,它允许开发者根据不同的运行环境或条件来定义和使用不同的bean和配置。Profile功能使得Spring应用程序可以灵活地适应不同的部署场景,而无需修改代码。 Profile功能的作用: 环境隔离:可…

从0开始写一个环境保护网站的第3天(JAVAWEB)

1.目标 实现首页的环境保护原因的查询,和底部友情连接部分 2.实现 2.1建立数据库表格(这里数据全是百度查询) 环境保护原因表: 友情连接表:(数据来源https://zhuanlan.zhihu.com/p/696243646&#xff0…

SqlSession是什么?在MyBatis-Spring中有什么应用?

目录 一、SqlSession是什么 二、SqlSession在MyBatis中的应用 三、SqlSession在Spring中的应用 一、SqlSession是什么 SqlSession 是 MyBatis 框架中的一个核心概念,它代表与数据库的一次会话。MyBatis 是一个流行的 Java 持久层框架,用于简化数据库…

c++题目_农场和奶牛

𝐵B 头奶牛 (1≤𝐵≤25000)(1≤B≤25000),有 𝑁(2𝐵≤𝑁≤50000)N(2B≤N≤50000) 个农场,编号 11 到 𝑁N,有 𝑀(𝑁−1≤𝑀≤100000)M(…

【Linux】fork和exec中的信号继承探索

fork和exec中的信号继承探索 一、结论二、代码验证2.1 代码编写2.2 代码执行 三、linux源码验证四、APUE中的验证五、其他 一、结论 fork时子进程会继承父进程的信号处理方式,包括父进程设置信号为SIG_DFL或SIG_IGN或捕获后设置自定义处理函数。exce时子进程会继承…

ChatGPT写作指南:掌握5种高效格式成为写作达人【含实用示例】

1. **简洁指令** 当任务较简单时,可以用一小段话来说明,便于理解和执行。如下例: 背景:我负责运营一个旅游主题的社交媒体账号。 角色:作为一位经验丰富的文案创作专家,我擅长打造引人注目的旅游内容…

【无标题】亚马逊5月24日宣布推出2024出口跨境物流加速器计划

亚马逊中国5月24日郑重宣布启动“2024亚马逊出口跨境物流加速器计划”,旨在依托其世界领先的物流网络和前沿技术,结合本土资源,不断优化跨境物流服务,以强化中国卖家在跨境物流供应链管理方面的能力,进而提升整体效率&…

datagridview复选框选中响应

winform经常用datagridview来处理相关的数据显示,如果datagridview有复选框,我们应该如何处理相关选中响应。选择datagridview的cellcontentclick事件,代码如下: bool isSelectedGridViewRow false; private void da…

深度神经网络——什么是 K 均值聚类?

K 均值聚类 K 均值聚类是 无监督学习在所有无监督学习算法中,K 均值聚类可能是使用最广泛的,这要归功于它的强大功能和简单性。 K-means 聚类到底是如何工作的? 简而言之,K 均值聚类的工作原理是 创建参考点(质心&am…

Halcon 极坐标转换图像

一、概述 先看效果 将圆形的用极坐标转换成矩性然后再进行识别或者其他缺陷检测,最后在还圆到原图中 二、原理: halcon 圆环类缺陷检测的一种方法(极坐标变换法)_halcon缺口检测-CSDN博客 图像极坐标变换与反变换(…