[Openmcl-devel] Floating point performance
Paul Onions
wibble37 at mac.com
Sun Jan 31 01:02:11 PST 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