The difference between 'it just works' code VS code with a bit of love.
I've been managing to spend more time with the max recently, another project is close to getting tied up so my adhd brain is seeking dopamine again lol
Had to do a lot of hand-patching to get this to compile, but I've learned a fair bit which is priceless.
####################################################################################
So Creality ship their printers with a 'it works' philosophy, the code klipper runs on is mainly generic, no fancy stuff, easy to compile, easy to release updates you get it (hopefully)
This is what happens when you create a program (for want of a better word) that uses all of the brain that it's meant to run on. I remade python and numpy (needed for a lot of math calculations on a printer) and this is the performance difference.
No overclock, stock cpu settings, this performance has always been there, just not being used, it's free.
The reason why i've done these sorts of things and others like Doom and a Media player on the Max is it's quite sad when people say the K1 series are weak, barely able to run klipper, moaning basically, I'd just like to prove that with a little bit of work the X2000 cpu is quite a little beast.
Anyway, this is the difference, enhanced files VS stock files. If my math is correct its around a 40X speedup, no overclocking, no hacks just using a chip with its full capabilities (tbf there's a bit more on the table)
####################################################################################
root@K1Max-1361 /root [#] PYTHONPATH=/usr/data/Custom_stuff/numpy-test/python3.8/site-packages LD_LIBRARY_PATH=/usr/data/Custom_stuff/numpy-test python3 -c "
> import numpy as np
> import time
> a = np.random.rand(1000, 1000)
> b = np.random.rand(1000, 1000)
> start = time.time()
> c = np.dot(a, b)
> print('Matrix multiply 1000x1000:', time.time()-start, 'seconds')
> "
Matrix multiply 1000x1000: 3.58868408203125 seconds
root@K1Max-1361 /root [#] python3 -c "
> import numpy as np
> import time
> a = np.random.rand(1000, 1000)
> b = np.random.rand(1000, 1000)
> start = time.time()
> c = np.dot(a, b)
> print('Matrix multiply 1000x1000:', time.time()-start, 'seconds')
> "
Matrix multiply 1000x1000: 149.9074788093567 seconds
root@K1Max-1361 /root [#]
####################################################################################
Tldr Stock does the math in 150 seconds, fancy shizz does the math in 3.5.
This is a bit like gaming on a pc, Stock the Max is using an IGPU, unlocking everything is like adding a GPU to to the same pc if that makes sense?
Anyway, gonna leave it for tonight, just thought I'd share what the Ingenic X2000 chip can do when properly utilised :)