Merge remote-tracking branch 'origin/master'

This commit is contained in:
Niko 2025-07-29 17:22:13 -07:00
commit 2cdb117101
No known key found for this signature in database
4 changed files with 33 additions and 7 deletions

View file

@ -17,6 +17,7 @@ repository = "https://codeberg.org/tazz4843/whisper-rs"
whisper-rs-sys = { path = "sys", version = "0.13" } whisper-rs-sys = { path = "sys", version = "0.13" }
log = { version = "0.4", optional = true } log = { version = "0.4", optional = true }
tracing = { version = "0.1", optional = true } tracing = { version = "0.1", optional = true }
libc = { version = "0.2", optional = true }
[dev-dependencies] [dev-dependencies]
hound = "3.5.0" hound = "3.5.0"
@ -31,8 +32,9 @@ cuda = ["whisper-rs-sys/cuda", "_gpu"]
hipblas = ["whisper-rs-sys/hipblas", "_gpu"] hipblas = ["whisper-rs-sys/hipblas", "_gpu"]
openblas = ["whisper-rs-sys/openblas"] openblas = ["whisper-rs-sys/openblas"]
metal = ["whisper-rs-sys/metal", "_gpu"] metal = ["whisper-rs-sys/metal", "_gpu"]
vulkan = ["whisper-rs-sys/vulkan", "_gpu"] vulkan = ["whisper-rs-sys/vulkan", "_gpu", "dep:libc"]
openmp = ["whisper-rs-sys/openmp"] openmp = ["whisper-rs-sys/openmp"]
intel-sycl = ["whisper-rs-sys/intel-sycl", "_gpu"]
_gpu = [] _gpu = []
test-with-tiny-model = [] test-with-tiny-model = []

View file

@ -29,7 +29,7 @@ pub fn list_devices() -> Vec<VkDeviceInfo> {
(0..n) (0..n)
.map(|id| { .map(|id| {
// 256 bytes is plenty (spec says 128 is enough) // 256 bytes is plenty (spec says 128 is enough)
let mut tmp = [0i8; 256]; let mut tmp: [libc::c_char; 256] = [0; 256];
ggml_backend_vk_get_device_description(id as c_int, tmp.as_mut_ptr(), tmp.len()); ggml_backend_vk_get_device_description(id as c_int, tmp.as_mut_ptr(), tmp.len());
let mut free = 0usize; let mut free = 0usize;
let mut total = 0usize; let mut total = 0usize;

View file

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

View file

@ -267,20 +267,39 @@ fn main() {
config.define("GGML_OPENMP", "OFF"); 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(); let destination = config.build();
add_link_search_path(&out.join("build")).unwrap(); add_link_search_path(&out.join("build")).unwrap();
println!("cargo:rustc-link-search=native={}", destination.display()); println!("cargo:rustc-link-search=native={}", destination.display());
println!("cargo:rustc-link-lib=static=whisper"); if cfg!(feature = "intel-sycl") {
println!("cargo:rustc-link-lib=static=ggml"); println!("cargo:rustc-link-lib=whisper");
println!("cargo:rustc-link-lib=static=ggml-base"); println!("cargo:rustc-link-lib=ggml");
println!("cargo:rustc-link-lib=static=ggml-cpu"); 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") { if cfg!(target_os = "macos") || cfg!(feature = "openblas") {
println!("cargo:rustc-link-lib=static=ggml-blas"); println!("cargo:rustc-link-lib=static=ggml-blas");
} }
if cfg!(feature = "vulkan") { 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") { if cfg!(feature = "hipblas") {
@ -299,6 +318,10 @@ fn main() {
println!("cargo:rustc-link-lib=static=ggml-blas"); println!("cargo:rustc-link-lib=static=ggml-blas");
} }
if cfg!(feature = "intel-sycl") {
println!("cargo:rustc-link-lib=ggml-sycl");
}
println!( println!(
"cargo:WHISPER_CPP_VERSION={}", "cargo:WHISPER_CPP_VERSION={}",
get_whisper_cpp_version(&whisper_root) get_whisper_cpp_version(&whisper_root)