I can agree with the skeptics that LLM generated code is usually crap. I rarely accept its output without significant edits unless it's truly boilerplate, and I want to avoid the need for that kind of code in the first…
Yes I am, you can reach me at dsharlet@gmail.com
BLIS doesn't appear to support SME: https://github.com/search?q=repo%3Aflame%2Fblis+mopa&type=co... Maybe you want a comparison anyways, but it won't be competitive. On Apple CPUs, SME is ~8x faster than a single…
The problem I've seen is this: in order to get good performance, no matter what language you use, you need to understand the hardware and how to use the instructions you want to use. It's not enough to know that you…
I wrote a library in C++ (I know, probably a non-starter for most reading this) that I think does most of what you want, as well as some other requests in this thread (generalized to more than just multiply-add):…
I dunno man. My claim was that for specific cases with unique properties, it's not hard to beat BLAS, without getting too exotic with your code. BLAS doesn't have routines for multiplies with non-contiguous data,…
BLAS is getting almost exactly 100% of the theoretical peak performance of my machine (CPU frequncy * 2 fmadd/cycle * 8 lanes * 2 ops/lane), it's not slow. I mean, just look at the profiler output... You're probably now…
The makefile asks for -O2 with clang. I find that -O3 almost never helps in clang. (In gcc it does.) Here's what I see: $ clang++ --version clang version 18.0.0 $ time make bin/matrix mkdir -p bin clang++…
I should have mentioned somewhere, I disabled threading for OpenBLAS, so it is comparing one thread to one thread. Parallelism would be easy to add, but I tend to want the thread parallelism outside code like this…
This gets to 90% of BLAS: https://github.com/dsharlet/array/blob/38f8ce332fc4e26af0832... The less involved versions still get ~70%. But this is also quite general. I’m claiming you can beat BLAS if you have some unique…
This is really overstating how hard it is to compete with matrix multiply libraries. The main reason those libraries are so big and have had so much work invested in them is their generality: they're reasonably fast for…
I think for a compiler it makes sense to focus on small matrix multiplies, which are a building block of larger matrix multiplies anyways. Small matrix multiplies emphasize the compiler/code generation quality. Even…
I tried it out and compared it to C++ at the last release. Here was what I found: https://github.com/dsharlet/mojo_comments Some of the issues I pointed out there are pretty low hanging fruit for LLVM, so they may have…
I don't think it's true at all, you can just write C/C++ with SIMD intrinsics, just like you can on ARM or x86, and the instruction set is mostly awesome. OpenCL would just be an extra layer to get in the way. If you…
> The only case I can currently fore see where using LMUL=1 and manually unrolling instead will likely be always beneficial is vrgather operations that don't need to cross between registers in a register group (e.g.…
If you are looking for something like this in C++, here's my attempt at implementing it: https://github.com/dsharlet/array#einstein-reductions It doesn't do any automatic optimization of the loops like some of the…
Compilers can be pretty good if you help them out a bit. Here's my implementation of Einstein reductions (including summations) in C++, which generate pretty close to ideal code until you start getting into processor…
Funny you mention SPICE to VST compilation... It was on my list for this (my) side project but I never got around to it: http://livespice.org/ edit: And a Tubescreamer is one of the examples!
> which introduces some frequency/phase distortion I agree with everything you said here, except this. Can you explain this? Why does oversampling introduce distortion?
The rest of the post after the question mark you stopped reading at: > Filesystem corruption is frequently silent, and every-time it happens customers don't get on the phone and send the disks to apple so that they can…
In my experience, GPS doesn't work well when the device is in a pack or even a thick jacket. Also, batteries don't work well in the cold. Combine those two things, it's hard to get continuous GPS tracking in cold…
> That hundreds of millions of users took years to notice should be an indication this whole thing worked pretty well IMO. People absolutely have been noticing, this has been a very popular and long running issue. It…
TP-link is clearly ignoring many of the instructions from NTP: http://www.pool.ntp.org/vendors.html Notably, they are ignoring the ones that make it possible for NTP to be aware of the problem in the first place. Right…
Of all of the companies you listed, only Comcast needed to obtain the right to dig a trench through much of the private and public property in America prior to doing business. In exchange for that right, they accepted…
"The government" in this case is responsive to the 99% of people that do not care one bit about ISP monopolies, but do care greatly about road construction in their neighborhoods. This regulation exists for a reason…
I can agree with the skeptics that LLM generated code is usually crap. I rarely accept its output without significant edits unless it's truly boilerplate, and I want to avoid the need for that kind of code in the first…
Yes I am, you can reach me at dsharlet@gmail.com
BLIS doesn't appear to support SME: https://github.com/search?q=repo%3Aflame%2Fblis+mopa&type=co... Maybe you want a comparison anyways, but it won't be competitive. On Apple CPUs, SME is ~8x faster than a single…
The problem I've seen is this: in order to get good performance, no matter what language you use, you need to understand the hardware and how to use the instructions you want to use. It's not enough to know that you…
I wrote a library in C++ (I know, probably a non-starter for most reading this) that I think does most of what you want, as well as some other requests in this thread (generalized to more than just multiply-add):…
I dunno man. My claim was that for specific cases with unique properties, it's not hard to beat BLAS, without getting too exotic with your code. BLAS doesn't have routines for multiplies with non-contiguous data,…
BLAS is getting almost exactly 100% of the theoretical peak performance of my machine (CPU frequncy * 2 fmadd/cycle * 8 lanes * 2 ops/lane), it's not slow. I mean, just look at the profiler output... You're probably now…
The makefile asks for -O2 with clang. I find that -O3 almost never helps in clang. (In gcc it does.) Here's what I see: $ clang++ --version clang version 18.0.0 $ time make bin/matrix mkdir -p bin clang++…
I should have mentioned somewhere, I disabled threading for OpenBLAS, so it is comparing one thread to one thread. Parallelism would be easy to add, but I tend to want the thread parallelism outside code like this…
This gets to 90% of BLAS: https://github.com/dsharlet/array/blob/38f8ce332fc4e26af0832... The less involved versions still get ~70%. But this is also quite general. I’m claiming you can beat BLAS if you have some unique…
This is really overstating how hard it is to compete with matrix multiply libraries. The main reason those libraries are so big and have had so much work invested in them is their generality: they're reasonably fast for…
I think for a compiler it makes sense to focus on small matrix multiplies, which are a building block of larger matrix multiplies anyways. Small matrix multiplies emphasize the compiler/code generation quality. Even…
I tried it out and compared it to C++ at the last release. Here was what I found: https://github.com/dsharlet/mojo_comments Some of the issues I pointed out there are pretty low hanging fruit for LLVM, so they may have…
I don't think it's true at all, you can just write C/C++ with SIMD intrinsics, just like you can on ARM or x86, and the instruction set is mostly awesome. OpenCL would just be an extra layer to get in the way. If you…
> The only case I can currently fore see where using LMUL=1 and manually unrolling instead will likely be always beneficial is vrgather operations that don't need to cross between registers in a register group (e.g.…
If you are looking for something like this in C++, here's my attempt at implementing it: https://github.com/dsharlet/array#einstein-reductions It doesn't do any automatic optimization of the loops like some of the…
Compilers can be pretty good if you help them out a bit. Here's my implementation of Einstein reductions (including summations) in C++, which generate pretty close to ideal code until you start getting into processor…
Funny you mention SPICE to VST compilation... It was on my list for this (my) side project but I never got around to it: http://livespice.org/ edit: And a Tubescreamer is one of the examples!
> which introduces some frequency/phase distortion I agree with everything you said here, except this. Can you explain this? Why does oversampling introduce distortion?
The rest of the post after the question mark you stopped reading at: > Filesystem corruption is frequently silent, and every-time it happens customers don't get on the phone and send the disks to apple so that they can…
In my experience, GPS doesn't work well when the device is in a pack or even a thick jacket. Also, batteries don't work well in the cold. Combine those two things, it's hard to get continuous GPS tracking in cold…
> That hundreds of millions of users took years to notice should be an indication this whole thing worked pretty well IMO. People absolutely have been noticing, this has been a very popular and long running issue. It…
TP-link is clearly ignoring many of the instructions from NTP: http://www.pool.ntp.org/vendors.html Notably, they are ignoring the ones that make it possible for NTP to be aware of the problem in the first place. Right…
Of all of the companies you listed, only Comcast needed to obtain the right to dig a trench through much of the private and public property in America prior to doing business. In exchange for that right, they accepted…
"The government" in this case is responsive to the 99% of people that do not care one bit about ISP monopolies, but do care greatly about road construction in their neighborhoods. This regulation exists for a reason…