Added a example.zig
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
const std = @import("std");
|
||||
const GpuDevice = @import("GpuDevice.zig");
|
||||
const GpuAllocator = @import("GpuAllocator.zig");
|
||||
const GpuPipeline = @import("GpuPipeline.zig");
|
||||
const Vec = @import("Vec.zig");
|
||||
|
||||
const c = @import("utils.zig").c;
|
||||
|
||||
pub fn main(init: std.process.Init) !void {
|
||||
const allocator = init.gpa;
|
||||
|
||||
const device = try GpuDevice.init(.{ .vram_bytes_limit = 4 * 1024 * 1024 * 1024 });
|
||||
defer device.deinit();
|
||||
|
||||
var gloc = try GpuAllocator.init(allocator, device);
|
||||
defer gloc.deinit();
|
||||
|
||||
const add_pip = try GpuPipeline.init(device, @embedFile("shaders/add.wgsl"));
|
||||
defer add_pip.deinit();
|
||||
|
||||
const data_a = try allocator.alloc(f32, 1024);
|
||||
defer allocator.free(data_a);
|
||||
const data_b = try allocator.alloc(f32, 1024);
|
||||
defer allocator.free(data_b);
|
||||
|
||||
for (0..1024) |i| {
|
||||
data_a[i] = @floatFromInt(i);
|
||||
data_b[i] = @floatFromInt(1024 - 1 - i);
|
||||
}
|
||||
|
||||
const a = try Vec.initLoad(&gloc, data_a);
|
||||
defer a.deinit();
|
||||
const b = try Vec.initLoad(&gloc, data_b);
|
||||
defer b.deinit();
|
||||
|
||||
const sum = try a.run(&gloc, b, add_pip);
|
||||
defer sum.deinit();
|
||||
|
||||
const out = try sum.read(&gloc, allocator);
|
||||
defer allocator.free(out);
|
||||
|
||||
std.debug.print("{any}\n", .{out});
|
||||
}
|
||||
Reference in New Issue
Block a user