[GSLL-devel] [Gsll-devel] Efficient access to externally generated double-float arrays?
Sebastian Sturm
Sebastian.Sturm at itp.uni-leipzig.de
Fri Oct 29 08:31:02 UTC 2010
Liam,
I'm sorry, I now see a difference between the original gref* and your modified version of it. I guess I forgot to reload the Lisp image last time, so both timings had been obtained using the new gref*. There is still consing, but it's already reduced by a factor of three. Can be reduced by a further ~60% by using (the double-float (grid:gref* ...)) instead of just gref*; I assume this is due to to the float->pointer coercion done to gref*'s <return-value>.(?) Here's the new timing data (dim = 15):
"gref"
Evaluation took:
0.063 seconds of real time
0.056171 seconds of total run time (0.044926 user, 0.011245 system)
[ Run times consist of 0.006 seconds GC time, and 0.051 seconds non-GC time. ]
88.89% CPU
28 lambdas converted
137,624,278 processor cycles
4,032,960 bytes consed
"gref*"
Evaluation took:
0.012 seconds of real time
0.011932 seconds of total run time (0.011929 user, 0.000003 system)
100.00% CPU
26,178,823 processor cycles
785,360 bytes consed
"modified gref*"
Evaluation took:
0.001 seconds of real time
0.001202 seconds of total run time (0.000884 user, 0.000318 system)
100.00% CPU
3,126,090 processor cycles
278,512 bytes consed
"hardwired cffi:mem-aref"
Evaluation took:
0.000 seconds of real time
0.000033 seconds of total run time (0.000032 user, 0.000001 system)
100.00% CPU
66,462 processor cycles
0 bytes consed
I have attached the lisp file used to obtain these timings.
thanks,
Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fast-array-access.lisp
Type: application/octet-stream
Size: 3864 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/gsll-devel/attachments/20101029/e0328f57/attachment.obj>
More information about the gsll-devel
mailing list