freenode/#clasp - IRC Chatlog
Search
1:43:23
drmeister
Bike: Is your make-instance optimization in place - or is it stymied by startup/bootstrapping issues?
1:45:40
drmeister
make-instance is the first thing that jumps out at me as being radically slower in clasp than sbcl 1000x
1:47:35
drmeister
I wonder if we were to slow down clisp's make-instance by 1000x how that would effect it's speed of running cleavir.
1:51:37
drmeister
So: 5.40 (PUSH (MAKE-LIST 100) *MAKE-LIST*) (DEFPARAMETER *MAKE-LIST* NIL) means...
1:52:03
drmeister
10^5.4 (push (make-list 100) *make-list*) can be evaluated per second after (defparameter *make-list* nil) was evaluated.
2:04:24
drmeister
I'm trying to figure out why bclasp is so slow relative to clisp when running cleavir.
2:07:09
drmeister
When I compare cclasp with bclasp using these micro-benchmarks the numbers come out pretty close. It doesn't look like cclasp is getting us much in the way of performance.
2:08:31
Bike
maybe the real problem is we have all these confusing flags so we can't tell what we're benchmarking :p
2:21:58
drmeister
I'm looking for possible explanations why clisp is so much faster at compilation than clasp.
2:25:05
drmeister
I have this in one file called timing.lsp - I use (load (compile-file "timing.lsp")) What does that use?
2:27:20
drmeister
Right now I'm just benchmarking bclasp against clisp. bclasp is comparable and a bit faster on many things.
2:27:44
drmeister
Except make-instance is about 10x slower in bclasp. This gives me something I can test.
2:28:31
drmeister
I can slow down clisp's make-instance to a comparable degree and then compare how clisp+cleavir performs relative to bclasp+cleavir.
2:29:52
drmeister
I think it's fair to compare bclasp+cleavir to clisp+cleavir compilation performance.
2:30:48
karlosz
although you want to watch out and make sure you arent running clisp interpreted cleavir
2:34:51
karlosz
Bike: if you want to try the SSA, the ssa.lisp file is self contained. convert-ssa in that file will convert a closure converted hir properly.
2:36:37
drmeister
Clasp: 4.26 (MAKE-VGIBBLES :X 1 :Y 2 :Z 3) (DEFSTRUCT (VGIBBLES (:TYPE VECTOR) :NAMED) X Y Z)
2:36:53
drmeister
clisp: 6.73 (MAKE-VGIBBLES :X 1 :Y 2 :Z 3) (DEFSTRUCT (VGIBBLES (:TYPE VECTOR) :NAMED) X Y Z)
2:38:38
Bike
https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/lsp/defstruct.lsp#L262-L269
2:40:37
Bike
well... that's a bit simpler https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/lsp/defstruct.lsp#L334
2:51:04
drmeister
7.25 (SETF (AREF *TARRAY2* 15) :TEST-SYMBOL) (DEFPARAMETER *TARRAY2* (MAKE-ARRAY 20 :ELEMENT-TYPE T))
5:05:54
drmeister
Some of the timing results were off a bit because of generic function discriminator compilation. I added a warm up stage to the micro-benchmarks that evaluates the form a few times before running the timing loop.
13:00:49
Colleen
Bike: drmeister said 5 hours, 48 minutes ago: Is regular inlining of things like primop:two-arg-- still broken?