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

Pytorch Compatibility Matrix

我遇到一个非常有意思的问题: 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!