diff --git a/Cargo.lock b/Cargo.lock index 2d9f69621d..18c4e2273b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -986,6 +986,17 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "bindgen_cuda" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be55fb326843bb67cccceeeaf21c961ef303f60018f9a2ab69494dad8eaf9" +dependencies = [ + "glob", + "num_cpus", + "rayon", +] + [[package]] name = "biome_console" version = "0.3.1" @@ -1382,18 +1393,18 @@ checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426" [[package]] name = "bpaf" -version = "0.9.22" +version = "0.9.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffe12d9bbc54238745f1749c5a18dc5759e03c235618dd05554a9be350390b1" +checksum = "22a59e5c2bac9ccb280150ef4b58e07e4169d8c5c6ce0f70170e3c0b7c7b6124" dependencies = [ "bpaf_derive", ] [[package]] name = "bpaf_derive" -version = "0.5.21" +version = "0.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e7d8cbf45f5994072fad3eb22761aacbe8752bbe733a247f7d35827556ea057" +checksum = "549ca9c364fdc06f9f36d1356980193d930abc80db848193c2dd4d0e9a83de1b" dependencies = [ "proc-macro2", "quote", @@ -1574,9 +1585,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c15b675b80d994b2eadb20a4bbe434eabeb454eac3ee5e2b4cf6f147ee9be091" dependencies = [ "byteorder", + "candle-kernels", "candle-metal-kernels", "candle-ug", - "float8", + "cudarc 0.19.0", + "float8 0.6.1", "gemm 0.19.0", "half", "libm", @@ -1594,6 +1607,15 @@ dependencies = [ "zip 7.2.0", ] +[[package]] +name = "candle-kernels" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8455f84bd810047c7c41216683c1020c915a9f8a740b3b0eabdd4fb2fbaa660" +dependencies = [ + "bindgen_cuda", +] + [[package]] name = "candle-metal-kernels" version = "0.9.2" @@ -1653,6 +1675,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c22d62be69068bf58987a45f690612739d8d2ea1bf508c1b87dc6815a019575d" dependencies = [ "ug", + "ug-cuda", "ug-metal", ] @@ -1782,9 +1805,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.56" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75ca66430e33a14957acc24c5077b503e7d374151b2b4b3a10c83b4ceb4be0e" +checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" dependencies = [ "clap_builder", "clap_derive", @@ -1792,9 +1815,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.56" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793207c7fa6300a0608d1080b858e5fdbe713cdc1c8db9fb17777d8a13e63df0" +checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ "anstream", "anstyle", @@ -2270,6 +2293,27 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "cudarc" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf99ab37ee7072d64d906aa2dada9a3422f1d975cdf8c8055a573bc84897ed8" +dependencies = [ + "half", + "libloading", +] + +[[package]] +name = "cudarc" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d5be1e9776a20360ca270df637b391c85d48ea57508140f30a4e8f6da91884a" +dependencies = [ + "float8 0.3.0", + "half", + "libloading", +] + [[package]] name = "darling" version = "0.20.11" @@ -3435,12 +3479,22 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float8" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f498aec3b227cd892ce18967f4033d9d397d28a80a7ab67e9f6b0176a79654e" +dependencies = [ + "half", +] + [[package]] name = "float8" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719a903cc23e4a89e87962c2a80fdb45cdaad0983a89bd150bb57b4c8571a7d5" dependencies = [ + "cudarc 0.19.0", "half", "num-traits", "rand 0.9.2", @@ -4787,7 +4841,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.4", "tower-service", - "webpki-roots 1.0.5", + "webpki-roots 1.0.6", ] [[package]] @@ -7944,7 +7998,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.5", + "webpki-roots 1.0.6", ] [[package]] @@ -11017,6 +11071,19 @@ dependencies = [ "yoke 0.7.5", ] +[[package]] +name = "ug-cuda" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f0a1fa748f26166778c33b8498255ebb7c6bffb472bcc0a72839e07ebb1d9b5" +dependencies = [ + "cudarc 0.17.8", + "half", + "serde", + "thiserror 1.0.69", + "ug", +] + [[package]] name = "ug-metal" version = "0.5.0" @@ -11501,9 +11568,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -12398,18 +12465,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.37" +version = "0.8.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7456cf00f0685ad319c5b1693f291a650eaf345e941d082fc4e03df8a03996ac" +checksum = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.37" +version = "0.8.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1328722bbf2115db7e19d69ebcc15e795719e2d66b60827c6a69a117365e37a0" +checksum = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75" dependencies = [ "proc-macro2", "quote", diff --git a/crates/goose-server/Cargo.toml b/crates/goose-server/Cargo.toml index 5a8d132a03..9a159d29cc 100644 --- a/crates/goose-server/Cargo.toml +++ b/crates/goose-server/Cargo.toml @@ -10,6 +10,10 @@ description.workspace = true [lints] workspace = true +[features] +default = [] +cuda = ["goose/cuda"] + [dependencies] goose = { path = "../goose" } goose-mcp = { path = "../goose-mcp" } diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index 85a1d6718f..584a7a70ad 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -9,6 +9,7 @@ description.workspace = true [features] default = [] +cuda = ["candle-core/cuda", "candle-nn/cuda"] [lints] workspace = true