Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CUDA support from Windows #62

Open
robante15 opened this issue Sep 22, 2024 · 15 comments
Open

CUDA support from Windows #62

robante15 opened this issue Sep 22, 2024 · 15 comments

Comments

@robante15
Copy link

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

@absadiki
Copy link
Owner

Can you try with GGML_CUDA=1 instead ?

@robante15
Copy link
Author

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.

@absadiki
Copy link
Owner

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 ?

@robante15
Copy link
Author

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

@absadiki
Copy link
Owner

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 ?

@jts599
Copy link

jts599 commented Nov 24, 2024

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.

@absadiki
Copy link
Owner

@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 ?

@jts599
Copy link

jts599 commented Nov 24, 2024

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.

@absadiki
Copy link
Owner

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

@jts599
Copy link

jts599 commented Nov 26, 2024

install_log.txt

@absadiki
Copy link
Owner

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 ?

@jts599
Copy link

jts599 commented Nov 28, 2024

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.

@absadiki
Copy link
Owner

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.

@jts599
Copy link

jts599 commented Dec 1, 2024

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

@absadiki
Copy link
Owner

absadiki commented Dec 1, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants