svjack's picture
Upload folder using huggingface_hub
9fcf2b6
raw
history blame
No virus
4.76 kB
const std = @import("std");
const builtin = @import("builtin");
// Zig Version: 0.11.0
// Zig Build Command: zig build
// Zig Run Command: zig build -h
// zig build run_dolly-v2
// zig build run_gpt-2
// zig build run_gpt-j
// zig build run_gpt-neox
// zig build run_mnist
// zig build run_mpt
// zig build run_replit
// zig build run_starcoder
// zig build run_test-grad0
// zig build run_test-mul-mat0
// zig build run_test-mul-mat2
// zig build run_test-opt
// zig build run_test-vec1
// zig build run_test0
// zig build run_test1
// zig build run_test2
// zig build run_test3
// zig build run_zig_test0
// zig build run_zig_test1
// zig build run_zig_test2
// zig build run_zig_test3
pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const lib = b.addStaticLibrary(.{
.name = "ggml",
.target = target,
.optimize = optimize,
});
lib.addIncludePath(.{ .path = "./include" });
lib.addIncludePath(.{ .path = "./include/ggml" });
lib.addCSourceFiles(&.{
"src/ggml.c",
}, &.{"-std=c11"});
lib.linkLibC();
lib.linkLibCpp();
b.installArtifact(lib);
// examples
const examples = .{
"dolly-v2",
"gpt-2",
"gpt-j",
"gpt-neox",
"mnist",
"mpt",
"replit",
"starcoder",
// "whisper",
};
inline for (examples) |name| {
const exe = b.addExecutable(.{
.name = name,
.target = target,
.optimize = optimize,
});
exe.addIncludePath(.{ .path = "./include" });
exe.addIncludePath(.{ .path = "./include/ggml" });
exe.addIncludePath(.{ .path = "./examples" });
// exe.addIncludePath("./examples/whisper");
exe.addCSourceFiles(&.{
std.fmt.comptimePrint("examples/{s}/main.cpp", .{name}),
"examples/common.cpp",
"examples/common-ggml.cpp",
// "examples/whisper/whisper.cpp",
}, &.{"-std=c++11"});
exe.linkLibrary(lib);
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| run_cmd.addArgs(args);
const run_step = b.step("run_" ++ name, "Run examples");
run_step.dependOn(&run_cmd.step);
}
// tests
const tests = if (builtin.target.cpu.arch == .x86_64) .{
// "test-blas0",
// "test-grad0",
"test-mul-mat0",
// "test-mul-mat1",
"test-mul-mat2",
// "test-opt",
// "test-svd0",
// "test-vec0",
"test-vec1",
// "test-vec2",
"test0",
"test1",
"test2",
"test3",
} else .{
// "test-blas0",
// "test-grad0",
"test-mul-mat0",
// "test-mul-mat1",
"test-mul-mat2",
// "test-opt",
// "test-svd0",
// "test-vec0",
// "test-vec1",
// "test-vec2",
"test0",
"test1",
"test2",
"test3",
};
inline for (tests) |name| {
const exe = b.addExecutable(.{
.name = name,
.target = target,
.optimize = optimize,
});
exe.addIncludePath(.{ .path = "./include" });
exe.addIncludePath(.{ .path = "./include/ggml" });
exe.addCSourceFiles(&.{
std.fmt.comptimePrint("tests/{s}.c", .{name}),
}, &.{"-std=c11"});
exe.linkLibrary(lib);
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| run_cmd.addArgs(args);
const run_step = b.step("run_" ++ name, "Run tests");
run_step.dependOn(&run_cmd.step);
}
// zig_tests
const zig_tests = .{
"test0",
"test1",
"test2",
"test3",
};
inline for (zig_tests) |name| {
const exe = b.addExecutable(.{
.name = name,
.root_source_file = .{ .path = std.fmt.comptimePrint("tests/{s}.zig", .{name}) },
.target = target,
.optimize = optimize,
});
exe.addIncludePath(.{ .path = "./include" });
exe.addIncludePath(.{ .path = "./include/ggml" });
exe.linkLibrary(lib);
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| run_cmd.addArgs(args);
const run_step = b.step("run_zig_" ++ name, "Run zig_tests");
run_step.dependOn(&run_cmd.step);
}
}