pywhispercpp icon indicating copy to clipboard operation
pywhispercpp copied to clipboard

CUDA support from Windows

Open robante15 opened this issue 1 year ago • 15 comments

How can I install pywhispercpp with CUDA support from Windows? Adding the environment variable WHISPER_CUDA=1 does not cause any changes in the compilation

robante15 avatar Sep 22 '24 22:09 robante15

Can you try with GGML_CUDA=1 instead ?

absadiki avatar Sep 23 '24 03:09 absadiki

In this case it does compile, and it does generate the DLL But when I run it I get the following error:

PS E:\Github\TG_WhisperCpp> & e:/Github/TG_WhisperCpp/.venv/Scripts/python.exe e:/Github/TG_WhisperCpp/main.py
Traceback (most recent call last):
  File "e:\Github\TG_WhisperCpp\main.py", line 4, in <module>
    import pywhisp
  File "e:\Github\TG_WhisperCpp\pywhisp.py", line 1, in <module>
    from pywhispercpp.model import Model
  File "E:\Github\TG_WhisperCpp\.venv\lib\site-packages\pywhispercpp\__init__.py", line 14, in <module>
    ctypes.CDLL(os.path.join(os.path.dirname(__file__), 'lib', file))
  File "C:\Users\Roberto Acevedo\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'E:\Github\TG_WhisperCpp\.venv\lib\site-packages\pywhispercpp\lib\ggml.dll' (or one of its dependencies). Try using the full path with constructor syntax.

robante15 avatar Sep 23 '24 23:09 robante15

Could you please check what's inside the lib folder E:\Github\TG_WhisperCpp\.venv\lib\site-packages\pywhispercpp\lib\ ? and whether the ggml.dll file is there ?

absadiki avatar Sep 24 '24 01:09 absadiki

Inside the folder E:\Github\TG_WhisperCpp\.venv\Lib\site-packages\pywhispercpp\lib there are three files

_pywhispercpp.cp310-win_amd64.pyd
ggml.dll
whisper.dll

robante15 avatar Sep 24 '24 05:09 robante15

It seems good to me! the ggml.dll file is there! Idk why it's complaining about not finding it!

Are you able to compile and run whisper.cpp with cuda support ?

absadiki avatar Sep 25 '24 02:09 absadiki

I am having some trouble with this too. I installed Cuda, set both environment variables:

(.venv)
jts599@DESKTOP-36J2IL3 MINGW64 /d/pywhispercpp/pywhispercpp
$ echo $GGML_CUDA
1
(.venv)
jts599@DESKTOP-36J2IL3 MINGW64 /d/pywhispercpp/pywhispercpp
$ echo $WHISPER_CUDA
1

Then I installed using pip install .

my site-packages looks a little different than indicated here, but I see this ggml.dll: .venv\Lib\site-packages\ggml-4e4f3ba44e902a18dc9e351102c76f82.dll

Whenever I run my transcription script, my CPU usage shoots up, but my GPU usage does not change, so I am pretty sure that I am not properly utilizing my GPU. Any advice on next things to try?

Happy to provide any compilation info, but I do not know how to get it.

jts599 avatar Nov 24 '24 17:11 jts599

@jts599, if you don't see any GPU usage, it's likely that whisper.cpp didn't find nvcc during compilation and was compiled with CPU-only. Please check if nvcc is correctly installed and accessible in your PATH ?

absadiki avatar Nov 24 '24 22:11 absadiki

Seems like it should be good? $nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Oct_30_01:18:48_Pacific_Daylight_Time_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0

I certainly had built it once or twice without it installed, but have since reinstalled using: pip uninstall pywhispercpp git reset --hard pip install .

I assume that rebuilds pywhispercpp in the process? I also once removed the entire directory and re-cloned.

jts599 avatar Nov 24 '24 23:11 jts599

Yeah, seems good.

In that case can you run the compilation with the verbose flag, to see what's going on:

GGML_CUDA=1 pip install . --verbose

absadiki avatar Nov 25 '24 01:11 absadiki

install_log.txt

jts599 avatar Nov 26 '24 00:11 jts599

Yeah, no cuda is there. If you are using mingw, I think it's tricky to get it right. A lot of things can go wrong. Why not just use WSL ?

absadiki avatar Nov 26 '24 19:11 absadiki

I get an error with WSL about virtualizations not being enabled on my computer that I have spent a number of hours trying to fix already, I have a linux install on my computer too. I also tried there, but am less confident of my CUDA driver config. I may give it another go and see if I can get it to work.

jts599 avatar Nov 28 '24 20:11 jts599

Yes, if you have a Linux installation, give it a try. It's working on my end. Just make sure the NVIDIA drivers are installed correctly and that nvcc is available system-wide.

absadiki avatar Nov 28 '24 22:11 absadiki

Tried again on my linux install. I see the install log pick up that the environment variable is set, but I am still not seeing it run on my GPU

echo $WHISPER_CUDA
1
echo $GGML_CUDA
1
nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

(Sorry for the formatting. Could not get markdown to cooperate. Figured this is less annoying than a text file)

pip install . --verbose

(.venv) jts599@jts599-desktop-ubuntu:/media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp$ pip install . --verbose Using pip 24.3.1 from /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages/pip (python 3.12) Processing /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp Running command pip subprocess to install build dependencies Using pip 24.3.1 from /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages/pip (python 3.12) Collecting setuptools>=42 Obtaining dependency information for setuptools>=42 from https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl.metadata Using cached setuptools-75.6.0-py3-none-any.whl.metadata (6.7 kB) Collecting wheel Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl.metadata Using cached wheel-0.45.1-py3-none-any.whl.metadata (2.3 kB) Collecting ninja Obtaining dependency information for ninja from https://files.pythonhosted.org/packages/62/54/787bb70e6af2f1b1853af9bab62a5e7cb35b957d72daf253b7f3c653c005/ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata Using cached ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (5.3 kB) Collecting cmake>=3.12 Obtaining dependency information for cmake>=3.12 from https://files.pythonhosted.org/packages/b8/8d/a7cf7573df4c67de7cb4b2e36cfc790462b90813baa14604c3693a23d89b/cmake-3.31.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata Using cached cmake-3.31.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB) Collecting repairwheel Obtaining dependency information for repairwheel from https://files.pythonhosted.org/packages/9a/c4/a22f2a9807661d4f9375a46738695c6f2441821b78c09d3943c93875267a/repairwheel-0.3.1-py3-none-any.whl.metadata Using cached repairwheel-0.3.1-py3-none-any.whl.metadata (4.3 kB) Collecting setuptools-scm>=8 Obtaining dependency information for setuptools-scm>=8 from https://files.pythonhosted.org/packages/a0/b9/1906bfeb30f2fc13bb39bf7ddb8749784c05faadbd18a21cf141ba37bff2/setuptools_scm-8.1.0-py3-none-any.whl.metadata Using cached setuptools_scm-8.1.0-py3-none-any.whl.metadata (6.6 kB) Collecting delvewheel>=1.3.6 (from repairwheel) Obtaining dependency information for delvewheel>=1.3.6 from https://files.pythonhosted.org/packages/3a/e6/3e7da68dccc7f1ba94f97f6d7e1effe57afffd0ad5ea3dd9d5c451799664/delvewheel-1.9.0-py3-none-any.whl.metadata Using cached delvewheel-1.9.0-py3-none-any.whl.metadata (17 kB) Collecting macholib>=1.16 (from repairwheel) Obtaining dependency information for macholib>=1.16 from https://files.pythonhosted.org/packages/d1/5d/c059c180c84f7962db0aeae7c3b9303ed1d73d76f2bfbc32bc231c8be314/macholib-1.16.3-py2.py3-none-any.whl.metadata Using cached macholib-1.16.3-py2.py3-none-any.whl.metadata (11 kB) Collecting packaging>=20.9 (from repairwheel) Obtaining dependency information for packaging>=20.9 from https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl.metadata Using cached packaging-24.2-py3-none-any.whl.metadata (3.2 kB) Collecting pefile>=2023.2.7 (from repairwheel) Obtaining dependency information for pefile>=2023.2.7 from https://files.pythonhosted.org/packages/54/16/12b82f791c7f50ddec566873d5bdd245baa1491bac11d15ffb98aecc8f8b/pefile-2024.8.26-py3-none-any.whl.metadata Using cached pefile-2024.8.26-py3-none-any.whl.metadata (1.4 kB) Collecting pyelftools>=0.24 (from repairwheel) Obtaining dependency information for pyelftools>=0.24 from https://files.pythonhosted.org/packages/f8/64/711030d9fe9ccaf6ee3ab1bcf4801c6bb3d0e585af18824a50b016b4f39c/pyelftools-0.31-py3-none-any.whl.metadata Using cached pyelftools-0.31-py3-none-any.whl.metadata (381 bytes) Collecting altgraph>=0.17 (from macholib>=1.16->repairwheel) Obtaining dependency information for altgraph>=0.17 from https://files.pythonhosted.org/packages/4d/3f/3bc3f1d83f6e4a7fcb834d3720544ca597590425be5ba9db032b2bf322a2/altgraph-0.17.4-py2.py3-none-any.whl.metadata Using cached altgraph-0.17.4-py2.py3-none-any.whl.metadata (7.3 kB) Using cached setuptools-75.6.0-py3-none-any.whl (1.2 MB) Using cached wheel-0.45.1-py3-none-any.whl (72 kB) Using cached ninja-1.11.1.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (422 kB) Using cached cmake-3.31.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.8 MB) Using cached repairwheel-0.3.1-py3-none-any.whl (115 kB) Using cached setuptools_scm-8.1.0-py3-none-any.whl (43 kB) Using cached delvewheel-1.9.0-py3-none-any.whl (57 kB) Using cached macholib-1.16.3-py2.py3-none-any.whl (38 kB) Using cached packaging-24.2-py3-none-any.whl (65 kB) Using cached pefile-2024.8.26-py3-none-any.whl (74 kB) Using cached pyelftools-0.31-py3-none-any.whl (180 kB) Using cached altgraph-0.17.4-py2.py3-none-any.whl (21 kB) Installing collected packages: pyelftools, altgraph, wheel, setuptools, pefile, packaging, ninja, macholib, cmake, setuptools-scm, delvewheel, repairwheel changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/wheel to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/macho_dump to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/macho_find to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/macho_standalone to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/ccmake to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/cmake to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/cpack to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/ctest to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/delvewheel to 775 changing mode of /tmp/pip-build-env-469k5li1/overlay/bin/repairwheel to 775 Successfully installed altgraph-0.17.4 cmake-3.31.1 delvewheel-1.9.0 macholib-1.16.3 ninja-1.11.1.2 packaging-24.2 pefile-2024.8.26 pyelftools-0.31 repairwheel-0.3.1 setuptools-75.6.0 setuptools-scm-8.1.0 wheel-0.45.1 Installing build dependencies ... done Running command Getting requirements to build wheel running egg_info writing pywhispercpp.egg-info/PKG-INFO writing dependency_links to pywhispercpp.egg-info/dependency_links.txt writing entry points to pywhispercpp.egg-info/entry_points.txt writing requirements to pywhispercpp.egg-info/requires.txt writing top-level names to pywhispercpp.egg-info/top_level.txt reading manifest template 'MANIFEST.in' warning: no files found matching 'version.txt' warning: no previously-included files found matching 'whisper.cpp//*.o' warning: no previously-included files found matching 'whisper.cpp//.so' warning: no previously-included files found matching 'whisper.cpp/**/.a' warning: no previously-included files found matching 'whisper.cpp//*.dylib' warning: no previously-included files found matching 'whisper.cpp//.dll' warning: no previously-included files found matching 'whisper.cpp/**/.lib' adding license file 'LICENSE' writing manifest file 'pywhispercpp.egg-info/SOURCES.txt' Getting requirements to build wheel ... done Running command Preparing metadata (pyproject.toml) running dist_info creating /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info writing /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/PKG-INFO writing dependency_links to /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/dependency_links.txt writing entry points to /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/entry_points.txt writing requirements to /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/requires.txt writing top-level names to /tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/top_level.txt writing manifest file '/tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'version.txt' warning: no previously-included files found matching 'whisper.cpp//*.o' warning: no previously-included files found matching 'whisper.cpp//.so' warning: no previously-included files found matching 'whisper.cpp/**/.a' warning: no previously-included files found matching 'whisper.cpp//*.dylib' warning: no previously-included files found matching 'whisper.cpp//.dll' warning: no previously-included files found matching 'whisper.cpp/**/.lib' adding license file 'LICENSE' writing manifest file '/tmp/pip-modern-metadata-mk5x53cr/pywhispercpp.egg-info/SOURCES.txt' creating '/tmp/pip-modern-metadata-mk5x53cr/pywhispercpp-1.3.0.dist-info' Preparing metadata (pyproject.toml) ... done Requirement already satisfied: numpy in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from pywhispercpp==1.3.0) (2.1.3) Requirement already satisfied: requests in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from pywhispercpp==1.3.0) (2.32.3) Requirement already satisfied: tqdm in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from pywhispercpp==1.3.0) (4.67.1) Requirement already satisfied: platformdirs in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from pywhispercpp==1.3.0) (4.3.6) Requirement already satisfied: charset-normalizer<4,>=2 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (3.4.0) Requirement already satisfied: idna<4,>=2.5 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (2024.8.30) Building wheels for collected packages: pywhispercpp Running command Building wheel for pywhispercpp (pyproject.toml) running bdist_wheel running build running build_py copying ./pywhispercpp/constants.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/model.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/utils.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/init.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/examples/assistant.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/livestream.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/main.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/recording.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/init.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples running egg_info writing pywhispercpp.egg-info/PKG-INFO writing dependency_links to pywhispercpp.egg-info/dependency_links.txt writing entry points to pywhispercpp.egg-info/entry_points.txt writing requirements to pywhispercpp.egg-info/requires.txt writing top-level names to pywhispercpp.egg-info/top_level.txt reading manifest template 'MANIFEST.in' warning: no files found matching 'version.txt' warning: no previously-included files found matching 'whisper.cpp//*.o' warning: no previously-included files found matching 'whisper.cpp//.so' warning: no previously-included files found matching 'whisper.cpp/**/.a' warning: no previously-included files found matching 'whisper.cpp//*.dylib' warning: no previously-included files found matching 'whisper.cpp//.dll' warning: no previously-included files found matching 'whisper.cpp/**/.lib' adding license file 'LICENSE' writing manifest file 'pywhispercpp.egg-info/SOURCES.txt' running build_ext CMake Deprecation Warning at pybind11/CMakeLists.txt:8 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- pybind11 v2.9.2
CMake Warning (dev) at pybind11/tools/FindPythonLibsNew.cmake:98 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  pybind11/tools/pybind11Tools.cmake:50 (find_package)
  pybind11/tools/pybind11Common.cmake:206 (include)
  pybind11/CMakeLists.txt:200 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at whisper.cpp/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


CMake Warning at whisper.cpp/CMakeLists.txt:103 (message):
  WHISPER_CUDA is deprecated and will be removed in the future.

  Use GGML_CUDA instead

Call Stack (most recent call first):
  whisper.cpp/CMakeLists.txt:109 (whisper_option_depr)


-- OpenMP found
-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- x86 detected
-- Configuring done (0.1s)
-- Generating done (0.0s)
CMake Warning:
  Manually-specified variables were not used by the project:

    PATH
    PIP_BUILD_TRACKER
    PYTHONPATH


-- Build files have been written to: /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/temp.linux-x86_64-cpython-312/_pywhispercpp
[1/1] Creating library symlink /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/lib.linux-x86_64-cpython-312/libwhisper.so.1 /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/lib.linux-x86_64-cpython-312/libwhisper.so
dll_folder in build_extension build/temp.linux-x86_64-cpython-312/_pywhispercpp/bin/Release
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
copying build/lib.linux-x86_64-cpython-312/libggml.so -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so.1 -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so.1.6.2 -> build/bdist.linux-x86_64/wheel/.
creating build/bdist.linux-x86_64/wheel/pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/constants.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
creating build/bdist.linux-x86_64/wheel/pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/assistant.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/livestream.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/main.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/recording.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/__init__.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/model.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/utils.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/__init__.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/_pywhispercpp.cpython-312-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel/.
running install_egg_info
Copying pywhispercpp.egg-info to build/bdist.linux-x86_64/wheel/./pywhispercpp-1.3.0-py3.12.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/pywhispercpp-1.3.0.dist-info/WHEEL
creating '/tmp/pip-wheel-7znijqko/.tmp-oqtu1h75/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding '_pywhispercpp.cpython-312-x86_64-linux-gnu.so'
adding 'libggml.so'
adding 'libwhisper.so'
adding 'libwhisper.so.1'
adding 'libwhisper.so.1.6.2'
adding 'pywhispercpp/__init__.py'
adding 'pywhispercpp/constants.py'
adding 'pywhispercpp/model.py'
adding 'pywhispercpp/utils.py'
adding 'pywhispercpp/examples/__init__.py'
adding 'pywhispercpp/examples/assistant.py'
adding 'pywhispercpp/examples/livestream.py'
adding 'pywhispercpp/examples/main.py'
adding 'pywhispercpp/examples/recording.py'
adding 'pywhispercpp-1.3.0.dist-info/LICENSE'
adding 'pywhispercpp-1.3.0.dist-info/METADATA'
adding 'pywhispercpp-1.3.0.dist-info/WHEEL'
adding 'pywhispercpp-1.3.0.dist-info/entry_points.txt'
adding 'pywhispercpp-1.3.0.dist-info/top_level.txt'
adding 'pywhispercpp-1.3.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel

pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl is consistent with the
following platform tag: "linux_x86_64".

The wheel references external versioned symbols in these
system-provided shared libraries: libc.so.6 with versions
{'GLIBC_2.6', 'GLIBC_2.2.5', 'GLIBC_2.3.4', 'GLIBC_2.34',
'GLIBC_2.29', 'GLIBC_2.38', 'GLIBC_2.17', 'GLIBC_2.33', 'GLIBC_2.4',
'GLIBC_2.32', 'GLIBC_2.14', 'GLIBC_2.3', 'GLIBC_2.7'}, libgcc_s.so.1
with versions {'GCC_3.0', 'GCC_3.3.1'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.9', 'CXXABI_1.3.13', 'GLIBCXX_3.4.11', 'GLIBCXX_3.4.18',
'CXXABI_1.3.2', 'GLIBCXX_3.4.21', 'GLIBCXX_3.4.17', 'CXXABI_1.3.9',
'GLIBCXX_3.4.29', 'GLIBCXX_3.4', 'CXXABI_1.3.3', 'GLIBCXX_3.4.20',
'CXXABI_1.3.11', 'GLIBCXX_3.4.32', 'CXXABI_1.3.5', 'GLIBCXX_3.4.22',
'GLIBCXX_3.4.15', 'CXXABI_1.3', 'GLIBCXX_3.4.14'}, libgomp.so.1 with
versions {'OMP_1.0', 'GOMP_1.0', 'GOMP_4.0'}, libm.so.6 with versions
{'GLIBC_2.27', 'GLIBC_2.29', 'GLIBC_2.2.5'}

This constrains the platform tag to "linux_x86_64". In order to
achieve a more compatible tag, you would need to recompile a new wheel
from source on a system with earlier versions of these libraries, such
as a recent manylinux image.
Wrote /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
dll_folder in repairwheel build/temp.linux-x86_64-cpython-312/_pywhispercpp/bin/Release
Files in dll_folder:
Repaired wheel:  /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
copying /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl -> /tmp/pip-wheel-7znijqko/.tmp-oqtu1h75
Copied repaired wheel to: /tmp/pip-wheel-7znijqko/.tmp-oqtu1h75/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
Building wheel for pywhispercpp (pyproject.toml) ... done
Created wheel for pywhispercpp: filename=pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl size=4348209 sha256=3001f8baafb011629af9f1b8c9ba8c13f70d2e01e748c09d2abdf49b35c29947
Stored in directory: /tmp/pip-ephem-wheel-cache-mtgxeu90/wheels/ef/c3/30/0a323b71528c1f288c95eefb7c459502531ce3af18476c7bed

Successfully built pywhispercpp Installing collected packages: pywhispercpp changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-assistant to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-livestream to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-recording to 775 Successfully installed pywhispercpp-1.3.0eady satisfied: urllib3<3,>=1.21.1 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/lib/python3.12/site-packages (from requests->pywhispercpp==1.3.0) (2024.8.30) Building wheels for collected packages: pywhispercpp Running command Building wheel for pywhispercpp (pyproject.toml) running bdist_wheel running build running build_py copying ./pywhispercpp/constants.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/model.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/utils.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/init.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp copying ./pywhispercpp/examples/assistant.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/livestream.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/main.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/recording.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples copying ./pywhispercpp/examples/init.py -> build/lib.linux-x86_64-cpython-312/pywhispercpp/examples running egg_info writing pywhispercpp.egg-info/PKG-INFO writing dependency_links to pywhispercpp.egg-info/dependency_links.txt writing entry points to pywhispercpp.egg-info/entry_points.txt writing requirements to pywhispercpp.egg-info/requires.txt writing top-level names to pywhispercpp.egg-info/top_level.txt reading manifest template 'MANIFEST.in' warning: no files found matching 'version.txt' warning: no previously-included files found matching 'whisper.cpp//*.o' warning: no previously-included files found matching 'whisper.cpp//.so' warning: no previously-included files found matching 'whisper.cpp/**/.a' warning: no previously-included files found matching 'whisper.cpp//*.dylib' warning: no previously-included files found matching 'whisper.cpp//.dll' warning: no previously-included files found matching 'whisper.cpp/**/.lib' adding license file 'LICENSE' writing manifest file 'pywhispercpp.egg-info/SOURCES.txt' running build_ext CMake Deprecation Warning at pybind11/CMakeLists.txt:8 (cmake_minimum_required): Compatibility with CMake < 3.10 will be removed from a future version of CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- pybind11 v2.9.2
CMake Warning (dev) at pybind11/tools/FindPythonLibsNew.cmake:98 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

Call Stack (most recent call first):
  pybind11/tools/pybind11Tools.cmake:50 (find_package)
  pybind11/tools/pybind11Common.cmake:206 (include)
  pybind11/CMakeLists.txt:200 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at whisper.cpp/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


CMake Warning at whisper.cpp/CMakeLists.txt:103 (message):
  WHISPER_CUDA is deprecated and will be removed in the future.

  Use GGML_CUDA instead

Call Stack (most recent call first):
  whisper.cpp/CMakeLists.txt:109 (whisper_option_depr)


-- OpenMP found
-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- x86 detected
-- Configuring done (0.1s)
-- Generating done (0.0s)
CMake Warning:
  Manually-specified variables were not used by the project:

    PATH
    PIP_BUILD_TRACKER
    PYTHONPATH


-- Build files have been written to: /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/temp.linux-x86_64-cpython-312/_pywhispercpp
[1/1] Creating library symlink /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/lib.linux-x86_64-cpython-312/libwhisper.so.1 /media/jts599/Disk5/Transcriber/DigitalJournal2/pywhispercpp/build/lib.linux-x86_64-cpython-312/libwhisper.so
dll_folder in build_extension build/temp.linux-x86_64-cpython-312/_pywhispercpp/bin/Release
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
copying build/lib.linux-x86_64-cpython-312/libggml.so -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so.1 -> build/bdist.linux-x86_64/wheel/.
copying build/lib.linux-x86_64-cpython-312/libwhisper.so.1.6.2 -> build/bdist.linux-x86_64/wheel/.
creating build/bdist.linux-x86_64/wheel/pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/constants.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
creating build/bdist.linux-x86_64/wheel/pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/assistant.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/livestream.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/main.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/recording.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/examples/__init__.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp/examples
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/model.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/utils.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/pywhispercpp/__init__.py -> build/bdist.linux-x86_64/wheel/./pywhispercpp
copying build/lib.linux-x86_64-cpython-312/_pywhispercpp.cpython-312-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel/.
running install_egg_info
Copying pywhispercpp.egg-info to build/bdist.linux-x86_64/wheel/./pywhispercpp-1.3.0-py3.12.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/pywhispercpp-1.3.0.dist-info/WHEEL
creating '/tmp/pip-wheel-7znijqko/.tmp-oqtu1h75/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding '_pywhispercpp.cpython-312-x86_64-linux-gnu.so'
adding 'libggml.so'
adding 'libwhisper.so'
adding 'libwhisper.so.1'
adding 'libwhisper.so.1.6.2'
adding 'pywhispercpp/__init__.py'
adding 'pywhispercpp/constants.py'
adding 'pywhispercpp/model.py'
adding 'pywhispercpp/utils.py'
adding 'pywhispercpp/examples/__init__.py'
adding 'pywhispercpp/examples/assistant.py'
adding 'pywhispercpp/examples/livestream.py'
adding 'pywhispercpp/examples/main.py'
adding 'pywhispercpp/examples/recording.py'
adding 'pywhispercpp-1.3.0.dist-info/LICENSE'
adding 'pywhispercpp-1.3.0.dist-info/METADATA'
adding 'pywhispercpp-1.3.0.dist-info/WHEEL'
adding 'pywhispercpp-1.3.0.dist-info/entry_points.txt'
adding 'pywhispercpp-1.3.0.dist-info/top_level.txt'
adding 'pywhispercpp-1.3.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel

pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl is consistent with the
following platform tag: "linux_x86_64".

The wheel references external versioned symbols in these
system-provided shared libraries: libc.so.6 with versions
{'GLIBC_2.6', 'GLIBC_2.2.5', 'GLIBC_2.3.4', 'GLIBC_2.34',
'GLIBC_2.29', 'GLIBC_2.38', 'GLIBC_2.17', 'GLIBC_2.33', 'GLIBC_2.4',
'GLIBC_2.32', 'GLIBC_2.14', 'GLIBC_2.3', 'GLIBC_2.7'}, libgcc_s.so.1
with versions {'GCC_3.0', 'GCC_3.3.1'}, libstdc++.so.6 with versions
{'GLIBCXX_3.4.9', 'CXXABI_1.3.13', 'GLIBCXX_3.4.11', 'GLIBCXX_3.4.18',
'CXXABI_1.3.2', 'GLIBCXX_3.4.21', 'GLIBCXX_3.4.17', 'CXXABI_1.3.9',
'GLIBCXX_3.4.29', 'GLIBCXX_3.4', 'CXXABI_1.3.3', 'GLIBCXX_3.4.20',
'CXXABI_1.3.11', 'GLIBCXX_3.4.32', 'CXXABI_1.3.5', 'GLIBCXX_3.4.22',
'GLIBCXX_3.4.15', 'CXXABI_1.3', 'GLIBCXX_3.4.14'}, libgomp.so.1 with
versions {'OMP_1.0', 'GOMP_1.0', 'GOMP_4.0'}, libm.so.6 with versions
{'GLIBC_2.27', 'GLIBC_2.29', 'GLIBC_2.2.5'}

This constrains the platform tag to "linux_x86_64". In order to
achieve a more compatible tag, you would need to recompile a new wheel
from source on a system with earlier versions of these libraries, such
as a recent manylinux image.
Wrote /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
dll_folder in repairwheel build/temp.linux-x86_64-cpython-312/_pywhispercpp/bin/Release
Files in dll_folder:
Repaired wheel:  /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
copying /tmp/repaired_wheel_c4bc3ugv/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl -> /tmp/pip-wheel-7znijqko/.tmp-oqtu1h75
Copied repaired wheel to: /tmp/pip-wheel-7znijqko/.tmp-oqtu1h75/pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl
Building wheel for pywhispercpp (pyproject.toml) ... done
Created wheel for pywhispercpp: filename=pywhispercpp-1.3.0-cp312-cp312-linux_x86_64.whl size=4348209 sha256=3001f8baafb011629af9f1b8c9ba8c13f70d2e01e748c09d2abdf49b35c29947
Stored in directory: /tmp/pip-ephem-wheel-cache-mtgxeu90/wheels/ef/c3/30/0a323b71528c1f288c95eefb7c459502531ce3af18476c7bed

Successfully built pywhispercpp Installing collected packages: pywhispercpp changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-assistant to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-livestream to 775 changing mode of /media/jts599/Disk5/Transcriber/DigitalJournal2/.venv/bin/pwcpp-recording to 775 Successfully installed pywhispercpp-1.3.0

jts599 avatar Dec 01 '24 17:12 jts599

From the logs, it seems it's not compiling against cuda yet. Just verified now on my end, I think nvcc is not enough, you need the entire cuda toolkit, probably that's why it wasn't working on Windows as well. Can you install it and give it a try. Also delete the $WHISPER_CUDA var and keep only the $GGML_CUDA.

absadiki avatar Dec 01 '24 23:12 absadiki