DRC/LVS/PEX/SPICE are deterministic, but the tools themselves are not without faults.
513 karma · joined February 22, 2019
DRC/LVS/PEX/SPICE are deterministic, but the tools themselves are not without faults.
I'm getting 50x faster code with manual ASM. That's the difference between audio code that runs in realtime and code that does not.
The competing implementations use SIMD and native code, autovec works nicely there. I symbolically invert the LinAlg system at compile time.
You can either have performance (=write manual ASM for each platform), or portability, but not both.
What so-called "portable SIMD" libraries give you is "portable auto-vectorization". "Portable performance" is a global property of the algorithm. Relying on auto-vectorization will result in e.g. sub-optimal register spills in practice. The microbenchmarks will look great, though. ;)
On what, microbenchmarks? I have realtime audio workloads where the hot loop is essentially linear algebra. Exactly the kind of work that suits AVX2/AVX512. Guess what, Apple Silicon still pulls ahead because real workloads are branchy, cache-hungry, full of dependencies and do not line up in 8 neat f64 operations per cycle.
+ hopefully reset?
As others said, the killer app is XCode. Even if you can technically get it to run, you'll still need the full support and test flows of a native solution, so you might as well follow the proper path and use a Mac.
I can get Visual Studio to run in Parallels today. I still test with a real Windows machine.
Out of those, Julia is the only one that combines Multiple Dispatch and native code, both important for numerics.
Technically true, since it supports NVIDIA and AMD.
But we have a different definition of portability, if I cannot bring a Metal device and expect it to work.
> Web distribution, which is available only in the EU
I assume this settles it, since it was always possible to web-distribute desktop apps outside the EU.
License-wise, Mojo reminds me of paid Borland compilers that were in vogue before I was born. Even if it's open-sourced, what incentive does Qualcomm have to maintain a happy path for Metal deployment? Mojo might actually be the best way to program Apple GPUs (on a technical level) and it would still lose due to politics.
Sure, if you want the latest and almost* greatest. You can pick up an M1 Max 64GB for ~1k.
* I guess 128GB also exists
It's used in audio processing. But large DAW sessions need something beefier than both tested devices (Macbook Neo, XPS).
They do in audio processing. ;)
> Something to note is that quantum algorithms are never purely quantum. There is a tonne of classical processing needed to get inputs ready, post-process outputs, and even construct and represent the quantum circuits themselves.
2. Did you face any problems for the 'surrounding' areas by JAX imposing the limitation of pure functions?
# Traditional Let over Lambda
counter = let x = 100
() -> x += 1
end
counter() # 101
# Pandoric Macro
captured_x_ref = Core.getfield(counter, :x)
println("The hidden state is: ", captured_x_ref.contents) # Outputs: 101Same here, but in Julia instead. Sometimes I drop down to LLVM intrinsics (e.g. to force lop3.lut on GPUs).