Ver Fonte

zig : update build.zig (#872)

* update

* update readme

* minimize the changes.

---------

Co-authored-by: zjli2019 <zhengji.li@ingchips.com>
Judd há 2 anos atrás
pai
commit
4579af95e8
2 ficheiros alterados com 39 adições e 23 exclusões
  1. 31 9
      README.md
  2. 8 14
      build.zig

+ 31 - 9
README.md

@@ -149,21 +149,43 @@ https://user-images.githubusercontent.com/1991296/224442907-7693d4be-acaa-4e01-8
 
 
 ## Usage
 ## Usage
 
 
-Here are the step for the LLaMA-7B model:
+Here are the step for the LLaMA-7B model.
+
+### Get the Code
 
 
 ```bash
 ```bash
-# build this repo
 git clone https://github.com/ggerganov/llama.cpp
 git clone https://github.com/ggerganov/llama.cpp
 cd llama.cpp
 cd llama.cpp
-make
+```
+
+### Build
+
+Note: For Windows, CMake or Zig can be used.
+
+1. Use `make`
+
+    ```bash
+    make
+    ```
 
 
-#For Windows and CMake, use the following command instead:
-cd <path_to_llama_folder>
-mkdir build
-cd build
-cmake ..
-cmake --build . --config Release
+1. Use CMake
 
 
+    ```bash
+    mkdir build
+    cd build
+    cmake ..
+    cmake --build . --config Release
+    ```
+
+1. Use Zig
+
+    ```bash
+    zig build -Drelease-fast
+    ```
+
+### Prepare Data & Run
+
+```bash
 # obtain the original LLaMA model weights and place them in ./models
 # obtain the original LLaMA model weights and place them in ./models
 ls ./models
 ls ./models
 65B 30B 13B 7B tokenizer_checklist.chk tokenizer.model
 65B 30B 13B 7B tokenizer_checklist.chk tokenizer.model

+ 8 - 14
build.zig

@@ -1,16 +1,14 @@
 const std = @import("std");
 const std = @import("std");
 
 
-pub fn build(b: *std.Build) void {
+pub fn build(b: *std.build.Builder) void {
     const target = b.standardTargetOptions(.{});
     const target = b.standardTargetOptions(.{});
-    const optimize = b.standardOptimizeOption(.{});
+    const optimize = b.standardReleaseOptions();
     const want_lto = b.option(bool, "lto", "Want -fLTO");
     const want_lto = b.option(bool, "lto", "Want -fLTO");
 
 
-    const lib = b.addStaticLibrary(.{
-        .name = "llama",
-        .target = target,
-        .optimize = optimize,
-    });
+    const lib = b.addStaticLibrary("llama", null);
     lib.want_lto = want_lto;
     lib.want_lto = want_lto;
+    lib.setTarget(target);
+    lib.setBuildMode(optimize);
     lib.linkLibCpp();
     lib.linkLibCpp();
     lib.addIncludePath(".");
     lib.addIncludePath(".");
     lib.addIncludePath("examples");
     lib.addIncludePath("examples");
@@ -44,16 +42,12 @@ pub fn build(b: *std.Build) void {
 fn build_example(comptime name: []const u8, args: anytype) *std.build.LibExeObjStep {
 fn build_example(comptime name: []const u8, args: anytype) *std.build.LibExeObjStep {
     const b = args.b;
     const b = args.b;
     const lib = args.lib;
     const lib = args.lib;
-    const target = args.target;
-    const optimize = args.optimize;
     const want_lto = args.want_lto;
     const want_lto = args.want_lto;
 
 
-    const exe = b.addExecutable(.{
-        .name = name,
-        .target = target,
-        .optimize = optimize,
-    });
+    const exe = b.addExecutable(name, null);
     exe.want_lto = want_lto;
     exe.want_lto = want_lto;
+    lib.setTarget(args.target);
+    lib.setBuildMode(args.optimize);
     exe.addIncludePath(".");
     exe.addIncludePath(".");
     exe.addIncludePath("examples");
     exe.addIncludePath("examples");
     exe.addCSourceFiles(&.{
     exe.addCSourceFiles(&.{