ADIOS2
FluidX3D
ADIOS2 | FluidX3D | |
---|---|---|
1 | 53 | |
253 | 3,210 | |
2.0% | - | |
9.8 | 8.6 | |
5 days ago | 7 days ago | |
C++ | C++ | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ADIOS2
-
What Every Developer Should Know About GPU Computing
I thought I'd share something with my experience with HPC that applies to many areas, especially in the rise of GPUs.
The main bottleneck isn't compute, it is memory. If you go to talks you're gonna see lots of figures like this one[0] (typically also showing disk speeds, which are crazy small).
Compute is increasing so fast that at this point we finish our operations long faster than it takes to save those simulations or even create the visualizations and put on disk. There's a lot of research going into this, with a lot of things like in situ computing (asynchronous operations, often pushing to a different machine, but needing many things like flash buffers. See ADIOS[1] as an example software).
What I'm getting at here is that we're at a point where we have to think about that IO bottleneck, even for non-high performance systems. I work in ML now, which we typically think of as compute bound, but being in the generative space there are still many things where the IO bottlenecks. This can be loading batches into memory, writing results to disk, or communication between distributed processes. It's one beg reason we typically want to maximize memory usage (large batches).
There's a lot of low hanging fruit in these areas that aren't going to be generally publishable works but are going to have lots of high impact. Just look at things like LLaMA CPP[2], where in the process they've really decreased the compute time and memory load. There's also projects like TinyLLaMa[3] who are exploring training a 1B model and doing so on limited compute, and are getting pretty good results. But I'll tell you from personal experience, small models and limited compute experience doesn't make for good papers (my most cited work did this and has never been published, gotten many rejections for not competing with models 100x it's size, but is also quite popular in the general scientific community who work with limited compute). Wfiw, companies that are working on applications do value these things, but it is also noise in the community that's hard to parse. Idk how we can do better as a community to not get trapped in these hype cycles, because real engineering has a lot of these aspects too, and they should be (but aren't) really good areas for academics to be working in. Scale isn't everything in research, and there's a lot of different problems out there that are extremely important but many are blind to.
And one final comment, there's lots of code that is used over and over that are not remotely optimized and can be >100x faster. Just gotta slow down and write good code. The move fast and break things method is great for getting moving but the debt compounds. It's just debt is less visible, but there's so much money being wasted from writing bad code (and LLMs are only going to amplify this. They were trained on bad code after all)
[0] https://drivenets.com/wp-content/uploads/2023/05/blog-networ...
[1] https://github.com/ornladios/ADIOS2
[2] https://github.com/ggerganov/llama.cpp
[3] https://github.com/jzhang38/TinyLlama
FluidX3D
- FluidX3D
-
Earthquake in Japan yesterday may have shifted land 1.3 meters
Could even use this as a revers GLOBAL ORBITING SYSTEM [GoS] - Whereby a single satellite|probe dispels a lander to a planet with the Quantum Magnetic Cannister, and that QMC signals its global location to the satellite launcher, and the satellit can extrap its location based on the absolute location of the ground guys... (might need more than one ground magnet-moles?)
How can this be measured? Can fluidx3d do martian magnetics? [0]
--
[0] https://github.com/ProjectPhysX/FluidX3D
---
EDIT: "Mars does not have a magnetosphere"
ELI5: "how do electronics work when there is zero magnetic field around them? A complete antimagnetic environ?"
I've never heard any mention about making any electrical device work on a planet (such as mars) in a complete magnetically dark location?
How is there gravity on mars if there is no magnetic field for a planet, and how can mass, the size of a planet not produce magnetism/gravity if its not made of iron-sh (the RED of the planet)
ELI5, please.
-
Challenging projects every programmer should try
See my post in this thread about dimples/barnacles...
But have you seen this guys package: https://github.com/ProjectPhysX/FluidX3D
- Fast and Memory efficient lattice Boltzmann CFD software, running on all GPUs
-
What 8x AMD Instinct MI200 GPUs can do with a combined 512GB VRAM: Bell 222 Helicopter in FluidX3D CFD - 10 Billion Cells, 75k Time Steps, 71TB vizualized - 6.4 hours compute+rendering with OpenCL
Yes, I've made that super easy. You can change the VRAM capacity of your hardware as one number in the setup script and it will automatically scale the simulation up or down. See the documentation for details.
-
Need help : I' using FluidX3D, and this model is taken from the game Assetto Corsa (.kn5 file) and converted in stl using blender. In blender and many stl file viewer it shows fine but when I try to use FluidX3D it shows weird lines and I don't know why. I tried using other methods to convert t
Also see this GitHub Issue on the problem: https://github.com/ProjectPhysX/FluidX3D/issues/59
-
Real time CFD with FluidX3D - Cessna 172 - 20 million cells - Titan Xp GPU
If you want to play with the software yourself, FluidX3D is on GitHub: https://github.com/ProjectPhysX/FluidX3D
-
GPUs in CFD
This is my opinion about what is happening. Production CFD solvers are really complicated and take a lot of time and energy to write. Engineers learning to use a CFD solver to get a job done is really time consuming and there are all sorts of issue that come up like actually trusting the new solver. Both of these things have really held back GPUs in this area. There are really only two ways out of this, either you write a solver from scratch and get people to adopt it (double hard) or you take an existing solver and modify it to run on GPUs (still pretty hard). The first option is very hard but ultimately the way to go in my opinion. The second option results in very poorly optimized GPU code and honestly just gives a bad name to GPU computing in my opinion. Take OpenLB for example, https://www.openlb.net/show-cases/highly-resolved-nozzle-simulation-performed-using-multi-gpu-support/. Terrible terrible performance compared to what you could get if you wrote the solver from scratch on the GPU, for example, https://github.com/ProjectPhysX/FluidX3D.
- Where to try/test (and learn) CFD models for free?
- FluidX3D: Fast, memory efficient lattice Boltzmann CFD software /w OpenCL
What are some alternatives?
TinyLlama - The TinyLlama project is an open endeavor to pretrain a 1.1B Llama model on 3 trillion tokens.
HPX - The C++ Standard Library for Parallelism and Concurrency
nekRS - our next generation fast and scalable CFD code
OpenCL-examples - Simple OpenCL examples for exploiting GPU computing
matio-cpp - A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
McCode - The home of the McStas (neutrons) and McXtrace (x-rays) Monte-Carlo ray-tracing instrument simulation codes.
h5cpp - C++17 templates between [stl::vector | armadillo | eigen3 | ublas | blitz++] and HDF5 datasets
pysph - A framework for Smoothed Particle Hydrodynamics in Python
h5pp - A C++17 interface for HDF5
lbm - A simple full-python 2D lattice-boltzmann code
public - A collection of my cources, lectures, articles and presentations
intel-extension-for-tensorflow - IntelĀ® Extension for TensorFlow*