back
user profile

raphlinus

13,685karma·1,846submissions·March 7, 2014
about
I do research on fundamental UI technology and 2D graphics, with a focus on Rust and fonts. @raph@mastodon.online
recent activity (1,846 total)
comment
I have the Adafruit DVI board and have been hacking on it some. It's more fun than should be allowed. There's a project to get this running using Rust[1]. Currently it outputs the blue chann…
3y ago·view thread
comment
It is possible but you have to do things very differently, for example use monoids. There are a few compilers implemented on GPU, including Aaron Hsu's co-dfns and Voetter's compiler project…
3y ago·view thread
comment
Shared memory, yes, with the goodies: atomics and barriers. We rely on that heavily in Vello, so we've pushed very hard on it. For example, WebGPU introduces the "workgroupUniformLoad" …
3y ago·view thread
comment
> ...in the future new functionality will likely be added to take advantage of your GPU in other ways, such as training ML models and then using them via an inference engine all powered by your loc…
3y ago·view thread
comment
I suspect this article may even be underestimating the impact of WebGPU. I'll make two observations. First, for AI and machine learning type workloads, the infrastructure situation is a big mess …
3y ago·view thread
comment
This looks exciting, and I'm looking forward to its progress. I have questions about GPU infrastructure in particular. It seems like the GPU backend is primarily through MLIR. Does that target CU…
3y ago·view thread
comment
Yes, this is the idea behind the proposed error metrics in my thesis, particularly the "hybrid error metric" in 9.6.1 and then implemented in the Python code (see curves/to_cubic.py in …
3y ago·view thread
comment
Too late to edit: I was confusing RV64X and Vortex. It is indeed based on the latter, and extends it in interesting directions, in particular implementing Vulkan instead of just OpenGL.
3y ago·view thread
comment
Typically in SIMT, all lanes in a "simd" (aka subgroup in Vulkanspeak) share the same program counter. However, there is an execution mask so not all lanes are active. Thus, to simulate &quo…
3y ago·view thread
comment
This looks like it has fairly similar goals and implementation choices as RV64X. I didn't immediately see them citing that previous work, but I've only skimmed it so far. In any case, I love…
3y ago·view thread
comment
Here's my version of the example translated into safe Rust: https://play.rust-lang.org/?version=stable&mode=debug&editio... This being safe Rust, it fixes the undefined b…
3y ago·view thread
comment
I may be wrong, and overall I'm very sympathetic to changing the patent system to incentivize actually making things. That said, I think changes to policy must be interpreted in an adversarial …
3y ago·view thread
comment
It's pretty easy to predict what would happen in practice if this policy proposal were adopted. An entire category of bullshit jobs would be created to write "source code" that met the …
3y ago·view thread
comment
There are no active plans to do this, but it's all open source and there are tools such as cbindgen, so if there is sufficient interest there's a good chance it will happen.
3y ago·view thread
comment
This is 0x3f800002, which should look pretty familiar to people who work with floating point in hex; it's 2 + the representation of 1.0. To understand the lowest order bits, you've got -0.0 …
3y ago·view thread
comment
You might be able to do something along those lines, but I know of no font / vector 2D renderer that does so. There is a lot of literature[1] on this, so I suspect if doing things similar to subd…
3y ago·view thread
comment
This is true, but there is a lot more to the story. For one, WebGPU does not (yet) support mesh shaders, though it may later as an extension. For two, consider a glyph such as "o" that has t…
3y ago·view thread
comment
One of the most exciting features of WebGPU, especially over WebGL, is the ability to run compute shaders. That opens up an entire class of 2D vector graphics rendering techniques using compute shader…
3y ago·view thread
comment
Some more links. Bellingcat broke the Discord server story 5 days ago[1]. The Washington Post has a stunning story, including barely obscured video (unaltered voice) from a teenager who was active in …
3y ago·view thread
comment
I was expecting this to be the recent conversation[1] about Medley Interlisp, presented at Bay Area Lisp almost a month ago. It's been on my list to watch. [1]: https://www.youtube.com…
3y ago·view thread
comment
The thing that stuck out to me is the assertion that FFT is poorly supported on modern GPU. That's surprising to me, as there's cuFFT offically supported by Nvidia, and vkFFT that achieves s…
3y ago·view thread
comment
This is still on the web, just with a slightly different URL: https://levien.com/artofcode/fontfocus/ It never went anywhere. One flaw is that it doesn't help with cert…
3y ago·view thread
comment
Knowing you would respond in this way is why I added the qualifier "reasonably."
3y ago·view thread
comment
This depends entirely on your goals. If you're researching the actual machine learning algorithms, then use a framework like TensorFlow or Torch, which provides all the tensor operations and abst…
3y ago·view thread
comment
This is a huge milestone. It's also part of a much larger journey. In my work on developing Vello, an advanced 2D renderer, I have come to believe WebGPU is a game changer. We're going to ha…
3y ago·view thread
comment
Hey, patio11 doesn't post that often.
3y ago·view thread
comment
Yes, the tool is cargo-gnaw. It does not evaluate build.rs files itself, but there is a process for evaluating them at the time the crate is vendored. https://fuchsia.googlesource.com/…
3y ago·view thread
comment
This is in fact one part of the post that was based on an unironic kernel of truth. I've wrestled with this more than most people. In particular I tried to fit cargo into the Fuchsia build system…
3y ago·view thread
comment
I'll explain the joke, as it's subtle. Rust indeed has an explicitly stated backwards compatibility guarantee, which limits evolution of the language. One example of that is Range not being …
3y ago·view thread