veccore
mandelset
veccore | mandelset | |
---|---|---|
1 | 1 | |
79 | 5 | |
- | - | |
4.8 | 0.0 | |
about 1 month ago | 6 months ago | |
C++ | JavaScript | |
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.
veccore
-
Optimization Example: Mandelbrot Set (part 1)
In VecCore (a small C++ SIMD abstraction library on top of Vc and std::simd), I created some simple examples to show how to use the library to optimize code using SIMD in a somewhat generic way. You can find it on GitHub at https://github.com/root-project/veccore
I have examples for Julia sets and the Mandelbrot set, including an implementation with AVX2 intrinsics.
These days with std::simd more widely available there's less of a reason to use VecCore, but the examples may still be educational enough.
mandelset
-
Optimization Example: Mandelbrot Set (part 1)
Wow, this article opened my eyes to what is possible in optimizing code for a CPU.
I was expecting this article to rehash the usual algorithmic tricks for speeding up Mandelbrot set calculation -- filling in boxes where the four corners already have the same color, checking for repeating iteration cycles to fill in black, etc.
But I was very surprised to learn about how important CPU pipelines are, and therefore about "sheep race optimization" and interleaving, and then about the possibility of using vectorization on CPU. And in the end I'm utterly astonished that adding everything up results in the algorithm being calculated eight times faster. I would never have dreamed that such a level of speed improvement would be possible on such a simply, straightforward mathematical algorithm.
Of course, in the real world everybody today is going to calculate the Mandelbrot set using the GPU (as the author notes -- this is just an exercise). But now it has me tremendously curious as to whether there are similar optimizations that can be applied on the GPU side?
And especially whether those are accessible if done in WebGL/WebGPU? There are quite a number of Mandelbrot set generators available in the browser that use the GPU for calculations. The best I've found so far is:
http://mandelset.ru/ - https://github.com/iskandarov-egor/mandelset