Commit Graph

172 Commits

Author SHA1 Message Date
17d02621e7 Add tests for the ModernBERT example, covering activation utilities, build setup, and example Zig code. 2024-06-11 17:33:22 +00:00
ab5ad874c3 workspace: fix libxev version 2024-06-07 14:25:44 +00:00
72263aa9e3 workspace: fix mistakes in modules bumps
Fix missing = in stbalehlo integrity.
Changes back - by . in xla module name and folders.
Correctly depend on `xla@20250204.1-6789523`
2024-06-06 09:56:17 +00:00
f7450a2104 stablehlo: bump to head and use new dialect capi
This drastically reduce the number of build steps (from 3589 to 2553 steps)
2024-05-31 13:02:46 +00:00
221ece647d zml/ops.zig: Added zml.ops.case operation
This can be used to select which branch will be run at runtime.

It wraps the `stablehlo.case` operation.
2024-05-30 14:11:08 +00:00
27aabf9beb Add Bazel build rules and a test for the benchmark, llama, mnist, and simple_layer examples. 2024-05-23 15:52:34 +00:00
3aac788544 Update Bazel build configurations (zig.bzl, BUILD files) for MLIR, PJRT, Neuron, ROCm, tokenizer, and tools, fixing broken dependencies. 2024-05-20 11:28:25 +00:00
05944b5cc9 Update FnCache to copy and reuse non‑tensor fields in fixed‑size structs, preventing undefined memory in core modules. 2024-05-15 17:54:52 +00:00
dfe55b0d34 Update Bazel lock file for examples to reflect FnCache non‑tensor handling changes. 2024-05-13 16:59:37 +00:00
8d795dd676 pjrt: profiler support std writer API
expose a more low-level function to customize where to write profile
reports
2024-05-09 11:09:29 +00:00
26558d6201 Update examples MODULE.bazel and lockfile to use XLA 20250204.0-6789523 and ensure Bazel 8 compatibility. 2024-05-08 14:03:45 +00:00
f5ab6ff2c6 Update XLA to version 20250204.0-6789523 and adjust Bazel module and runtime files for Bazel 8 compatibility. 2024-05-03 15:57:56 +00:00
a34190679b Fix llama token handling and remove redundant prompt token reuse in core Zig modules (aio, module, nn, pjrtx, tensor) 2024-05-02 17:10:11 +00:00
394e63e273 Fix llama example to correctly handle token output and avoid re‑feeding the last prompt token. 2024-04-24 16:44:25 +00:00
5a2171793d workspace: MODULE.bazel cleanup
Title says it all !
2024-04-22 09:27:44 +00:00
bafe13f546 Update examples/MODULE.bazel.lock to reflect libxev version bump. 2024-04-18 12:53:16 +00:00
65c28111a9 Update libxev to version 20252401.0‑31eed4e and apply patches and. 2024-04-15 13:03:25 +00:00
13eff4e661 pjrt,zml: add memory bindings
This preliminary PR binds PJRT memory endpoints and adds them to
`zml.Buffer`.

A follow up PR will properly integrate it inside `zml.Buffer`
2024-04-11 15:43:24 +00:00
190c6978d2 llama: simplify llama3 prompt template encoding by removing redundant newline re-encoding and ensuring a trailing newline. 2024-04-10 09:36:28 +00:00
d4db5ccc6b Integrate TinyLlama support, restore the homemade tokenizer, and align Zig API naming across stdx and zml tokenizer modules. 2024-04-05 15:07:29 +00:00
b67685b941 Add example Bazel build files and tokenizer test for tinyllama, including tigerbeetle integration and flags. 2024-04-01 17:40:18 +00:00
567210d1d7 bazel: depend on prebuilt protoc binaries to eliminate ~1300 build steps. Note: integration is currently blocked due to version constraints in rules_proto and toolchains_protoc. 2024-03-29 09:54:57 +00:00
e0c8eecb79 bazel: use OID as sha256 for Git LFS files to prevent unnecessary HuggingFace redownloads. 2024-03-28 17:52:52 +00:00
a811b2e1e3 llama: fix dimensions and data types
Removed unnecessary batching dimension introduced by recent changes. Converted index outputs from i32 to u32 for token indices. Ensures Llama runs on CUDA and RoCM. Tested on CUDA.
2024-03-20 13:37:19 +00:00
602757e7a9 Update examples to use the corrected logFn API. 2024-03-18 13:11:14 +00:00
754656f2f0 Replace real mutex with async Mutex for logFn, add fallback logger support outside coroutines, and fix ResetCondition handling. 2024-03-14 11:43:33 +00:00
980f1b17fb Ensure all runtime plugins have correct SONAME values, fixing issues with prebuilt PJRT plugins. 2024-03-11 10:15:22 +00:00
8a25b1eb74 Revert CUDA PJRT plugin version to 0.4.38 to address performance regression on XLA master. 2024-03-05 17:04:42 +00:00
76e314db9b Update Llama example docs and Bazel build files, and add tests for the new HuggingFace tokenizer integration. 2024-03-04 12:11:13 +00:00
959bc48c42 Add HuggingFace tokenizer bindings and SentencePiece integration; update BUILD files, async utilities, and FFI modules to support the new tokenizers. 2024-02-28 15:47:37 +00:00
5048e7dc89 Update example lock file for rules_distroless 0.4.2 upgrade and verify MNIST image build works. 2024-02-26 15:30:13 +00:00
b4b2490690 Upgrade rules_distroless to 0.4.2 in MODULE.bazel and refresh MODULE.bazel.lock accordingly. 2024-02-21 17:48:10 +00:00
c109b12e1b Various minor fixes: rewrite tinyllama tokenizer newline token, prevent HostBuffer.isContiguous false trigger on 1‑dim axes, improve HostBuffer.slice1d error messages, simplify module.zig output to show .mlir file path, correct setFlags handling of comptime int/float, make tokenizer.zig return <oob> for out‑of‑range detokenization, and speed up Buffer.constant creation up to 2.5 GB/s on CUDA. 2024-02-19 12:34:18 +00:00
3970df5b48 Update getting_started tutorial and example Bazel files for Bazel 8 migration. 2024-02-14 10:44:47 +00:00
169a24307c Migrate workspace and XLA module definitions to Bazel 8, updating MODULE.bazel files, BUILD rules, and related migration patches. 2024-02-12 12:43:23 +00:00
7e6103d876 Upgrade XLA to version 20250122.0-cc075be, switch to nvptx compiler and nvlink with nvjitlink support, add warning for CUDA path in LD_LIBRARY_PATH, and revert the previous CUDA sandbox fix. 2024-02-06 09:31:48 +00:00
b8a0aaee5a Update tokenizer to handle byte_fallback for Llama3 GPT2 vocab and add a Llama3‑specific normalizer; adjust tinyllama.zig and hostbuffer.zig to use the new tokenization logic. 2024-02-05 15:22:44 +00:00
b643f7bc53 Add Bazel build rule and test for Llama3 tokenizer’s byte fallback and unknown token handling. 2024-02-02 10:25:48 +00:00
5120fe00dc Update libxev epoll patch to resolve crashes and hangs in epoll and kqueue implementations. 2024-01-29 17:15:11 +00:00
edc2ac26f8 Adjust ROCm runtime sandboxing to hook only the PJRT plugin and make hipblastlt bytecodes optional. 2024-01-26 13:02:23 +00:00
0ce36599da Update example build config and Llama demo to support the new async epoll backend and zigcoro scheduler. 2024-01-22 12:17:01 +00:00
a7b7ae0180 Fix async hangs by reworking the libxev epoll backend and using callBlocking for PJRT plugin loading, improving performance across async and runtime modules. 2024-01-16 14:13:45 +00:00
434cee3a6c Fix CUDA and ROCm sandbox discovery, update epoll libxev patch to prevent high CPU usage, enable XLA GPU latency‑hiding scheduler, and upgrade cuDNN to 9.6.0. 2024-01-15 09:41:42 +00:00
5b8e42f9a9 Vendor zigcoro and unify APIs; rework internals for stdx.meta compatibility, add Channel.try_send/try_recv methods, support dynamically sized channels with comptime capacity, and introduce PoolStackAllocator for coroutine stack allocation. 2024-01-11 15:40:15 +00:00
68dbc290e9 zml: revamp scatterSlices
Main issue with current `scatter` implementation is that it uses
broadcasting dims of `stablehlo.scatter`.
While nice in theory, the optimizer doesn't handle them well and they
often are unrolled into while loop.
Here I convert the batching dim to extra iotas indices.
2024-01-08 17:55:20 +00:00
83b5e1ec48 fix
Before we where using `module.op().writeBytecode(writer)` to compute the
hash of a model
but it crashes on some inputs, notably for unused variables.

So I used the text representation of the mlir.
2024-01-05 16:44:41 +00:00
acc492454f Add operator name to source locations and introduce QoL enhancements: remove bias from sdpa, support shape literals in gatherSlices, add Shape.outer, Tensor.all, and infer argMax dtype. 2024-01-01 15:31:41 +00:00
223857251d Update MNIST example to use new operator source locations and reflect recent API changes (sdpa bias removal, gatherSlices shape literals, Shape.outer, Tensor.all, and argMax dtype inference) 2023-12-26 10:45:52 +00:00
5bd7f8aae9 zml: HostBuffer.prettyPrint()
Add pretty printing of HostBuffer.

This will be leverage by the debug helper `x.print()`
It can also be used like this: `std.log.info("my buffer: {}",
.{host_buffer.pretty()})`
2023-12-25 13:01:17 +00:00
5ddd034d2c pjrt: Fix profiler by allowing i64 resource IDs and reserving memory when creating array lists. 2023-12-20 17:18:02 +00:00