Merge pull request #233 from kerkmann/sycl

feat: add intel sycl support
This commit is contained in:
Niko 2025-07-17 11:11:36 -07:00 committed by GitHub
commit cba7238515
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 30 additions and 5 deletions

View file

@ -33,6 +33,7 @@ openblas = ["whisper-rs-sys/openblas"]
metal = ["whisper-rs-sys/metal", "_gpu"]
vulkan = ["whisper-rs-sys/vulkan", "_gpu"]
openmp = ["whisper-rs-sys/openmp"]
intel-sycl = ["whisper-rs-sys/intel-sycl", "_gpu"]
_gpu = []
test-with-tiny-model = []

View file

@ -35,6 +35,7 @@ metal = []
vulkan = []
force-debug = []
openmp = []
intel-sycl = []
[build-dependencies]
cmake = "0.1"

View file

@ -267,20 +267,39 @@ fn main() {
config.define("GGML_OPENMP", "OFF");
}
if cfg!(feature = "intel-sycl") {
config.define("BUILD_SHARED_LIBS", "ON");
config.define("GGML_SYCL", "ON");
config.define("GGML_SYCL_TARGET", "INTEL");
config.define("CMAKE_C_COMPILER", "icx");
config.define("CMAKE_CXX_COMPILER", "icpx");
}
let destination = config.build();
add_link_search_path(&out.join("build")).unwrap();
println!("cargo:rustc-link-search=native={}", destination.display());
println!("cargo:rustc-link-lib=static=whisper");
println!("cargo:rustc-link-lib=static=ggml");
println!("cargo:rustc-link-lib=static=ggml-base");
println!("cargo:rustc-link-lib=static=ggml-cpu");
if cfg!(feature = "intel-sycl") {
println!("cargo:rustc-link-lib=whisper");
println!("cargo:rustc-link-lib=ggml");
println!("cargo:rustc-link-lib=ggml-base");
println!("cargo:rustc-link-lib=ggml-cpu");
} else {
println!("cargo:rustc-link-lib=static=whisper");
println!("cargo:rustc-link-lib=static=ggml");
println!("cargo:rustc-link-lib=static=ggml-base");
println!("cargo:rustc-link-lib=static=ggml-cpu");
}
if cfg!(target_os = "macos") || cfg!(feature = "openblas") {
println!("cargo:rustc-link-lib=static=ggml-blas");
}
if cfg!(feature = "vulkan") {
println!("cargo:rustc-link-lib=static=ggml-vulkan");
if cfg!(feature = "intel-sycl") {
println!("cargo:rustc-link-lib=ggml-vulkan");
} else {
println!("cargo:rustc-link-lib=static=ggml-vulkan");
}
}
if cfg!(feature = "hipblas") {
@ -299,6 +318,10 @@ fn main() {
println!("cargo:rustc-link-lib=static=ggml-blas");
}
if cfg!(feature = "intel-sycl") {
println!("cargo:rustc-link-lib=ggml-sycl");
}
println!(
"cargo:WHISPER_CPP_VERSION={}",
get_whisper_cpp_version(&whisper_root)