I love how many python to native/gpu code projects there are now. It's nice to see a lot of competition in the space. An alternative to this one could be Taichi Lang [0] it can use your gpu through Vulkan so you don't have to own Nvidia hardware. Numba [1] is another alternative that's very popular. I'm still waiting on a Python project that compiles to pure C (unlike Cython [2] which is hard to port) so you can write homebrew games or other embedded applications.<p>[0] <a href="https://www.taichi-lang.org/" rel="nofollow">https://www.taichi-lang.org/</a><p>[1] <a href="http://numba.pydata.org/" rel="nofollow">http://numba.pydata.org/</a><p>[2] <a href="https://cython.readthedocs.io/en/stable/" rel="nofollow">https://cython.readthedocs.io/en/stable/</a>
I really like how nvidia started doing more normal open source and not locking stuff behind a login to their website. It makes it so much easier now that you can just pip install all the cuda stuff for torch and other libraries without authenticating and downloading from websites and other nonsense. I guess they realized that it was dramatically reducing the engagement with their work. If it’s open source anyway then you should make it as accessible as possible.
I was playing around with taichi a little bit for a project. Taichi lives in a similar space, but has more than an NVIDIA backend. But its development has stalled, so I’m considering switching to warp now.<p>It’s quite frustrating that there’s seemingly no long-lived framework that allows me to write simple numba-like kernels and try them out in NVIDIA GPUs and Apple GPUs. Even with taichi, the Metal backend was definitely B-tier or lower: Not offering 64 bit ints, and randomly crashing/not compiling stuff.<p>Here’s hoping that we’ll solve the GPU programming space in the next couple years, but after ~15 years or so of waiting, I’m no longer holding my breath.<p><a href="https://github.com/taichi-dev/taichi">https://github.com/taichi-dev/taichi</a>
Ive dredged though Julia, Numba, Jax, Futhark, looking a way to have good CPU performance in absence of GPU, and I'm not really happy with any of them. Especially given how many want you to lug LLVM along with.<p>A recent simulation code when pushed with gcc openmp-simd matched performance on a 13900K vs jax.jit on a rtx 4090. This case worked because the overall computation can be structured into pieces that fit in L1/L2 cache, but I had to spend a ton of time writing the C code, whereas jax.jit was too easy.<p>So I'd still like to see something like this but which really works for CPU as well.
Slightly related<p>What's this community's take on Triton? <a href="https://openai.com/index/triton/" rel="nofollow">https://openai.com/index/triton/</a><p>Are there better alternatives?
> Warp is designed for spatial computing<p>What does this mean? I've mainly heard the term "spatial computing" in the context of the Vision Pro release. It doesn't seem like this was intended for AR/VR
> What's Taichi's take on NVIDIA's Warp?<p>> Overall the biggest distinction as of now is that Taichi operates at a slightly higher level. E.g. implict loop parallelization, high level spatial data structures, direct
interops with torch, etc.<p>> We are trying to implement support for lower level programming styles to accommodate such things as native intrinsics, but we do think of those as more advanced optimization techniques, and at the same time we strive for easier entry and usage for beginners or people not so used to CUDA's programming model<p>– <a href="https://github.com/taichi-dev/taichi/discussions/8184">https://github.com/taichi-dev/taichi/discussions/8184</a>
I really wish python would stop being the go-to language for GPU orchestration or machine learning, having worked with it again recently for some proof of concepts its been a massive pain in the ass.
This should be seen in light of the Great Differentiable Convergence™:<p>NERFs backpropagating pixels colors into the volume, but also semantic information from the image label, embedded from an LLM reading a multimedia document.<p>Or something like this. Anyway, wanna buy an NVIDIA GPU ;)?
While this is really cool, I have to say..<p>> import warp as wp<p>Can we please not copy this convention over from numpy? In the example script, you use 17 characters to write this just to save 18 characters later on in the script.
Just import the warp commands you use, or if you really want "import warp", but don't rename imported libraries, please.
>GPU support requires a CUDA-capable NVIDIA GPU and driver (minimum GeForce GTX 9xx).<p>Very tactful from nvidia. I have a lovely AMD gpu and this library is worthless for it.