网站工期表怎么做,山东 网站建设,网站架构策划书,西安火车站网站建设操作系统#xff1a;ubuntu22.04 LTS
python版本#xff1a;3.12.7
最近学习了用poetry配置python虚拟环境#xff0c;当为不同的项目配置cuda时#xff0c;会遇到不同的项目使用的cuda版本不一致的情况。
像torch 这样的库#xff0c;它们会对cuda-toolkit有依赖…操作系统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.1cu121-cp312-cp312-linux_x86_64.whl}
或者
torch 2.2.1
这样的依赖就行了poetry会自动下载依赖的cuda-toolkit的python库
这时候通过poetry show torch --tree可以查看到依赖关系
useruser-Ubuntu2204:~/projects/cuda-test$ poetry show torch --tree
torch 2.2.1cu121 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的依赖的
useruser-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.0nvidia-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 }