Browse thread
speeding up matrix multiplication (newbie question)
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2009-02-20 (15:40) |
From: | Erick Matsen <matsen@b...> |
Subject: | speeding up matrix multiplication (newbie question) |
Hello Ocaml community--- I'm working on speeding up some code, and I wanted to check with someone before implementation. As you can see below, the code primarily spends its time multiplying relatively small matrices. Precision is of course important but not an incredibly crucial issue, as the most important thing is relative comparison between things which *should* be pretty different. Currently I'm just using native (double-precision) ocaml floats and the native ocaml arrays for a first pass on the problem. Now I'm thinking about moving to using float32 bigarrays, and I'm hoping that the code will double in speed. I'd like to know: is that realistic? Any other suggestions? Thank you, Erick -------- profiling information -------- % cumulative self self total time seconds seconds calls s/call s/call name 30.27 7.44 7.44 836419 0.00 0.00 camlMat__mul_vec_263 15.42 11.23 3.79 335237785 0.00 0.00 camlMat__get_447 14.65 14.83 3.60 334624076 0.00 0.00 camlNumber__mul_185 13.75 18.21 3.38 682814594 0.00 0.00 caml_apply2 11.31 20.99 2.78 334624076 0.00 0.00 camlNumber__add_183 6.02 22.47 1.48 335724401 0.00 0.00 caml_apply3 1.14 22.75 0.28 480860 0.00 0.00 camlDiagd__fun_304 1.06 23.01 0.26 159338 0.00 0.00 caml_oldify_local_roots 1.06 23.27 0.26 79634 0.00 0.00 sweep_slice 0.90 23.49 0.22 79828 0.00 0.00 mark_slice 0.65 23.65 0.16 10455018 0.00 0.00 camlQtree__code_begin 0.61 23.80 0.15 1517329 0.00 0.00 caml_oldify_one 0.57 23.94 0.14 17592082 0.00 0.00 camlMat__n_cols_458 0.57 24.08 0.14 13102569 0.00 0.00 caml_modify 0.57 24.22 0.14 522761 0.00 0.00 camlArray__mapi_142 ...