Skip to content

Instantly share code, notes, and snippets.

@ryanrhymes
Last active December 18, 2016 01:06
Show Gist options
  • Save ryanrhymes/26fbb3c6bd1aeded9c69e0834df88b22 to your computer and use it in GitHub Desktop.
Save ryanrhymes/26fbb3c6bd1aeded9c69e0834df88b22 to your computer and use it in GitHub Desktop.
open Owl
open Bigarray
let m, n, o = 10, 1000, 10000
let shape = [|m;n;o|]
let test_op s c op =
let ttime = ref 0. in
for i = 1 to c do
let t0 = Unix.gettimeofday () in
let _ = op () in
let t1 = Unix.gettimeofday () in
ttime := !ttime +. (t1 -. t0)
done;
let _ = ttime := !ttime /. (float_of_int c) in
Printf.printf "| %s :\t %.4fs \n" s !ttime;
flush stdout
let test_00 () =
let f () = Dense.Ndarray.empty Float64 shape
in
test_op "empty" 1 f
let test_01 () =
let f () = Dense.Ndarray.zeros Float64 shape
in
test_op "zeros" 1 f
let test_02 () =
let f () = Dense.Ndarray.ones Float64 shape
in
test_op "ones" 1 f
let test_03 () =
let f () = Dense.Ndarray.create Float64 shape 3.5
in
test_op "create" 1 f
let test_04 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let y = Dense.Ndarray.create Float64 shape 5.5 in
let f () = Dense.Ndarray.add x y
in
test_op "add x y" 1 f
let test_05 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let y = Dense.Ndarray.create Float64 shape 5.5 in
let f () = Dense.Ndarray.mul x y
in
test_op "mul x y" 1 f
let test_06 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let f () = Dense.Ndarray.add_scalar x 2.
in
test_op "add_scalar x 2." 1 f
let test_07 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let f () = Dense.Ndarray.abs x
in
test_op "abs x" 1 f
let test_08 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let f () = Dense.Ndarray.map (fun a -> (sin a) +. 1.) x
in
test_op "(sin a) + 1" 1 f
let test_09 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let f () = Dense.Ndarray.iter (fun a -> ignore(a > 0.); ()) x
in
test_op "iter x" 1 f
let test_10 () =
let x = Dense.Ndarray.create Float64 shape 3.5 in
let y = Dense.Ndarray.create Float64 shape 5.5 in
let f () = Dense.Ndarray.is_smaller x y
in
test_op "is_smaller x y" 1 f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment