[ODE] More speed???
Nguyen Binh
ngbinh at glassegg.com
Tue Nov 4 10:51:11 MST 2003
Hi list,
I'm deep in optimizing ODE (mostly for speed). Here are some of my
observations:
+ There are many places to optimize in ODE
+ After just removing some dSetZero() calls and making use of
dSetZeroSSE(), I found that original Step rountine is no longer too
slow compare to Stepfast
Most obvious ways to optimize:
a) Original Step code path:
The two most expensive functions are dSolveL1() and
dSolveL1T() (each of them take roughly 20% programs's CPU power).
These two function's purpose is to solve linear problem A.x = b
This result surprise me much.
-These two function can be SIMDize
easily. I have not tried it yet but I'd bet it will make
original Step() much faster.
- Or we can solve them using "iterative" method
(Refer to ftp://ftp.netlib.org/templates/templates.ps
it's a great source)
b) Stepfast code path:
Stepfast use "iterated/relaxation" method to solve for
constaints. But it used LCP routine specialized for "big
matrix". Actually, all matrix passed to LCP have small dimension
(<6??).So one way to optimize is using specialized LCP for small matrix
FYI,luckily, I have chanced to use Havok2 in my work, my impression
is ODE is not too bad compare to Havok2 :).
Happy coding!
--
Best regards,
---------------------------------------------------------------------
Nguyen Binh
Software Engineer
Glass Egg Digital Media
E.Town Building
7th Floor, 364 CongHoa Street
Tan Binh District,
HoChiMinh City,
VietNam,
Phone : +84 8 8109018
Fax : +84 8 8109013
www.glassegg.com
---------------------------------------------------------------------
More information about the ODE
mailing list