zig : update build.zig (#872)

* update

* update readme

* minimize the changes.

---------

Co-authored-by: zjli2019 <zhengji.li@ingchips.com>
This commit is contained in:
Judd 2023-04-13 21:43:22 +08:00 committed by GitHub
parent 8c3ffc2f04
commit 4579af95e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 23 deletions

View file

@ -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 ```
#For Windows and CMake, use the following command instead: ### Build
cd <path_to_llama_folder>
Note: For Windows, CMake or Zig can be used.
1. Use `make`
```bash
make
```
1. Use CMake
```bash
mkdir build mkdir build
cd build cd build
cmake .. cmake ..
cmake --build . --config Release 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

View file

@ -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(.{ const lib = b.addStaticLibrary("llama", null);
.name = "llama",
.target = target,
.optimize = optimize,
});
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(.{ const exe = b.addExecutable(name, null);
.name = name,
.target = target,
.optimize = optimize,
});
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(&.{