nvidia-smi
![[Pasted image 20250212114748.png]]
右上角的 CUDA Version 是计算机支持的最高CUDA版本,Driver Version 是NVIDIA驱动版本。
import torch
print("Torch version:", torch.__version__)
print("CUDA version:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("CUDA device:", torch.cuda.get_device_name(torch.cuda.current_device()))
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
我遇到一个非常有意思的问题: pip安装了错误的cached版本:
using cached nvidia_cublas_cu12
这是因为之前我没控制好环境,导致pip先在cuda 12.4环境中安装了项目的包,但是项目的实际CUDA版本是11.8。
先将删除python所有的包,再单独指定CUDA版本:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
然后就可以重新安装项目的其他包了,
在Linux中,pip的缓存储存在~/.cache/pip
如果 pip 版本大于 6.0,可以添加 --no-cache-dir flag。
File "/home/lingc/MyProjects/VidComet/vidcomet/lib/python3.10/site-packages/whisperx/asr.py", line 219, in transcribe
language = language or self.detect_language(audio)
File "/home/lingc/MyProjects/VidComet/vidcomet/lib/python3.10/site-packages/whisperx/asr.py", line 284, in detect_language
encoder_output = self.model.encode(segment)
File "/home/lingc/MyProjects/VidComet/vidcomet/lib/python3.10/site-packages/whisperx/asr.py", line 96, in encode
return self.model.encode(features, to_cpu=to_cpu)
RuntimeError: Library libcublas.so.12 is not found or cannot be loaded
CTranlate2的问题,CTranslate 4.0.0已经不再支持CUDA11.8了,所以需要升级到CUDA 12.x
whisperx基于fast-whisper,而fast-whisper不在
# point to VENV's local CUDA 11.8 python lib
export LD_LIBRARY_PATH=${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cublas/lib:${PWD}/.venv/lib64/python3.11/site-packages/nvidia/cudnn/lib
export LD_LIBRARY_PATH=/home/lingc/miniconda3/envs/vidcomet/lib/python3.10/site-packages/nvidia/cublas/lib:/home/lingc/miniconda3/envs/vidcomet/lib/python3.10/site-packages/nvidia/cudnn/lib
Linux:
Could not load library libcudnn_ops_infer.so.8
Windows:
Error: Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!