Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
brrrrrm
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
37 ms
·
451.
▲
by
brrrrrm
5y ago
that's exactly how TF.js does it: https://github.com/google/XNNPACK/blob/master/src/f32-gemm/M...
452.
▲
by
brrrrrm
5y ago
In an ideal world, absolutely! It's a hard problem and there are many attempts to make that happen automatically including polyhedral optimization (Polly[1]) and tensor compiler libraries (XLA[2] and TVM[3]). I work on a project call
453.
▲
by
brrrrrm
5y ago
That's a good point: you certainly could. There's some fun exploration to be done with atomic operations. The issue is that threaded execution requires cross-origin isolation, which isn't trivial to integrate. (Example serv
454.
▲
by
brrrrrm
5y ago
I'm not really equipped to predict anything, but I think recent surge in popularity of simple RISC-y[1] architectures like ARM will allow the WebAssembly standard to stay small yet efficient. I'm hopeful, but standards often have
455.
▲
WebAssembly techniques to speed up matrix multiplication
(jott.live)
251 points
by
brrrrrm
5y ago
|
128 comments
456.
▲
How to implement optimized matrix multiplication in pure WebAssembly
(jott.live)
2 points
by
brrrrrm
5y ago
|
0 comments
457.
▲
Endohedral Fullerene
(en.wikipedia.org)
1 points
by
brrrrrm
5y ago
|
0 comments
458.
▲
RLMeta: Light-Weight Framework for Distributed Reinforcement Learning Research
(github.com)
1 points
by
brrrrrm
5y ago
|
0 comments
459.
▲
by
brrrrrm
5y ago
I fixed your fiddle to get the normal unrolled version 4x faster. Please see: https://jsfiddle.net/Lmzqpr03/ Largely, the use modern javascript and proper benchmarking made the results more consistent with the benchma
460.
▲
by
brrrrrm
5y ago
https://jsbenchit.org/?src=cb64%2CeJztV21v2zYQ_iuEPyVIRvNIHl...
461.
▲
by
brrrrrm
5y ago
Your fiddle doesn’t seem to run a warmup or the code more than once. I’m guessing the second loop (the unrolled one) benefits from some JIT warmup. That being said, I’m seeing a very similar relative difference in your fiddle to what I see
462.
▲
by
brrrrrm
5y ago
It's definitely a bit faster with the unroll, but on my machine it's not by too much. I've added that idea to the interactive benchmark if you'd like to check it out!
463.
▲
by
brrrrrm
5y ago
mostly L1 data-cache, yea (50% of peak BW). Which is a good sign for an interpreted ISA.
464.
▲
by
brrrrrm
5y ago
That's a good question, and I think there's some data in the benchmark dump to help answer it. The tuning logic for the results labeled `wasmblr (tuned X)` sweeps through a couple values for X (the unroll size) and shows the best
465.
▲
by
brrrrrm
5y ago
Great catch! I assumed the JIT would identify f32 arithmetic but I guess that isn't really valid numerically. I wonder if there's a way to use Math.fround[1] on your benchmark to get expected speedups? [1] https://dev
466.
▲
by
brrrrrm
5y ago
Yep, you still need to bulk copy memory around if it already exists. If you own the memory, though, you can avoid copying (wasm has "import") but you'll need to manage that manually. I've found the cleanest approach for
467.
▲
by
brrrrrm
5y ago
I believe numpy is bounded by Python's interpreter (which runs at about ~1us per dispatch to C function from what I recall while working on PyTorch). The number you get is definitely what I'd expect. If you use larger arrays (and
468.
▲
Faster TypedArrays: Vector Addition in WebAssembly
(jott.live)
102 points
by
brrrrrm
5y ago
|
28 comments
469.
▲
Beyond -msimd128: Vector Addition in WebAssembly @ 154GB/s
(jott.live)
4 points
by
brrrrrm
5y ago
|
0 comments
470.
▲
Show HN: A C++ Web Assembly assembler
(github.com)
1 points
by
brrrrrm
5y ago
|
0 comments
471.
▲
Simplified Array Programming
(jott.live)
1 points
by
brrrrrm
5y ago
|
0 comments
472.
▲
Loop_tool: Generate a Portable C File for Neural Networks Interactively
(colab.research.google.com)
2 points
by
brrrrrm
5y ago
|
0 comments
473.
▲
by
brrrrrm
5y ago
Mentioned in the video is the claim that there simply aren't many products that use Apple's Metal API. It's a similar situation with AMD's GPUs - theoretical performance that can't be achieved without commercial ad
474.
▲
by
brrrrrm
5y ago
The article is a bit lacking in details. Here are some changes in ML performance that are happening today and don't require increased transistor counts: 1. newer optimizations algorithms converge faster (Adam, adagrad) 2. lower-precis
475.
▲
by
brrrrrm
5y ago
You’d need to be careful of overfitting the network.
476.
▲
by
brrrrrm
5y ago
Newton method: find an error and attempt to fix it by approximation Convex objective: a bowl-like function, we want inputs that put us at the bottom of it Lipschitz: a space that isn’t too stretchy Hessians: second partial derivatives of th
477.
▲
Ask HN: Is peak theoretical performance of database operations calculable?
1 points
by
brrrrrm
5y ago
|
0 comments
478.
▲
by
brrrrrm
5y ago
Is the benchmark code open source?
479.
▲
by
brrrrrm
5y ago
From a description in the referenced NeurIPs spotlight paper ( https://attentionneuron.github.io ) > While it is possible to acquire a quasi-PI agent by training with randomly shuffled observations and hope the agent’s policy n
480.
▲
by
brrrrrm
5y ago
You’re probably right, I’m browsing with iOS safari and no ad-block
More ›