gebdev
The biggest benefit I see is to enable RAM constrained GPUs to perform inference of large parameter models with surprisingly high throughput. Because only a single expert is resident, the memory to compute ratio over the network is limited only by the activations, not the weights. For an Moe like kimi k3 where active parameters are 103B, we might expect to achieve performance limited only by ~5 effective tok/s per Tflop and ~1 tok/s per 100GB/s.
The more members of the network, the smaller your resident parameters are required to be. I’m not sure whether we can split layer inference into arbitrary chunks, but if so you’d be able to increase memory throughput by storing everything in GPU caches.
Of course, we expect latency to be relatively high, but that’s a tradeoff that's fine for certain circumstances.
I’m not sure whether there are any issues more with this idea, but it’s a fun one nonetheless :)
Improper Hierarchy (2018) [video]
Notably the claim about how atomic operations clear the cache line in every cpu. Wow! Shared data can really be a performance limitation.
ack, thanks! You’re exactly right, I got my words mixed up.
Pathological PATH
A Day at the Park (2013)
I also think bughouse seems cool (aside from the issues mentioned), and want to give it a shot now. Probably in-person.
For the first item on reference counting, batched memory management is a possible alternative that still fits the C style. The use of something like an arena allocator approximates a memory lifetime, which can be a powerful safety tool. When you free the allocator, all pages are freed at once. Not only is this less error prone, but it can decrease performance. There’s no need to allocate and free each reference counted pointer, nor store reference counts, when one can free the entire allocator after argument parsing is done.
This also decreases fallible error handling: The callee doesn’t need to free anything because the allocator is owned by the caller.
Of course, the use of allocators does not make sense in every setting, but for common lifetimes such as: once per frame, the length of a specific algorithm, or even application scope, it’s an awesome tool!
For example, under “ChatGPT Is So Popular”, they disagree with the premise then use the argument that “ChatGPT was marketed with lies” as evidence. The later argument is well researched, but is simply out of place, leaving nothing to support their disagreement.