[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