[Openmcl-devel] Floating point performance

Paul Onions wibble37 at mac.com
Sun Jan 31 09:02:11 UTC 2010


On 31 Jan 2010, at 00:28, Gary Byers wrote:
>
> On Sat, 30 Jan 2010, Ron Garret wrote:
>>
>> You could just compile a sqrt function with gcc and call it through  
>> the FFI.
>>
>
> Or exploit the fact that the authors of the OS's math libraries have
> already defined #_sqrt and #_sqrtf and call those functions.  That's
> pretty straightforward; dealing with FP exceptions in math library
> calls is a bit less so.
>

Yes, I had the same thought last night, so I went off and started  
reading the documentation on .cdb files and the FFI (something I've  
been meaning to do for ages). Looks like very impressive stuff.  
Anyway, this morning I tried

(defun test-fun-3 ()
   (loop repeat 1000000
         for x = 1.0 then (+ x 0.01)
         sum (#_sqrt (float x 1.0d0))))

(defun test-fun-4 ()
   (loop repeat 1000000
         for x = 1.0 then (+ x 0.01)
         sum (#_sqrtf x)))

which took 1.5s and 1s, respectively. Much more reasonable!

So, the final step is find out where in CCL's codebase the SQRT trap  
is used, and make sure I can work around those areas. In an earlier  
email you mentioned that it is only used in "a couple of LAP  
functions". May I ask, what's a "LAP function"? As you might have  
guessed I am not familiar with CCL internals.

Thanks for all your help,
Paul





More information about the Openmcl-devel mailing list