aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md40
-rw-r--r--build.zig22
2 files changed, 39 insertions, 23 deletions
diff --git a/README.md b/README.md
index dbc0885..c0958eb 100644
--- a/README.md
+++ b/README.md
@@ -149,21 +149,43 @@ https://user-images.githubusercontent.com/1991296/224442907-7693d4be-acaa-4e01-8
## Usage
-Here are the step for the LLaMA-7B model:
+Here are the step for the LLaMA-7B model.
+
+### Get the Code
```bash
-# build this repo
git clone https://github.com/ggerganov/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
ls ./models
65B 30B 13B 7B tokenizer_checklist.chk tokenizer.model
diff --git a/build.zig b/build.zig
index defc2c3..306127f 100644
--- a/build.zig
+++ b/build.zig
@@ -1,16 +1,14 @@
const std = @import("std");
-pub fn build(b: *std.Build) void {
+pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
- const optimize = b.standardOptimizeOption(.{});
+ const optimize = b.standardReleaseOptions();
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.setTarget(target);
+ lib.setBuildMode(optimize);
lib.linkLibCpp();
lib.addIncludePath(".");
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 {
const b = args.b;
const lib = args.lib;
- const target = args.target;
- const optimize = args.optimize;
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;
+ lib.setTarget(args.target);
+ lib.setBuildMode(args.optimize);
exe.addIncludePath(".");
exe.addIncludePath("examples");
exe.addCSourceFiles(&.{