From aef4f6710bd41c2cdf8a753f4862894aded68eb3 Mon Sep 17 00:00:00 2001 From: YdrMaster Date: Thu, 20 Jun 2024 13:04:12 +0800 Subject: [PATCH] =?UTF-8?q?build(llama):=20=E6=B7=BB=E5=8A=A0=20LLaMA=20?= =?UTF-8?q?=E5=AF=92=E6=AD=A6=E7=BA=AA=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YdrMaster --- Cargo.lock | 35 ++++++++++++++----- Cargo.toml | 10 ++++-- models/llama/cambricon-mlu/Cargo.toml | 14 ++++++++ models/llama/cambricon-mlu/build.rs | 9 +++++ models/llama/cambricon-mlu/src/lib.rs | 1 + models/llama/{cpu => common-cpu}/Cargo.toml | 0 models/llama/{cpu => common-cpu}/src/lib.rs | 0 .../Cargo.toml | 0 .../build.rs | 0 .../src/distribute.rs | 0 .../src/lib.rs | 0 .../src/parameters.rs | 0 .../llama/{nvidia => nvidia-gpu}/Cargo.toml | 0 models/llama/{nvidia => nvidia-gpu}/build.rs | 0 .../llama/{nvidia => nvidia-gpu}/src/lib.rs | 0 .../{nvidia => nvidia-gpu}/src/resource.rs | 0 service/Cargo.toml | 2 +- xtask/Cargo.toml | 7 ++-- 18 files changed, 62 insertions(+), 16 deletions(-) create mode 100644 models/llama/cambricon-mlu/Cargo.toml create mode 100644 models/llama/cambricon-mlu/build.rs create mode 100644 models/llama/cambricon-mlu/src/lib.rs rename models/llama/{cpu => common-cpu}/Cargo.toml (100%) rename models/llama/{cpu => common-cpu}/src/lib.rs (100%) rename models/llama/{nvidia-distributed => nvidia-gpu-distributed}/Cargo.toml (100%) rename models/llama/{nvidia-distributed => nvidia-gpu-distributed}/build.rs (100%) rename models/llama/{nvidia-distributed => nvidia-gpu-distributed}/src/distribute.rs (100%) rename models/llama/{nvidia-distributed => nvidia-gpu-distributed}/src/lib.rs (100%) rename models/llama/{nvidia-distributed => nvidia-gpu-distributed}/src/parameters.rs (100%) rename models/llama/{nvidia => nvidia-gpu}/Cargo.toml (100%) rename models/llama/{nvidia => nvidia-gpu}/build.rs (100%) rename models/llama/{nvidia => nvidia-gpu}/src/lib.rs (100%) rename models/llama/{nvidia => nvidia-gpu}/src/resource.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 616db8b6..e2a9fb18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -166,9 +166,9 @@ checksum = "62416e5d5d54b59baf7fd793ee632d83a7512d2d4ef227729642b45db09e6c7d" [[package]] name = "bytemuck" -version = "1.16.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" dependencies = [ "bytemuck_derive", ] @@ -728,9 +728,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.3" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0e7a4dd27b9476dc40cb050d3632d3bba3a70ddbff012285f7f8559a1e7e545" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -857,6 +857,17 @@ dependencies = [ "tensor", ] +[[package]] +name = "llama-cn" +version = "0.0.0" +dependencies = [ + "build-script-cfg", + "causal-lm", + "common 0.0.0", + "llama", + "search-neuware-tools 0.1.0 (git+https://github.com/YdrMaster/cndrv?rev=d94e170)", +] + [[package]] name = "llama-cpu" version = "0.0.1" @@ -945,9 +956,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -1137,7 +1148,7 @@ dependencies = [ "log", "nvidia-gpu", "search-cuda-tools", - "search-neuware-tools", + "search-neuware-tools 0.1.0 (git+https://github.com/YdrMaster/cndrv?rev=fb46d04)", ] [[package]] @@ -1352,9 +1363,9 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" dependencies = [ "bytemuck", ] @@ -1394,6 +1405,11 @@ dependencies = [ "find_cuda_helper", ] +[[package]] +name = "search-neuware-tools" +version = "0.1.0" +source = "git+https://github.com/YdrMaster/cndrv?rev=d94e170#d94e170d227647e98ee84b621f3e4510b04cd5cd" + [[package]] name = "search-neuware-tools" version = "0.1.0" @@ -1881,6 +1897,7 @@ dependencies = [ "colored", "common 0.0.0", "llama", + "llama-cn", "llama-cpu", "llama-nv", "llama-nv-distributed", diff --git a/Cargo.toml b/Cargo.toml index ca0c0c33..f1e1a236 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,9 +14,10 @@ members = [ "devices/nvidia", "models/llama/common", - "models/llama/cpu", - "models/llama/nvidia", - "models/llama/nvidia-distributed", + "models/llama/common-cpu", + "models/llama/nvidia-gpu", + "models/llama/nvidia-gpu-distributed", + "models/llama/cambricon-mlu", "models/mixtral/common", "models/mixtral/cpu", ] @@ -38,3 +39,6 @@ operators = { git = "https://github.com/YdrMaster/operators-rs", rev = "cac4307" cuda = { git = "https://github.com/YdrMaster/cuda-driver", rev = "a4b3cf5" } nccl = { git = "https://github.com/YdrMaster/cuda-driver", rev = "a4b3cf5" } search-cuda-tools = { git = "https://github.com/YdrMaster/cuda-driver", rev = "a4b3cf5" } + +cndrv = { git = "https://github.com/YdrMaster/cndrv", rev = "d94e170" } +search-neuware-tools = { git = "https://github.com/YdrMaster/cndrv", rev = "d94e170" } diff --git a/models/llama/cambricon-mlu/Cargo.toml b/models/llama/cambricon-mlu/Cargo.toml new file mode 100644 index 00000000..64140fdf --- /dev/null +++ b/models/llama/cambricon-mlu/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "llama-cn" +version = "0.0.0" +edition = "2021" +authors = ["YdrMaster "] + +[dependencies] +common = { path = "../../../common" } +causal-lm = { path = "../../../causal-lm" } +llama = { path = "../common" } + +[build-dependencies] +build-script-cfg.workspace = true +search-neuware-tools.workspace = true diff --git a/models/llama/cambricon-mlu/build.rs b/models/llama/cambricon-mlu/build.rs new file mode 100644 index 00000000..32900d5b --- /dev/null +++ b/models/llama/cambricon-mlu/build.rs @@ -0,0 +1,9 @@ +fn main() { + use build_script_cfg::Cfg; + use search_neuware_tools::find_neuware_home; + + let neuware = Cfg::new("detected_neuware"); + if find_neuware_home().is_some() { + neuware.define(); + } +} diff --git a/models/llama/cambricon-mlu/src/lib.rs b/models/llama/cambricon-mlu/src/lib.rs new file mode 100644 index 00000000..7f3b8f58 --- /dev/null +++ b/models/llama/cambricon-mlu/src/lib.rs @@ -0,0 +1 @@ +#![cfg(detected_neuware)] diff --git a/models/llama/cpu/Cargo.toml b/models/llama/common-cpu/Cargo.toml similarity index 100% rename from models/llama/cpu/Cargo.toml rename to models/llama/common-cpu/Cargo.toml diff --git a/models/llama/cpu/src/lib.rs b/models/llama/common-cpu/src/lib.rs similarity index 100% rename from models/llama/cpu/src/lib.rs rename to models/llama/common-cpu/src/lib.rs diff --git a/models/llama/nvidia-distributed/Cargo.toml b/models/llama/nvidia-gpu-distributed/Cargo.toml similarity index 100% rename from models/llama/nvidia-distributed/Cargo.toml rename to models/llama/nvidia-gpu-distributed/Cargo.toml diff --git a/models/llama/nvidia-distributed/build.rs b/models/llama/nvidia-gpu-distributed/build.rs similarity index 100% rename from models/llama/nvidia-distributed/build.rs rename to models/llama/nvidia-gpu-distributed/build.rs diff --git a/models/llama/nvidia-distributed/src/distribute.rs b/models/llama/nvidia-gpu-distributed/src/distribute.rs similarity index 100% rename from models/llama/nvidia-distributed/src/distribute.rs rename to models/llama/nvidia-gpu-distributed/src/distribute.rs diff --git a/models/llama/nvidia-distributed/src/lib.rs b/models/llama/nvidia-gpu-distributed/src/lib.rs similarity index 100% rename from models/llama/nvidia-distributed/src/lib.rs rename to models/llama/nvidia-gpu-distributed/src/lib.rs diff --git a/models/llama/nvidia-distributed/src/parameters.rs b/models/llama/nvidia-gpu-distributed/src/parameters.rs similarity index 100% rename from models/llama/nvidia-distributed/src/parameters.rs rename to models/llama/nvidia-gpu-distributed/src/parameters.rs diff --git a/models/llama/nvidia/Cargo.toml b/models/llama/nvidia-gpu/Cargo.toml similarity index 100% rename from models/llama/nvidia/Cargo.toml rename to models/llama/nvidia-gpu/Cargo.toml diff --git a/models/llama/nvidia/build.rs b/models/llama/nvidia-gpu/build.rs similarity index 100% rename from models/llama/nvidia/build.rs rename to models/llama/nvidia-gpu/build.rs diff --git a/models/llama/nvidia/src/lib.rs b/models/llama/nvidia-gpu/src/lib.rs similarity index 100% rename from models/llama/nvidia/src/lib.rs rename to models/llama/nvidia-gpu/src/lib.rs diff --git a/models/llama/nvidia/src/resource.rs b/models/llama/nvidia-gpu/src/resource.rs similarity index 100% rename from models/llama/nvidia/src/resource.rs rename to models/llama/nvidia-gpu/src/resource.rs diff --git a/service/Cargo.toml b/service/Cargo.toml index 5d6cde29..8274aaba 100644 --- a/service/Cargo.toml +++ b/service/Cargo.toml @@ -16,4 +16,4 @@ tokio.workspace = true [dev-dependencies] colored = "2.1" -llama-cpu = { path = "../models/llama/cpu" } +llama-cpu = { path = "../models/llama/common-cpu" } diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index b3fbffc2..560e376a 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -15,9 +15,10 @@ web-api = { path = "../web-api" } # models llama = { path = "../models/llama/common" } -llama-cpu = { path = "../models/llama/cpu" } -llama-nv = { path = "../models/llama/nvidia", optional = true } -llama-nv-distributed = { path = "../models/llama/nvidia-distributed", optional = true } +llama-cpu = { path = "../models/llama/common-cpu" } +llama-nv = { path = "../models/llama/nvidia-gpu", optional = true } +llama-nv-distributed = { path = "../models/llama/nvidia-gpu-distributed", optional = true } +llama-cn = { path = "../models/llama/cambricon-mlu", optional = true } mixtral = { path = "../models/mixtral/common" } mixtral-cpu = { path = "../models/mixtral/cpu" }