mirror of
https://github.com/yusufipk/dikte.git
synced 2026-09-11 10:56:10 +00:00
Say out loud that Windows on ARM gets an emulated whisper
Checked against the release listings rather than guessed: whisper.cpp publishes Win32 and x64 for Windows and nothing else, while llama.cpp does publish bin-win-cpu-arm64.zip. So a Snapdragon machine gets a native cleanup model and an emulated transcriber, which is slow enough that the cloud is the better answer there, and neither the code nor the README said so. The test pins it, so that a whisper.cpp release which does start publishing an arm64 build turns the choice red rather than being quietly ignored.
This commit is contained in:
+3
-1
@@ -54,7 +54,9 @@ python dikte.py
|
|||||||
|
|
||||||
- The local install fetches whisper.cpp's **OpenBLAS build**, which
|
- The local install fetches whisper.cpp's **OpenBLAS build**, which
|
||||||
transcribes about twice as fast as the stock one on a plain CPU. There is
|
transcribes about twice as fast as the stock one on a plain CPU. There is
|
||||||
no GPU build to fetch for machines without an NVIDIA card.
|
no GPU build to fetch for machines without an NVIDIA card, and none for
|
||||||
|
Windows on ARM either: whisper.cpp publishes x64 only, so a Snapdragon
|
||||||
|
machine runs it under emulation and the cloud is the faster option there.
|
||||||
- Setting Settings → API and models → **Threads** near your physical core
|
- Setting Settings → API and models → **Threads** near your physical core
|
||||||
count helps noticeably; the server's own default is 4.
|
count helps noticeably; the server's own default is 4.
|
||||||
- If speed matters more than accuracy, `ggml-small` and `ggml-base` are much
|
- If speed matters more than accuracy, `ggml-small` and `ggml-base` are much
|
||||||
|
|||||||
@@ -251,6 +251,10 @@ def _wanted_assets(program):
|
|||||||
# as fast as the stock one, and it carries everything it needs.
|
# as fast as the stock one, and it carries everything it needs.
|
||||||
# Full names, because "bin-x64.zip" alone would also match the
|
# Full names, because "bin-x64.zip" alone would also match the
|
||||||
# CUDA archives, whichever the release happened to list first.
|
# CUDA archives, whichever the release happened to list first.
|
||||||
|
#
|
||||||
|
# x64 whatever this machine is, because whisper.cpp publishes no
|
||||||
|
# arm64 build for Windows: a Snapdragon runs this one emulated,
|
||||||
|
# which is slow but is the only local option there is.
|
||||||
return ("whisper-blas-bin-x64.zip", "whisper-bin-x64.zip")
|
return ("whisper-blas-bin-x64.zip", "whisper-bin-x64.zip")
|
||||||
if _has_vulkan() and arch == "x64":
|
if _has_vulkan() and arch == "x64":
|
||||||
return ("bin-win-vulkan-x64.zip", f"bin-win-cpu-{arch}.zip")
|
return ("bin-win-vulkan-x64.zip", f"bin-win-cpu-{arch}.zip")
|
||||||
|
|||||||
@@ -725,6 +725,15 @@ class WindowsAssets(Local):
|
|||||||
self.assertEqual(ggml._wanted_assets(ggml.LLAMA),
|
self.assertEqual(ggml._wanted_assets(ggml.LLAMA),
|
||||||
("bin-win-cpu-arm64.zip",))
|
("bin-win-cpu-arm64.zip",))
|
||||||
|
|
||||||
|
def test_an_arm_machine_is_handed_the_x64_whisper_anyway(self):
|
||||||
|
"""whisper.cpp publishes no arm64 build for Windows: the release has
|
||||||
|
Win32 and x64 and nothing else, so emulated is the only local option
|
||||||
|
a Snapdragon has. Pinned here so that a release which does start
|
||||||
|
publishing one is noticed rather than quietly ignored."""
|
||||||
|
self.patch_attr(ggml, "_arch", lambda: "arm64")
|
||||||
|
self.assertEqual(ggml._wanted_assets(ggml.WHISPER),
|
||||||
|
("whisper-blas-bin-x64.zip", "whisper-bin-x64.zip"))
|
||||||
|
|
||||||
|
|
||||||
class InstallOnWindows(Local):
|
class InstallOnWindows(Local):
|
||||||
"""The Windows releases are zips, and the binary carries .exe."""
|
"""The Windows releases are zips, and the binary carries .exe."""
|
||||||
|
|||||||
Reference in New Issue
Block a user