Merge pull request #170 from thewh1teagle/feat/vulkan

Feat/vulkan
This commit is contained in:
Niko 2024-09-13 21:07:32 +00:00 committed by GitHub
commit d8b6aefe06
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 21 additions and 0 deletions

View file

@ -31,6 +31,7 @@ cuda = ["whisper-rs-sys/cuda", "_gpu"]
hipblas = ["whisper-rs-sys/hipblas", "_gpu"]
openblas = ["whisper-rs-sys/openblas"]
metal = ["whisper-rs-sys/metal", "_gpu"]
vulkan = ["whisper-rs-sys/vulkan", "_gpu"]
_gpu = []
test-with-tiny-model = []
whisper-cpp-log = ["dep:log"]

View file

@ -74,6 +74,7 @@ All disabled by default unless otherwise specified.
* `hipblas`: enable ROCm/hipBLAS support. Only available on linux. Implicitly enables hidden GPU flag at runtime.
* `openblas`: enable OpenBLAS support.
* `metal`: enable Metal support. Implicitly enables hidden GPU flag at runtime.
* `vulkan`: enable Vulkan support. Implicitly enables hidden GPU flag at runtime.
* `whisper-cpp-log`: allows hooking into whisper.cpp's log output and sending it to the `log` backend. Requires calling
* `whisper-cpp-tracing`: allows hooking into whisper.cpp's log output and sending it to the `tracing` backend.

View file

@ -45,6 +45,7 @@ cuda = []
hipblas = []
openblas = []
metal = []
vulkan = []
force-debug = []
openmp = []

View file

@ -178,6 +178,24 @@ fn main() {
}
}
if cfg!(feature = "vulkan") {
config.define("GGML_VULKAN", "ON");
if cfg!(windows) {
println!("cargo:rerun-if-env-changed=VULKAN_SDK");
println!("cargo:rustc-link-lib=vulkan-1");
let vulkan_path = match env::var("VULKAN_SDK") {
Ok(path) => PathBuf::from(path),
Err(_) => panic!(
"Please install Vulkan SDK and ensure that VULKAN_SDK env variable is set"
),
};
let vulkan_lib_path = vulkan_path.join("Lib");
println!("cargo:rustc-link-search={}", vulkan_lib_path.display());
} else {
println!("cargo:rustc-link-lib=vulkan");
}
}
if cfg!(feature = "openblas") {
config.define("GGML_BLAS", "ON");
}