HN user

tarnith

49 karma

https://tarnith.com/

Posts0
Comments37
View on HN
No posts found.

Yeah, data layout/cache aware layouts are really key if you really want to unlock making something that ends up in a hot loop fast with SIMD.

Also, avoiding allocations or vtable lookups or a lot of indirection in the part of the code that's actually "hot" is really important. Vectors (in C++) at least aren't necessarily the best fit either, if you end up doing anything that can call an allocation unexpectedly.

Can you cite any information on this not being possible for the vast majority?

Or is it simply that the correct prompt hasn't been written for all possible cases?

I also fail to see the difference if logic/harnessing is added around a vector database that can output the complete corpus, but simply is instructed not to.

It very clearly is still compressing the information into the vector weights, and then recovering that information, thus the information is encoded.

Why is a vector database somehow completely different from maintaining a library of the text itself?

In what universe would a sane person allow any LLM or remote calling software access to their user folder with sensitive data in it?

I swear, people hear the word LLM and their brain resets when it comes to good software practices.

Did VMs suddenly stop existing? Kata containers? An RHEL box with SEL?

It's like there's a new technology and everyone suddenly decided to shutoff their brain when it comes to basic security.

Yeah, EA open sourced their STL, although now that C++23 is supported (aside from on MSVC? Still not flat_map there?!?) there is some replication in the STL.

Not uncommon for audio companies to also write their own containers and internal STL for ex. plugins as well.

Who cares if it crashes? The users.

We can all agree it's not medical systems, but audio DSP and game dev both end up rewriting a lot of STL stuff to suit their needs, and often using a restricted subset of modern C++ features for similar reasons.

That isn't some arbitrary choice, but pretty much where everyone continually ends up when solving real-time problems using C++. Whether those be games or not.

It depends what you want to get out of it, and what you think art itself really is.

If it's nothing but an end product, that needs to fit a specific aesthetic, with a specific sound, then I probably agree. AI is making that "pointless" in a way.

Almost everyone I know who's been an artist for years though, has come to a similar realization: What you set out to create, and what it turns into through the process of creating it are different things. The meaning, truly is found along the way.

You can always be better, there's always more to learn. Nothing is ever truly perfect, or "complete"

If you write harmony, there's always a different way it could be written, that might fit better, or be more interesting. If you do sound design, whether that's with getting different guitar tones, synth programming, unique recording techniques, there's always more to learn, or a different way to approach it.

If the only point is an end result, then AI can deliver a simulacra of that.

For everyone I know that loves music, or working with DAWs, the end result is an ever shifting target as you learn more, and understand music in a different way.

Ultimately, there are no shortcuts to making something new, because the practice of trying to make things is what results in what your art becomes. Tools and technology can shape what that thing ends up being, but they (traditionally) don't replace the process of creating it, and the feedback loop between who you are and the decisions you make along the way.

Stripping all of that out, and jumping to a "finished" product, is, well very product focused, but to me completely devoid of art or musicianship.

Some people seem to compare this to sampling, but anyone who's ever actually worked with sampling in a creative way will realize how hollow that comparison is. Almost all good sampling still requires a good deal of active feedback, between the person working with it and the way THEY hear what's going on.

Remove the person from that loop, replace the decisions with a general vague notion, and you end up with something that sounds "like" music, but that feedback loop is broken.

I see the same thing with all the AI UI design that's coming out. It's all generally quite competent, and exactly the same. Great for a business tool, where maybe the velocity and an acceptable MVP is the only point, but terrible for actual design and novel thought.

TL;dr: Why do it? Because you want to, and you think that with enough time engaging with something you'll change, just as it does, and the result isn't something you could have ever predicted when you started. It changes you, and that's the point. Just like learning an instrument, or learning to code. It's not purely about the produced result, and that very result fundamentally is changed by you actively engaging with whatever the medium is.

This works for simple apps, utilities, and demos/mvps. Not great for actual applications.

What about when you're embedding your GUI into an existing application? or for use on an already taxed system? (Audio plugins come to mind)

What if something is costly, that you need to compute dynamically, but not often, makes it into the frame? Do you separately now create a state flag for that one render object?

I can definitely say I wouldn't know half of what I do and probably wouldn't have kept at it with writing GLSL and learning more about how GPUs really work without a lot of his freely shared knowledge over the years.

His articles on his website are very much worth a deep read too!

Not agreeing with either side here, but, printing money and handing it to an investment class who then launders it through their companies, to acquire more assets vs printing money that goes into infrastructure, works projects, or R&D are wildly different.

Not all monetary inflation is the same, and the destination of the money and the work produced with it can actually have quite an impact on the true wider economic effects of that increased money supply.

To be very clear, I'm not saying monetary policy is magical, or that it doesn't cause inflation.

It has very little to do with "things you like" and a lot more to do with "utility to society accomplished with the policy" along with the velocity of that money afterwards in local economies (IE. a worker is more likely to buy, well, food and rent, education. A PPP loaned exec will buy assets, or another yacht)

Believe it or not, one of those can generate more widespread economic growth than the other, for the same amount of money printed

Also see https://michaldrobot.com/2014/04/01/gcn-execution-patterns-i...

A bit of an older article but still very relevant.

I've found with webGL2 you can also skip the whole upload/binding of the buffer and just emit the vertexes/coordinates from the vertex shader as well.

Less of an impact than cutting it down, but if you're just trying to get a a fragment going, why not use the least amount of data and CPU-> GPU upload possible.

To sum this up a bit: Harmonic distortion is well accepted, unless done to an extreme amount. What people seem to struggle with most is intermodulation distortion, cross modulation, etc.

If you ever want to hear a guitar sound as rich as a synth, listen to someone running full polyphonic outputs for each string into a distortion per string. You get the rich harmonic violin/synth like tones of every string but can play full chords without any of the intermodulation products!

I'm kind of surprised guitars have stayed monophonic for as long as they have, and I feel like the next advance might be a cultural shift of guitars to a true polyphonic output path. Would definitely open up some interesting DSP pedal opportunities as a bonus.

The future is distorted guitars that can play complex chords imo

Yeah, if they'd messaged this release as a significant architecture change (that will be more significant over time, and in specific cases, like anything actually using a 512-bit data pipeline) and an efficiency gain they wouldn't be getting this reaction.

It's a much better release than many of the Intel refreshes, but the marketing leading up to it was quite bizarre compared to launch performance.

Moving the same performance down ~40w is great. Having better branch prediction, more registers, lower latency on many ops and double the SIMD width for no cost? Fantastic.

They sold it as a huge gaming gain that hasn't materialized, and then tried to say it was due to windows admin modes interfering with branch prediction (True, but equally seems to apply to Zen3/4)

If they'd sold this as a perf/W and backend architecture shift, they wouldn't be getting the reaction they're currently earning.

Seen some audio engines that do this too. You can come up with an elegant non-blocking lock free allocator and pass updates from the user thread out to system and reserve the memory, or you can just up front allocate everything that's needed.

If it's a fixed function synth, sometimes just allocating everything up front makes more sense.

I've also run into this thinking, and have been looking to solve it in codebases I'm working on.

I've run across: https://github.com/aff3ct/MIPP but have not worked with it extensively yet. It looks to be a solution to the rewriting X parallel pipeline into Y SIMD extensions.

Perhaps something like this, or languages introducing something similar into their standard libraries/modules would be a solution.

None of this of course solves the run-time detection of capability/growing binary size to support such.

Display technology will continue to improve like audio hardware has over the decades. We haven't matched the human eye yet.

Cameras are shooting 12-25 bits of dynamic range. Displays can't yet render this, but the data is being captured and better reflects what the eye can see as it adjusts looking around a scene. This gives a lot of latitude when processing RAWs (sensor data) to render out a final image in a chosen format (Currently commonly SRGB 8bpc but moving to 10bpc 709/2020)

No reason paintings or created works couldn't also fill out at least a ~24 bit dynamic range similar to audio (Hence the move to 10bpc, which gives roughly ~1.07e9 (2^10)^3 possible colours compared to ~1.67e6 (2^8)^3)

In painting this would let you have a lot more contrast before blowing out a highlight (hitting the digital limit in brightness representation and clipping or losing information), and a proper tonemapping curve combined with dithering can fold this down for lower capability displays. This also gives you a lot more range to work with when digitally colour mixing.

A similar thing already happens with 3D rendering workflows in Blender/C4D/Maya/etc. where an output curve is applied for tonemapping and colour correction.

This lets you work in an unconstrained space for processing/creating and then incorporates a mastering/release specific step for rendering out to a given display format. The great part is, as technology improves the original work can just be displayed as is. (Think about the progression from wire recording -> tape -> cassette -> CD -> direct master renders sold in lossless file format)