poetry 配置多个cuda环境心得
操作系统:ubuntu22.04 LTS
python版本:3.12.7
最近学习了用poetry配置python虚拟环境,当为不同的项目配置cuda时,会遇到不同的项目使用的cuda版本不一致的情况。
像torch 这样的库,它们会对cuda-toolkit有依赖,通过python来使用cuda,它们会依赖像
nvidia-cuda-runtime-cu12
nvidia-cublas-cu12
这样的python库,这种情况下,在pyproject.toml里写上
[tool.poetry.group.full]
optional = true
[tool.poetry.group.full.dependencies]
torch = {path = "./torch-2.2.1+cu121-cp312-cp312-linux_x86_64.whl"}
或者
torch = "2.2.1"
这样的依赖就行了,poetry会自动下载依赖的cuda-toolkit的python库
这时候,通过poetry show torch --tree可以查看到依赖关系:
user@user-Ubuntu2204:~/projects/cuda-test$ poetry show torch --tree
torch 2.2.1+cu121 Tensors and Dynamic neural networks in Python with strong GPU acceleration
├── filelock *
├── fsspec *
├── jinja2 *
│ └── markupsafe >=2.0
├── networkx *
├── nvidia-cublas-cu12 12.1.3.1
├── nvidia-cuda-cupti-cu12 12.1.105
├── nvidia-cuda-nvrtc-cu12 12.1.105
├── nvidia-cuda-runtime-cu12 12.1.105
├── nvidia-cudnn-cu12 8.9.2.26
│ └── nvidia-cublas-cu12 *
├── nvidia-cufft-cu12 11.0.2.54
├── nvidia-curand-cu12 10.3.2.106
├── nvidia-cusolver-cu12 11.4.5.107
│ ├── nvidia-cublas-cu12 *
│ ├── nvidia-cusparse-cu12 *
│ │ └── nvidia-nvjitlink-cu12 *
│ └── nvidia-nvjitlink-cu12 * (circular dependency aborted here)
├── nvidia-cusparse-cu12 12.1.0.106
│ └── nvidia-nvjitlink-cu12 *
├── nvidia-nccl-cu12 2.19.3
├── nvidia-nvtx-cu12 12.1.105
├── sympy *
│ └── mpmath >=1.1.0,<1.4
└── typing-extensions >=4.8.0
有的基于gpu的库不通过python来使用cuda,这时候就要给操作系统安装对应的cuda版本才行。这时候,从poetry show 查看依赖关系是看不到它对nvidia的cuda-toolkit的依赖的:
user@user-Ubuntu2204:~/projects/cuda-test$ poetry show paddlepaddle-gpu --tree
paddlepaddle-gpu 2.6.2.post120 Parallel Distributed Deep Learning
├── astor *
├── decorator *
├── httpx *
│ ├── anyio *
│ │ ├── idna >=2.8
│ │ └── sniffio >=1.1
│ ├── certifi *
│ ├── httpcore ==1.*
│ │ ├── certifi * (circular dependency aborted here)
│ │ └── h11 >=0.13,<0.15
│ ├── idna * (circular dependency aborted here)
│ └── sniffio * (circular dependency aborted here)
├── numpy >=1.13
├── opt-einsum 3.3.0
│ └── numpy >=1.7
├── pillow *
├── protobuf >=3.20.2
└── protobuf >=3.1.0,<=3.20.2
另外,像torch这样通过python来使用cuda,可以给nvidia的cuda-toolkit库指定路径:
[tool.poetry.dependencies]
python = "^3.12"
setuptools = "70.0.0"nvidia-cublas-cu12={ path = "./nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl" }
nvidia-cuda-cupti-cu12={ path = "./nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl" }
相关文章:
poetry 配置多个cuda环境心得
操作系统:ubuntu22.04 LTS python版本:3.12.7 最近学习了用poetry配置python虚拟环境,当为不同的项目配置cuda时,会遇到不同的项目使用的cuda版本不一致的情况。 像torch 这样的库,它们会对cuda-toolkit有依赖&…...
网络编程入门
目录 1.网络编程入门 1.1 网络编程概述【理解】 1.2 网络编程三要素【理解】 1.3 IP地址【理解】 1.4InetAddress【应用】 1.5端口和协议【理解】 2.UDP通信程序 2.1 UDP发送数据【应用】 2.2UDP接收数据【应用】 2.3UDP通信程序练习【应用】 3.TCP通信程序 3.1TCP…...
Linux-socket详解
Linux-socket详解_socket linux-CSDN博客...
SQL Server 2022安装要求(硬件、软件、操作系统等)
SQL Server 2022安装要求 1、硬件要求2、软件要求3、操作系统支持4、Server Core 支持5、跨语言支持6、磁盘空间要求 1、硬件要求 以下内存和处理器要求适用于所有版本的 SQL Server: 组件要求存储SQL Server 要求最少 6 GB 的可用硬盘驱动器空间。 磁盘空间要求随…...
“众店模式”:创新驱动下的商业新生态
在数字化浪潮的推动下,传统商业模式正经历着前所未有的转型。“众店模式”作为一种新兴的商业模式,以其独特的商业逻辑和创新的玩法,为商家和消费者构建了一个共赢的商业新生态。 一、“众店模式”的核心构成 “众店模式”的成功࿰…...
54. 螺旋矩阵
https://leetcode.cn/problems/spiral-matrix/description/?envTypestudy-plan-v2&envIdtop-100-liked观察示例中的输出轨迹我们可以想到如下设计: 1.在朝某一方向行进到头后的改变方向是确定的,左->下,下->右,右->…...
剧本杀小程序,市场发展下的新机遇
剧本杀作为休闲娱乐的一种游戏方式,在短时间内进入了大众视野中,受到了广泛关注。近几年,剧本杀行业面临着创新挑战,商家需求寻求新的发展机遇,在市场饱和度下降的趋势下,获得市场份额。 随着科技的不断进…...
【系统架构设计师】论文:论基于 ABSD 的软件开发
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 摘要正文摘要 2022年5月,我就职的公司承接了xx的智慧党建工作,建设“党建红云” 系统,为xx公司的党组织提供觉务管理、服务功能,促进党员学习和党组织交流。我在该项目中承担架构设计师的职责,主导需求分析和…...
为什么OLED透明屏在同类产品中显示效果最好
说起OLED透明屏,这家伙在同类产品里那真的是“一枝独秀”啊!为啥这么说呢?且听我细细道来。 首先,OLED透明屏的透明度那是杠杠的!它不像传统显示屏那样有个固定的背景,而是可以实现像素级的透明效果。这样一…...
深度学习基础知识-Batch Normalization(BN)超详细解析
一、背景和问题定义 在深层神经网络(Deep Neural Networks, DNNs)中,层与层之间的输入分布会随着参数更新不断发生变化,这种现象被称为内部协变量偏移(Internal Covariate Shift)。具体来说,由…...
基于单片机的燃气报警阀门系统
本设计基于单片机的燃气报警阀门系统,燃气报警阀门系统采用STM32主控制器为核心芯片,外围电路由燃气传感器、OLED液晶显示模块、按键模块、蜂鸣器报警模块、电磁阀以及SIM800模块等模块组成。燃气传感器模块负责采集燃气浓度数据,采集完成由S…...
watch与computed的区别、运用的场景
computed和watch都是响应式数据变化的重要机制,但它们在功能、使用场景和性能表现上有显著的区别。 主要区别 功能和用途 1、computed:计算属性,用于基于其他数据属性进行计算,并返回一个结果。它具有缓存机制,只有当…...
【ESP32+MicroPython】开发环境部署
本教程将指导你如何在Visual Studio Code(VSCode)中设置ESP32的MicroPython开发环境。我们将涵盖从安装Python到烧录MicroPython固件的整个过程,以及如何配置VSCode以便与ESP32进行交互。 准备工作 安装Python 确保你的计算机上安装了Pyth…...
Vision - 开源视觉分割算法框架 Grounded SAM2 配置与推理 教程 (1)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143388189 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Ground…...
DAY21|二叉树Part08|LeetCode: 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
目录 LeetCode: 669. 修剪二叉搜索树 基本思路 C代码 LeetCode: 108.将有序数组转换为二叉搜索树 基本思路 C代码 LeetCode: 538.把二叉搜索树转换为累加树 基本思路 C代码 LeetCode: 669. 修剪二叉搜索树 力扣代码链接 文字讲解:LeetCode: 669. 修剪二叉搜…...
在gitlab,把新分支替换成master分支
1、备份master分支,可以打tag 2、删除master分支 正常情况下,master分支不允许删除,需要做两个操作才能删除 a、变更项目默认分支为非master分支,可以先随便选择 b、取消master为非保护分支 操作了上述两步,就可以删…...
使用 Spring Boot 集成 Thymeleaf 和 Flying Saucer 实现 PDF 导出
在 Spring Boot 项目中,生成 PDF 报表或发票是常见需求。本文将介绍如何使用 Spring Boot 集成 Thymeleaf 模板引擎和 Flying Saucer 实现 PDF 导出,并提供详细的代码实现和常见问题解决方案。 目录 一、项目依赖二、创建 Thymeleaf 模板三、创建 PDF 生…...
web——upload1——攻防世界
第一次做木马题目,有点懵逼,浮现一下做题思路 可以上传一个文件,通过学习学习到了一句话木马 一句话木马: 利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可…...
nginx 搭建网站
1.查看防火墙状态systemctl status firewalld 2.getenforce 3.安装nginx yum install nginx -y 4.网站信息 echo "welcome to yinchuankejixuanyuan" > /usr/share/nginx/html/index.html 5.查看命令状态 nginx -t 6.重启 systemctl restart nginx...
Java基础-Java中的常用类(上)
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 String类 创建字符串 字符串长度 连接字符串 创建格式化字符串 String 方法 System类 常用方法 方…...
周末造AI公司:无代码+AI工作流48小时MVP实战
1. 项目概述:当“周末造AI公司”成为可复现的工程实践你有没有见过这样的场景:周五下班前,三个人在咖啡馆里画了一张白板草图;周六上午用Notion搭好产品框架、下午用Glide连上Airtable跑通用户注册流程;周日下午把Chat…...
安科士(AndXe)SPF-10G-T :10G 电口模块,重塑短距网络升级性价比
数字化转型浪潮下,企业园区、数据中心对10Gbps 高速互联的需求呈爆发式增长。但传统 10G 升级方案深陷困境:光纤布线成本高昂、施工周期长且需专业运维技能,而多数企业机架内、相邻机架间及办公楼层内的链路距离普遍低于 30 米,光…...
5分钟掌握终极音乐解密方案:Unlock Music Electron完整指南
5分钟掌握终极音乐解密方案:Unlock Music Electron完整指南 【免费下载链接】unlock-music-electron Unlock Music Project - Electron Edition 在Electron构建的桌面应用中解锁各种加密的音乐文件 项目地址: https://gitcode.com/gh_mirrors/un/unlock-music-ele…...
深入理解Android网络开发:以OkHttp为核心的全面指南
引言 在移动应用开发中,网络通信是核心功能之一。Android平台提供了丰富的网络库和工具,但开发者常面临挑战,如性能优化、安全配置和弱网环境处理。OkHttp作为Android生态中最流行的HTTP客户端库,由Square公司开发,以其高效、灵活和易扩展的特性成为行业标准。它支持同步…...
边缘计算中的RSNN语音识别加速器设计与优化
1. 项目背景与核心创新在边缘计算设备上实现高效语音识别一直是个颇具挑战性的任务。传统基于RNN/LSTM的解决方案虽然精度尚可,但功耗和计算开销往往难以满足实时性要求。我们团队在28nm工艺节点上实现的这款RSNN(循环脉冲神经网络)语音识别加…...
Linux网络编程核心:Socket、字节序与TCP/UDP实战解析
1. 从零开始理解 Linux 网络编程:Socket、字节序与地址转换如果你刚开始接触 Linux 下的网络编程,看到一堆socket、bind、connect、htonl之类的函数,还有sockaddr_in这种结构体,可能会觉得头大。别担心,这种感觉我十几…...
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan安装超全攻略
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan安装超全攻略。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...
CentOS 7下Nginx集成SM2国密证书的完整实践指南
1. 为什么SM2证书在CentOS 7上配Nginx不是“装个包就能用”的事?你刚接到一个政务系统对接需求,对方明确要求必须使用国密SM2证书,且服务器环境锁定为CentOS 7。你信心满满地打开终端,yum install nginx,再把SM2证书丢…...
catlass - 让算子开发像搭积木一样简单
昇腾CANN的算子开发,以前是个"体力活"——每个算子都要手写 C 代码,调内存、调流水、调同步,写对了算你厉害,写错了调试三天。 catlass 要解决的就是这个问题:把算子开发从"手写汇编"变成"搭…...
什么是占位符
占位符就是字符串里预留空位,后面填上真实数据,PyCharm里直接写代码就能运行调试1.%格式化占位符(旧式格式化)语法格式:"模板字符串"%(数据1,数据2...)基础类型占位符1.%s :适配字符串…...
