Cuda 和 OpenAI Whisper:强制使用 GPU 而不是 CPU 不起作用?

thi*_*way 4 python openai-whisper

tldr:我的假设是否正确torch.cuda.init()device = "cuda"并且result = model.transcribe(etc)应该足以强制使用 GPU?

我检查了几个论坛帖子,但找不到解决方案。抱歉,如果这很愚蠢。我也在耳语 git 上发帖,但也许它不是耳语特定的。

简而言之,这是我的 python 脚本:

import whisper 
import soundfile as sf
import torch

# specify the path to the input audio file
input_file = "H:\\path\\3minfile.WAV"

# specify the path to the output transcript file
output_file = "H:\\path\\transcript.txt"

# Cuda allows for the GPU to be used which is more optimized than the cpu
torch.cuda.init()
device = "cuda" # if torch.cuda.is_available() else "cpu"

# Load audio file
audio_data, sample_rate = sf.read(input_file, always_2d=True)

#load whisper model
model_size = "tiny"
print("loading model :", model_size)
model = whisper.load_model(model_size).to(device)
print(model_size, "model loaded")

# Initialize variables
results = []
language = "fr"

# Transcribe audio
with torch.cuda.device(device):
    result = model.transcribe(audio_data, language=language, fp16=False, word_timestamps=True)
Run Code Online (Sandbox Code Playgroud)

但是,它在最后一行返回以下错误,暗示它正在尝试在 cpu 上运行它:

RuntimeError: [在 C:\actions-runner_work\pytorch\pytorch\builder\windows\pytorch\c10\core\impl\alloc_cpu.cpp:72 处执行失败] 数据。DefaultCPUAllocator:内存不足:您尝试分配 30623038517864 字节。

我正在使用 Jupyter,我检查了它使用的 pytorch 版本是 cuda/gpu 版本,而不是 cpu 锁定版本: print(torch.__version__)

2.0.0+cu117

所以我真的不明白。pythorch库会不会有冲突?难道我做错了什么 ?transcribe() 函数确实使用 cpu 而不是 gpu 吗?

我正在使用 anaconda3,以下是conda list返回的内容,以防有帮助:

康达名单

# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py39haa95532_0
alabaster                 0.7.12             pyhd3eb1b0_0
anaconda                  2022.10                  py39_0
anaconda-client           1.11.0           py39haa95532_0
anaconda-navigator        2.3.1            py39haa95532_0
anaconda-project          0.11.1           py39haa95532_0
anyio                     3.5.0            py39haa95532_0
appdirs                   1.4.4              pyhd3eb1b0_0
argon2-cffi               21.3.0             pyhd3eb1b0_0
argon2-cffi-bindings      21.2.0           py39h2bbff1b_0
arrow                     1.2.2              pyhd3eb1b0_0
astroid                   2.11.7           py39haa95532_0
astropy                   5.1              py39h080aedc_0
atomicwrites              1.4.0                      py_0
attrs                     21.4.0             pyhd3eb1b0_0
automat                   20.2.0                     py_0
autopep8                  1.6.0              pyhd3eb1b0_1
babel                     2.9.1              pyhd3eb1b0_0
backcall                  0.2.0              pyhd3eb1b0_0
backports                 1.1                pyhd3eb1b0_0
backports.functools_lru_cache 1.6.4              pyhd3eb1b0_0
backports.tempfile        1.0                pyhd3eb1b0_1
backports.weakref         1.0.post1                  py_1
bcrypt                    3.2.0            py39h2bbff1b_1
beautifulsoup4            4.11.1           py39haa95532_0
binaryornot               0.4.4              pyhd3eb1b0_1
bitarray                  2.5.1            py39h2bbff1b_0
bkcharts                  0.2              py39haa95532_1
black                     22.6.0           py39haa95532_0
blas                      1.0                         mkl
bleach                    4.1.0              pyhd3eb1b0_0
blosc                     1.21.0               h19a0ad4_1
bokeh                     2.4.3            py39haa95532_0
boto3                     1.24.28          py39haa95532_0
botocore                  1.27.28          py39haa95532_0
bottleneck                1.3.5            py39h080aedc_0
brotli                    1.0.9                h2bbff1b_7
brotli-bin                1.0.9                h2bbff1b_7
brotlipy                  0.7.0           py39h2bbff1b_1003
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.9.14        py39haa95532_0
cffi                      1.15.1           py39h2bbff1b_0
cfitsio                   3.470                h2bbff1b_7
chardet                   4.0.0           py39haa95532_1003
charls                    2.2.0                h6c2663c_0
charset-normalizer        2.0.4              pyhd3eb1b0_0
click                     8.0.4            py39haa95532_0
cloudpickle               2.0.0              pyhd3eb1b0_0
clyent                    1.2.2            py39haa95532_1
colorama                  0.4.5            py39haa95532_0
colorcet                  3.0.0            py39haa95532_0
comtypes                  1.1.10          py39haa95532_1002
conda                     23.1.0           py39haa95532_0
conda-build               3.22.0           py39haa95532_0
conda-content-trust       0.1.3            py39haa95532_0
conda-env                 2.6.0                haa95532_1
conda-pack                0.6.0              pyhd3eb1b0_0
conda-package-handling    2.0.2            py39haa95532_0
conda-package-streaming   0.7.0            py39haa95532_0
conda-repo-cli            1.0.27           py39haa95532_0
conda-token               0.4.0              pyhd3eb1b0_0
conda-verify              3.4.2                      py_1
console_shortcut          0.1.1                         4
constantly                15.1.0             pyh2b92418_0
cookiecutter              1.7.3              pyhd3eb1b0_0
cryptography              37.0.1           py39h21b164f_0
cssselect                 1.1.0              pyhd3eb1b0_0
cuda-cccl                 12.1.55                       0    nvidia
cuda-cudart               11.8.89                       0    nvidia
cuda-cudart-dev           11.8.89                       0    nvidia
cuda-cupti                11.8.87                       0    nvidia
cuda-libraries            11.8.0                        0    nvidia
cuda-libraries-dev        11.8.0                        0    nvidia
cuda-nvrtc                11.8.89                       0    nvidia
cuda-nvrtc-dev            11.8.89                       0    nvidia
cuda-nvtx                 11.8.86                       0    nvidia
cuda-profiler-api         12.1.55                       0    nvidia
cuda-runtime              11.8.0                        0    nvidia
cudatoolkit               10.1.243             h74a9793_0
curl                      7.84.0               h2bbff1b_0
cycler                    0.11.0             pyhd3eb1b0_0
cython                    0.29.32          py39hd77b12b_0
cytoolz                   0.11.0           py39h2bbff1b_0
daal4py                   2021.6.0         py39h757b272_1
dal                       2021.6.0           h59b6b97_874
dask                      2022.7.0         py39haa95532_0
dask-core                 2022.7.0         py39haa95532_0
dataclasses               0.8                pyh6d0b6a4_7
datashader                0.14.1           py39haa95532_0
datashape                 0.5.4            py39haa95532_1
debugpy                   1.5.1            py39hd77b12b_0
decorator                 5.1.1              pyhd3eb1b0_0
defusedxml                0.7.1              pyhd3eb1b0_0
diff-match-patch          20200713           pyhd3eb1b0_0
dill                      0.3.4              pyhd3eb1b0_0
distributed               2022.7.0         py39haa95532_0
docutils                  0.18.1           py39haa95532_3
entrypoints               0.4              py39haa95532_0
et_xmlfile                1.1.0            py39haa95532_0
ffmpeg                    1.4                      pypi_0    pypi
ffmpeg-python             0.2.0                    pypi_0    pypi
fftw                      3.3.9                h2bbff1b_1
filelock                  3.6.0              pyhd3eb1b0_0
flake8                    4.0.1              pyhd3eb1b0_1
flask                     1.1.2              pyhd3eb1b0_0
fonttools                 4.25.0             pyhd3eb1b0_0
freetype                  2.10.4               hd328e21_0
fsspec                    2022.7.1         py39haa95532_0
future                    0.18.2           py39haa95532_1
gensim                    4.1.2            py39hd77b12b_0
giflib                    5.2.1                h62dcd97_0
glob2                     0.7                pyhd3eb1b0_0
greenlet                  1.1.1            py39hd77b12b_0
h5py                      3.7.0            py39h3de5c98_0
hdf5                      1.10.6               h1756f20_1
heapdict                  1.0.1              pyhd3eb1b0_0
holoviews                 1.15.0           py39haa95532_0
hvplot                    0.8.0            py39haa95532_0
hyperlink                 21.0.0             pyhd3eb1b0_0
icc_rt                    2022.1.0             h6049295_2
icu                       58.2                 ha925a31_3
idna                      3.3                pyhd3eb1b0_0
imagecodecs               2021.8.26        py39hc0a7faf_1
imageio                   2.19.3           py39haa95532_0
imagesize                 1.4.1            py39haa95532_0
importlib-metadata        4.11.3           py39haa95532_0
importlib_metadata        4.11.3               hd3eb1b0_0
incremental               21.3.0             pyhd3eb1b0_0
inflection                0.5.1            py39haa95532_0
iniconfig                 1.1.1              pyhd3eb1b0_0
intake                    0.6.5              pyhd3eb1b0_0
intel-openmp              2021.4.0          haa95532_3556
intervaltree              3.1.0              pyhd3eb1b0_0
ipykernel                 6.15.2           py39haa95532_0
ipython                   7.31.1           py39haa95532_1
ipython_genutils          0.2.0              pyhd3eb1b0_1
ipywidgets                7.6.5              pyhd3eb1b0_1
isort                     5.9.3              pyhd3eb1b0_0
itemadapter               0.3.0              pyhd3eb1b0_0
itemloaders               1.0.4              pyhd3eb1b0_1
itsdangerous              2.0.1              pyhd3eb1b0_0
jdcal                     1.4.1              pyhd3eb1b0_0
jedi                      0.18.1           py39haa95532_1
jellyfish                 0.9.0            py39h2bbff1b_0
jinja2                    2.11.3             pyhd3eb1b0_0
jinja2-time               0.2.0              pyhd3eb1b0_3
jmespath                  0.10.0             pyhd3eb1b0_0
joblib                    1.1.0              pyhd3eb1b0_0
jpeg                      9e                   h2bbff1b_0
jq                        1.6                  haa95532_1
json5                     0.9.6              pyhd3eb1b0_0
jsonschema                4.16.0           py39haa95532_0
jupyter                   1.0.0            py39haa95532_8
jupyter_client            7.3.4            py39haa95532_0
jupyter_console           6.4.3              pyhd3eb1b0_0
jupyter_core              4.11.1           py39haa95532_0
jupyter_server            1.18.1           py39haa95532_0
jupyterlab                3.4.4            py39haa95532_0
jupyterlab_pygments       0.1.2                      py_0
jupyterlab_server         2.10.3             pyhd3eb1b0_1
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1
keyring                   23.4.0           py39haa95532_0
kiwisolver                1.4.2            py39hd77b12b_0
lazy-object-proxy         1.6.0            py39h2bbff1b_0
lcms2                     2.12                 h83e58a3_0
lerc                      3.0                  hd77b12b_0
libaec                    1.0.4                h33f27b4_1
libarchive                3.6.1                hebabd0d_0
libbrotlicommon           1.0.9                h2bbff1b_7
libbrotlidec              1.0.9                h2bbff1b_7
libbrotlienc              1.0.9                h2bbff1b_7
libcublas                 11.11.3.6                     0    nvidia
libcublas-dev             11.11.3.6                     0    nvidia
libcufft                  10.9.0.58                     0    nvidia
libcufft-dev              10.9.0.58                     0    nvidia
libcurand                 10.3.2.56                     0    nvidia
libcurand-dev             10.3.2.56                     0    nvidia
libcurl                   7.84.0               h86230a5_0
libcusolver               11.4.1.48                     0    nvidia
libcusolver-dev           11.4.1.48                     0    nvidia
libcusparse               11.7.5.86                     0    nvidia
libcusparse-dev           11.7.5.86                     0    nvidia
libdeflate                1.8                  h2bbff1b_5
libiconv                  1.16                 h2bbff1b_2
liblief                   0.11.5               hd77b12b_1
libnpp                    11.8.0.86                     0    nvidia
libnpp-dev                11.8.0.86                     0    nvidia
libnvjpeg                 11.9.0.86                     0    nvidia
libnvjpeg-dev             11.9.0.86                     0    nvidia
libpng                    1.6.37               h2a8f88b_0
libsodium                 1.0.18               h62dcd97_0
libspatialindex           1.9.3                h6c2663c_0
libssh2                   1.10.0               hcd4344a_0
libtiff                   4.4.0                h8a3f274_0
libuv                     1.44.2               h2bbff1b_0
libwebp                   1.2.2                h2bbff1b_0
libxml2                   2.9.14               h0ad7f3c_0
libxslt                   1.1.35               h2bbff1b_0
libzopfli                 1.0.3                ha925a31_0
llvmlite                  0.38.0           py39h23ce68f_0
locket                    1.0.0            py39haa95532_0
lxml                      4.9.1            py39h1985fb9_0
lz4                       3.1.3            py39h2bbff1b_0
lz4-c                     1.9.3                h2bbff1b_1
lzo                       2.10                 he774522_2
m2-msys2-runtime          2.5.0.17080.65c939c               3
m2-patch                  2.7.5                         2
m2w64-libwinpthread-git   5.0.0.4634.697f757               2
markdown                  3.3.4            py39haa95532_0
markupsafe                2.0.1            py39h2bbff1b_0
matplotlib                3.5.2            py39haa95532_0
matplotlib-base           3.5.2            py39hd77b12b_0
matplotlib-inline         0.1.6            py39haa95532_0
mccabe                    0.6.1            py39haa95532_2
menuinst                  1.4.19           py39h59b6b97_0
mistune                   0.8.4           py39h2bbff1b_1000
mkl                       2021.4.0           haa95532_640
mkl-service               2.4.0            py39h2bbff1b_0
mkl_fft                   1.3.1            py39h277e83a_0
mkl_random                1.2.2            py39hf11a4ad_0
mock                      4.0.3              pyhd3eb1b0_0
more-itertools            9.1.0                    pypi_0    pypi
mpmath                    1.2.1            py39haa95532_0
msgpack-python            1.0.3            py39h59b6b97_0
msys2-conda-epoch         20160418                      1
multipledispatch          0.6.0            py39haa95532_0
munkres                   1.1.4                      py_0
mypy_extensions           0.4.3            py39haa95532_1
navigator-updater         0.3.0            py39haa95532_0
nbclassic                 0.3.5              pyhd3eb1b0_0
nbclient                  0.5.13           py39haa95532_0
nbconvert                 6.4.4            py39haa95532_0
nbformat                  5.5.0            py39haa95532_0
nest-asyncio              1.5.5            py39haa95532_0
networkx                  2.8.4            py39haa95532_0
nltk                      3.7                pyhd3eb1b0_0
nose                      1.3.7           pyhd3eb1b0_1008
notebook                  6.4.12           py39haa95532_0
numba                     0.55.1           py39hf11a4ad_0
numexpr                   2.8.3            py39hb80d3ca_0
numpy                     1.21.5           py39h7a0a035_3
numpy-base                1.21.5           py39hca35cd5_3
numpydoc                  1.4.0            py39haa95532_0
olefile                   0.46               pyhd3eb1b0_0
openai-whisper            20230314                 pypi_0    pypi
openjpeg                  2.4.0                h4fc8c34_0
openpyxl                  3.0.10           py39h2bbff1b_0
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3               pyhd3eb1b0_0
pandas                    1.4.4            py39hd77b12b_0
pandocfilters             1.5.0              pyhd3eb1b0_0
panel                     0.13.1           py39haa95532_0
param                     1.12.0             pyhd3eb1b0_0
paramiko                  2.8.1              pyhd3eb1b0_0
parsel                    1.6.0            py39haa95532_0
parso                     0.8.3              pyhd3eb1b0_0
partd                     1.2.0              pyhd3eb1b0_1
pathlib                   1.0.1              pyhd3eb1b0_1
pathspec                  0.9.0            py39haa95532_0
patsy                     0.5.2            py39haa95532_1
pep8                      1.7.1            py39haa95532_1
pexpect                   4.8.0              pyhd3eb1b0_3
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    9.2.0            py39hdc2b20a_1
pip                       22.2.2           py39haa95532_0
pkginfo                   1.8.2              pyhd3eb1b0_0
platformdirs              2.5.2            py39haa95532_0
plotly                    5.9.0            py39haa95532_0
pluggy                    1.0.0            py39haa95532_1
powershell_shortcut       0.0.1                         3
poyo                      0.5.0              pyhd3eb1b0_0
prometheus_client         0.14.1           py39haa95532_0
prompt-toolkit            3.0.20             pyhd3eb1b0_0
prompt_toolkit            3.0.20               hd3eb1b0_0
protego                   0.1.16                     py_0
psutil                    5.9.0            py39h2bbff1b_0
ptyprocess                0.7.0              pyhd3eb1b0_2
py                        1.11.0             pyhd3eb1b0_0
py-lief                   0.11.5           py39hd77b12b_1
pyasn1                    0.4.8              pyhd3eb1b0_0
pyasn1-modules            0.2.8                      py_0
pycodestyle               2.8.0              pyhd3eb1b0_0
pycosat                   0.6.3            py39h2bbff1b_0
pycparser                 2.21               pyhd3eb1b0_0
pyct                      0.4.8            py39haa95532_1
pycurl                    7.45.1           py39hcd4344a_0
pydispatcher              2.0.5            py39haa95532_2
pydocstyle                6.1.1              pyhd3eb1b0_0
pyerfa                    2.0.0            py39h2bbff1b_0
pyflakes                  2.4.0              pyhd3eb1b0_0
pygments                  2.11.2             pyhd3eb1b0_0
pyhamcrest                2.0.2              pyhd3eb1b0_2
pyjwt                     2.4.0            py39haa95532_0
pylint                    2.14.5           py39haa95532_0
pyls-spyder               0.4.0              pyhd3eb1b0_0
pynacl                    1.5.0            py39h8cc25b3_0
pyodbc                    4.0.34           py39hd77b12b_0
pyopenssl                 22.0.0             pyhd3eb1b0_0
pyparsing                 3.0.9            py39haa95532_0
pyqt                      5.9.2            py39hd77b12b_6
pyrsistent                0.18.0           py39h196d8e1_0
pysocks                   1.7.1            py39haa95532_0
pytables                  3.6.1            py39h56d22b6_1
pytest                    7.1.2            py39haa95532_0
python                    3.9.13               h6244533_1
python-dateutil           2.8.2              pyhd3eb1b0_0
python-fastjsonschema     2.16.2           py39haa95532_0
python-libarchive-c       2.9                pyhd3eb1b0_1
python-lsp-black          1.0.0              pyhd3eb1b0_0
python-lsp-json