From be08ce8e71a4a975e2cb57da1e4ed7bd22d88ffd Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Tue, 12 Apr 2022 17:12:55 +0500 Subject: [PATCH 01/14] Create opam files for new packages: owl and plplot --- dependencies/packages/owl/owl.1.0.2/opam | 45 +++++++++++++++++++ .../packages/plplot/plplot.5.11.0/opam | 29 ++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 dependencies/packages/owl/owl.1.0.2/opam create mode 100644 dependencies/packages/plplot/plplot.5.11.0/opam diff --git a/dependencies/packages/owl/owl.1.0.2/opam b/dependencies/packages/owl/owl.1.0.2/opam new file mode 100644 index 0000000000..a21ae8dc10 --- /dev/null +++ b/dependencies/packages/owl/owl.1.0.2/opam @@ -0,0 +1,45 @@ +opam-version: "2.0" +maintainer: "Liang Wang " +authors: [ "Liang Wang" ] +license: "MIT" +homepage: "https://github.com/owlbarn/owl" +dev-repo: "git+https://github.com/owlbarn/owl.git" +bug-reports: "https://github.com/owlbarn/owl/issues" +doc: "https://owlbarn.github.io/owl/" +synopsis: "OCaml Scientific and Engineering Computing" +description: """ +Owl: OCaml Scientific and Engineering Computing + +Owl is an OCaml numerical library. +It supports N-dimensional arrays, both dense and sparse matrix operations, linear algebra, regressions, fast Fourier transforms, and many advanced mathematical and statistical functions (such as Markov chain Monte Carlo methods). +Recently, Owl has implemented algorithmic differentiation which essentially makes developing machine learning and neural network algorithms trivial. +""" + +build: [ + [ "dune" "subst" ] {dev} + [ "dune" "build" "-p" name "-j" jobs ] + [ "dune" "runtest" "-p" name "-j" jobs ] {with-test} +] + +depends: [ + "ocaml" {>= "4.10.0"} + "alcotest" {with-test} + "base" {build} + "base-bigarray" + "conf-openblas" {>= "0.2.1"} + "ctypes" {>= "0.16.0"} + "dune" {>= "2.0.0"} + "dune-configurator" + "eigen" {>= "0.3.0"} + "owl-base" {= version} + "stdio" {build} + "npy" +] +x-commit-hash: "dc77f1d3b7a4b81beba5bcfc4366317e044bce6d" +url { + src: "https://github.com/Sudha247/owl/tree/500" + checksum: [ + "sha256=38d210ce6c1c2f09631fd59951430e4f364b5ae036c71ed1b32ce559b2a29263" + "sha512=c468100556445384b9c6adad9c37b5a9b8c27db8be35f61979e65fafa88c60221b8bda0a9c06cfbbc8d4e216a1ed08a315dfefb45bb4f5f15aa82d4358f57567" + ] +} diff --git a/dependencies/packages/plplot/plplot.5.11.0/opam b/dependencies/packages/plplot/plplot.5.11.0/opam new file mode 100644 index 0000000000..9103d5bc79 --- /dev/null +++ b/dependencies/packages/plplot/plplot.5.11.0/opam @@ -0,0 +1,29 @@ +opam-version: "2.0" +maintainer: "Hezekiah M. Carty " +authors: [ "Hezekiah M. Carty " ] +license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception" +homepage: "https://github.com/hcarty/ocaml-plplot/" +dev-repo: "git+https://github.com/hcarty/ocaml-plplot.git" +bug-reports: "https://github.com/hcarty/ocaml-plplot/issues" +build: [ + ["ocaml" "setup.ml" "-configure" "--prefix" prefix] + ["ocaml" "setup.ml" "-build"] + ["ocaml" "setup.ml" "-configure" "--enable-tests"] {with-test} + ["ocaml" "setup.ml" "-build"] {with-test} + ["ocaml" "setup.ml" "-test"] {with-test} +] +install: ["ocaml" "setup.ml" "-install"] +depends: [ + "ocaml" {>= "4.02.0"} + "ocamlbuild" {build} + "ocamlfind" {build} + "conf-plplot" +] +synopsis: "Bindings for the PLplot library" +description: """ +PLplot is a library for creating scientific plots. +http://plplot.sf.net/""" +url { + src: "https://github.com/Sudha247/ocaml-plplot/tree/500" + checksum: "md5=b73c6801b42187695d9d3aae96696143" +} From 74b6e01aea9d7e1aaea25297967158c22e40c38c Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 21 Apr 2022 16:43:58 +0500 Subject: [PATCH 02/14] Update opam files with links to tar file --- dependencies/packages/owl/owl.1.0.2/opam | 2 +- dependencies/packages/plplot/plplot.5.11.0/opam | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies/packages/owl/owl.1.0.2/opam b/dependencies/packages/owl/owl.1.0.2/opam index a21ae8dc10..953ea86b85 100644 --- a/dependencies/packages/owl/owl.1.0.2/opam +++ b/dependencies/packages/owl/owl.1.0.2/opam @@ -37,7 +37,7 @@ depends: [ ] x-commit-hash: "dc77f1d3b7a4b81beba5bcfc4366317e044bce6d" url { - src: "https://github.com/Sudha247/owl/tree/500" + src: "https://github.com/moazzammoriani/owl/blob/main/archive/owl.tar.gz" checksum: [ "sha256=38d210ce6c1c2f09631fd59951430e4f364b5ae036c71ed1b32ce559b2a29263" "sha512=c468100556445384b9c6adad9c37b5a9b8c27db8be35f61979e65fafa88c60221b8bda0a9c06cfbbc8d4e216a1ed08a315dfefb45bb4f5f15aa82d4358f57567" diff --git a/dependencies/packages/plplot/plplot.5.11.0/opam b/dependencies/packages/plplot/plplot.5.11.0/opam index 9103d5bc79..cad442614b 100644 --- a/dependencies/packages/plplot/plplot.5.11.0/opam +++ b/dependencies/packages/plplot/plplot.5.11.0/opam @@ -24,6 +24,6 @@ description: """ PLplot is a library for creating scientific plots. http://plplot.sf.net/""" url { - src: "https://github.com/Sudha247/ocaml-plplot/tree/500" + src: "https://github.com/moazzammoriani/ocaml-plplot/blob/main/archive/ocaml-plplot.tar.gz" checksum: "md5=b73c6801b42187695d9d3aae96696143" } From d7d51d4a198dd48f05a054cc946f99699d4c1392 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 21 Apr 2022 18:26:46 +0500 Subject: [PATCH 03/14] Setup simple test for owl --- benchmarks/owl/dune | 8 ++++++++ benchmarks/owl/test_owl.ml | 7 +++++++ run_config.json | 10 ++++++++++ 3 files changed, 25 insertions(+) create mode 100644 benchmarks/owl/dune create mode 100644 benchmarks/owl/test_owl.ml diff --git a/benchmarks/owl/dune b/benchmarks/owl/dune new file mode 100644 index 0000000000..99864876c6 --- /dev/null +++ b/benchmarks/owl/dune @@ -0,0 +1,8 @@ + +(executable + (name test_owl) + (modes native byte) + (libraries owl)) + +(alias (name buildbench) (deps test_owl.exe)) +(alias (name bytebench) (deps test_owl.bc)) diff --git a/benchmarks/owl/test_owl.ml b/benchmarks/owl/test_owl.ml new file mode 100644 index 0000000000..e20e0cf749 --- /dev/null +++ b/benchmarks/owl/test_owl.ml @@ -0,0 +1,7 @@ +open Owl + +let size = try int_of_string Sys.argv.(1) with _ -> 2048 + +let () = + let a = Mat.sequential size size in + Mat.(a * a) diff --git a/run_config.json b/run_config.json index 4f4f1dd66c..2a04bcd160 100644 --- a/run_config.json +++ b/run_config.json @@ -18,6 +18,16 @@ } ], "benchmarks": [ + { + "executable": "benchmarks/owl/test_owl.exe", + "name": "test_owl", + "tags": [ + "run_in_ci" + ], + "runs": [ + { "params": " -n 16000" } + ] + }, { "executable": "benchmarks/irmin/layers.exe", "name": "irmin_pack_layered_1", From 4bb4d4a7039ef85f5dd9cda47193f828e323cfac Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 21 Apr 2022 18:32:24 +0500 Subject: [PATCH 04/14] Update runparams --- run_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_config.json b/run_config.json index 2a04bcd160..8500e9b272 100644 --- a/run_config.json +++ b/run_config.json @@ -25,7 +25,7 @@ "run_in_ci" ], "runs": [ - { "params": " -n 16000" } + { "params": "8192" } ] }, { From 78d640d876a2c9d14f1f52f0be5b23b9fd9f28d5 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Fri, 22 Apr 2022 22:36:55 +0500 Subject: [PATCH 05/14] Take step towards getting Owl dependencies without pinning to local repo Remove unnecessary stanza from dune file. Change url from local repo to whatever is on the opam file on the opam repository. Add list of dependencies that are actually being installed by Sandmark. This list is useful because similar list in the README.md is inaccurate. --- benchmarks/owl/dune | 8 +-- dependencies/packages/owl/owl.1.0.2/opam | 2 +- list_of_dependencies.txt | 64 ++++++++++++++++++++++++ run_all_serial.sh | 2 +- 4 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 list_of_dependencies.txt diff --git a/benchmarks/owl/dune b/benchmarks/owl/dune index 99864876c6..64a1b25d4c 100644 --- a/benchmarks/owl/dune +++ b/benchmarks/owl/dune @@ -1,8 +1,8 @@ - (executable (name test_owl) - (modes native byte) (libraries owl)) -(alias (name buildbench) (deps test_owl.exe)) -(alias (name bytebench) (deps test_owl.bc)) +(alias + (name buildbench) + (deps test_owl.exe)) + diff --git a/dependencies/packages/owl/owl.1.0.2/opam b/dependencies/packages/owl/owl.1.0.2/opam index 953ea86b85..8743df34dc 100644 --- a/dependencies/packages/owl/owl.1.0.2/opam +++ b/dependencies/packages/owl/owl.1.0.2/opam @@ -37,7 +37,7 @@ depends: [ ] x-commit-hash: "dc77f1d3b7a4b81beba5bcfc4366317e044bce6d" url { - src: "https://github.com/moazzammoriani/owl/blob/main/archive/owl.tar.gz" + src: "https://github.com/owlbarn/owl/releases/download/1.0.2/owl-1.0.2.tbz" checksum: [ "sha256=38d210ce6c1c2f09631fd59951430e4f364b5ae036c71ed1b32ce559b2a29263" "sha512=c468100556445384b9c6adad9c37b5a9b8c27db8be35f61979e65fafa88c60221b8bda0a9c06cfbbc8d4e216a1ed08a315dfefb45bb4f5f15aa82d4358f57567" diff --git a/list_of_dependencies.txt b/list_of_dependencies.txt new file mode 100644 index 0000000000..14172a3d84 --- /dev/null +++ b/list_of_dependencies.txt @@ -0,0 +1,64 @@ + angstrom 0.15.0 + astring 0.8.5 + base-bytes base + base64 3.4.0 + bigarray-compat 1.1.0 + bigstringaf 0.6.1 + biniou 1.2.1 + camlp-streams 5.0 + camlzip 1.11 + checkseum 0.2.1 + cmdliner 1.1.1 + conf-autoconf 0.1 + conf-findutils 1 + conf-gmp 1 + conf-libdw 1 + conf-m4 1 + conf-openblas 0.2.1 + conf-perl 1 + conf-pkg-config 1.2 + conf-which 1 + conf-zlib 1 + cppo 1.6.7 + cstruct 6.1.0 + cubicle 1.1.2 + decompress 1.1.0 + digestif 1.0.0 + easy-format 1.3.2 + either 1.0.0 + eqaf 0.8 + fmt 0.9.0 + fpath 0.7.3 + interval-map 0.2.0 + jsonm 1.0.1 + menhir 20200612 + menhirLib 20200612 + menhirSdk 20200612 + minilight 1.6 + mmap 1.2.0 + mtime 1.2.0 + nbcodec 20151119 + num 1.3 + ocaml-syntax-shims 1.0.0 + ocamlbuild 0.14.1 + ocamlfind 1.9.3 + ocamlgraph 2.0.0 + ocplib-simplex 0.4 + optint 0.0.4 + psmt2-frontend 0.2 + re 1.10.3 + react 1.2.2 + repr 0.2.1 + rresult 0.6.0 + rungen 0.0.1 + seq base + sexplib0 v0.15.0 + stdlib-shims 0.1.0 + stringext 1.6.0 + topkg 1.0.3 + uchar 0.0.2 + uri 4.1.0 + uuidm 0.9.8 + uutf 1.0.3 + yojson 1.7.0 + zarith 1.10 diff --git a/run_all_serial.sh b/run_all_serial.sh index add843933b..3dffa37be9 100644 --- a/run_all_serial.sh +++ b/run_all_serial.sh @@ -2,4 +2,4 @@ TAG='"macro_bench"' make run_config_filtered.json -USE_SYS_DUNE_HACK=1 RUN_CONFIG_JSON=run_config_filtered.json make ocaml-versions/5.0.0+stable.bench +OPT_WAIT=0 USE_SYS_DUNE_HACK=1 RUN_CONFIG_JSON=run_config_filtered.json make ocaml-versions/5.0.0+stable.bench From 7ef03f913071b54e80f11fbad4b5aac9c26eca21 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Sat, 23 Apr 2022 10:13:03 +0500 Subject: [PATCH 06/14] Add owl dependencies To dependencies/template/dev.opam: - conf-openblas - npy - update stdio To dependencies/packages: - eigen --- dependencies/packages/eigen/eigen.0.4.0/opam | 29 ++++++++++++++++++++ dependencies/template/dev.opam | 4 ++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 dependencies/packages/eigen/eigen.0.4.0/opam diff --git a/dependencies/packages/eigen/eigen.0.4.0/opam b/dependencies/packages/eigen/eigen.0.4.0/opam new file mode 100644 index 0000000000..33f7c000f9 --- /dev/null +++ b/dependencies/packages/eigen/eigen.0.4.0/opam @@ -0,0 +1,29 @@ +opam-version: "2.0" +maintainer: "Liang Wang " +authors: [ "Liang Wang" ] +license: "MIT" +homepage: "https://github.com/owlbarn/eigen" +dev-repo: "git+https://github.com/owlbarn/eigen.git" +bug-reports: "https://github.com/owlbarn/eigen/issues" +doc: "https://owlbarn.github.io/eigen/eigen" +build: [ + ["dune" "build" "-p" name "-j" jobs] +] +depends: [ + "ocaml" {>= "4.02"} + "ctypes" {>= "0.14.0"} + "dune" {>= "2.0.0"} +] +available: false +synopsis: "Owl's OCaml interface to Eigen3 C++ library" +description: +"Eigen is a thin OCaml interface to Eigen3 C++ template library used in Owl to provide basic numerical support for both sparse and dense matrix operations." +x-commit-hash: "6f7963e969df5b6b416b71f6a57c8a867c59edec" +url { + src: + "https://github.com/owlbarn/eigen/releases/download/0.4.0/eigen-0.4.0.tbz" + checksum: [ + "sha256=475711ea51055bc6cec90c4376c8e7eb978387e16849cd1f73f41ef76dc332b4" + "sha512=076cbf1e71b955fcaa54d2c6feb34cb34c20838706c724238e2ce00c6e4ece65b0ca9e5e613f35438baddfc13b5bbec474e4489d1aab835514efca6eee36a014" + ] +} diff --git a/dependencies/template/dev.opam b/dependencies/template/dev.opam index bcde0ffe95..d9fc66d1c9 100644 --- a/dependencies/template/dev.opam +++ b/dependencies/template/dev.opam @@ -19,6 +19,7 @@ depends: [ "conf-m4" {= "1"} "conf-perl" {= "1"} "conf-pkg-config" {= "1.2"} + "conf-openblas" {= "0.2.1"} "coq" "coq-core" "coq-stdlib" @@ -40,6 +41,7 @@ depends: [ "menhirSdk" {= "20200612"} "mtime" {= "1.2.0"} "num" {= "1.3"} + "npy" {= "0.0.9"} "ocaml-config" {= "1"} "ocamlgraph" {= "2.0.0"} "optint" {= "0.0.4"} @@ -51,7 +53,7 @@ depends: [ "psmt2-frontend" {= "0.2"} "repr" {= "0.2.1"} "rresult" {= "0.6.0"} - "stdio" {= "v0.14.0"} + "stdio" {= "v0.15.0"} "stdlib-shims" {= "0.1.0"} "topkg" {= "1.0.3"} "uri" {= "4.1.0"} From ef2fc01ba5f9d7057dde656c4d623fec075a3c7f Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Mon, 25 Apr 2022 09:07:13 +0500 Subject: [PATCH 07/14] Require owl dependencies to be installed Add opam files for owl dependencies and dependencies of its dependencies. Pin base to v0.15.0 in Makefile. --- Makefile | 5 ++ dependencies/packages/base/base.v0.15.0/opam | 36 +++++++++++ dependencies/packages/odoc/odoc.2.1.0/opam | 60 ++++++++++++++++++ list_of_dependencies.txt | 64 -------------------- 4 files changed, 101 insertions(+), 64 deletions(-) create mode 100644 dependencies/packages/base/base.v0.15.0/opam create mode 100644 dependencies/packages/odoc/odoc.2.1.0/opam delete mode 100644 list_of_dependencies.txt diff --git a/Makefile b/Makefile index b8c5ed0dc0..fabb92adea 100644 --- a/Makefile +++ b/Makefile @@ -135,7 +135,12 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json @{ case "$*" in \ *5.0*) opam pin add -n --yes --switch $* sexplib0.v0.15.0 https://github.com/shakthimaan/sexplib0.git#multicore; \ esac }; +<<<<<<< HEAD opam pin add -n --yes --switch $* base.v0.14.3 https://github.com/janestreet/base.git#v0.14.3 +======= + opam pin add -n --yes --switch $* base.v0.15.0 https://github.com/janestreet/base.git#v0.15.0 + opam pin add -n --yes --switch $* eventlog-tools https://github.com/ocaml-multicore/eventlog-tools.git#multicore +>>>>>>> be86e47 (Require owl dependencies to be installed) opam pin add -n --yes --switch $* coq-core https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* coq-stdlib https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz diff --git a/dependencies/packages/base/base.v0.15.0/opam b/dependencies/packages/base/base.v0.15.0/opam new file mode 100644 index 0000000000..339a624a73 --- /dev/null +++ b/dependencies/packages/base/base.v0.15.0/opam @@ -0,0 +1,36 @@ +opam-version: "2.0" +maintainer: "Jane Street developers" +authors: ["Jane Street Group, LLC"] +homepage: "https://github.com/janestreet/base" +bug-reports: "https://github.com/janestreet/base/issues" +dev-repo: "git+https://github.com/janestreet/base.git" +doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html" +license: "MIT" +build: [ + ["dune" "build" "-p" name "-j" jobs] +] +depends: [ + "ocaml" {>= "4.10.0"} + "sexplib0" {>= "v0.15" & < "v0.16"} + "dune" {>= "2.0.0"} + "dune-configurator" +] +synopsis: "Full standard library replacement for OCaml" +description: " +Full standard library replacement for OCaml + +Base is a complete and portable alternative to the OCaml standard +library. It provides all standard functionalities one would expect +from a language standard library. It uses consistent conventions +across all of its module. + +Base aims to be usable in any context. As a result system dependent +features such as I/O are not offered by Base. They are instead +provided by companion libraries such as stdio: + + https://github.com/janestreet/stdio +" +url { +src: "https://ocaml.janestreet.com/ocaml-core/v0.15/files/base-v0.15.0.tar.gz" +checksum: "sha256=8657ae4324a9948457112245c49d97d2da95f157f780f5d97f0b924312a6a53d" +} diff --git a/dependencies/packages/odoc/odoc.2.1.0/opam b/dependencies/packages/odoc/odoc.2.1.0/opam new file mode 100644 index 0000000000..79b31f7705 --- /dev/null +++ b/dependencies/packages/odoc/odoc.2.1.0/opam @@ -0,0 +1,60 @@ +opam-version: "2.0" +homepage: "http://github.com/ocaml/odoc" +doc: "https://ocaml.github.io/odoc/" +bug-reports: "https://github.com/ocaml/odoc/issues" +license: "ISC" + +authors: [ + "Thomas Refis " + "David Sheets " + "Leo White " + "Anton Bachin " + "Jon Ludlam " + "Jules Aguillon " + "Lubega Simon " +] +maintainer: "Jon Ludlam " +dev-repo: "git+https://github.com/ocaml/odoc.git" + +synopsis: "OCaml documentation generator" +description: """ +Odoc is a documentation generator for OCaml. It reads doc comments, +delimited with `(** ... *)`, and outputs HTML. +""" + +depends: [ + "odoc-parser" {>= "0.9.0"} + "astring" + "cmdliner" {>= "1.0.0"} + "cppo" {build & >= "1.1.0"} + "dune" {>= "2.9.1"} + "fpath" + "ocaml" {>= "4.02.0"} + "result" + "tyxml" {>= "4.3.0"} + "fmt" + + "ocamlfind" {with-test} + "yojson" {with-test} + ("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test}) + "conf-jq" {with-test} + + "ppx_expect" {with-test} + "bos" {with-test} + + "bisect_ppx" {dev & > "2.5.0"} + ("ocaml" {< "4.03.0" & dev} | "mdx" {dev}) +] + +build: [ + ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs] +] +url { + src: "https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz" + checksum: [ + "sha256=65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967" + "sha512=cf4d7e884b94a9b9c4bcb62d4423d7289d7bbbf2642c5eacf9577b76eb835cf6ecc79d2384d36d174d2e9d8f758b5082c0c4bf8f66b5c6db4e9805dc3fc9ee1a" + ] +} +x-commit-hash: "d654ee2a4ff3e1465dcf92b882c26de71f7a9986" \ No newline at end of file diff --git a/list_of_dependencies.txt b/list_of_dependencies.txt deleted file mode 100644 index 14172a3d84..0000000000 --- a/list_of_dependencies.txt +++ /dev/null @@ -1,64 +0,0 @@ - angstrom 0.15.0 - astring 0.8.5 - base-bytes base - base64 3.4.0 - bigarray-compat 1.1.0 - bigstringaf 0.6.1 - biniou 1.2.1 - camlp-streams 5.0 - camlzip 1.11 - checkseum 0.2.1 - cmdliner 1.1.1 - conf-autoconf 0.1 - conf-findutils 1 - conf-gmp 1 - conf-libdw 1 - conf-m4 1 - conf-openblas 0.2.1 - conf-perl 1 - conf-pkg-config 1.2 - conf-which 1 - conf-zlib 1 - cppo 1.6.7 - cstruct 6.1.0 - cubicle 1.1.2 - decompress 1.1.0 - digestif 1.0.0 - easy-format 1.3.2 - either 1.0.0 - eqaf 0.8 - fmt 0.9.0 - fpath 0.7.3 - interval-map 0.2.0 - jsonm 1.0.1 - menhir 20200612 - menhirLib 20200612 - menhirSdk 20200612 - minilight 1.6 - mmap 1.2.0 - mtime 1.2.0 - nbcodec 20151119 - num 1.3 - ocaml-syntax-shims 1.0.0 - ocamlbuild 0.14.1 - ocamlfind 1.9.3 - ocamlgraph 2.0.0 - ocplib-simplex 0.4 - optint 0.0.4 - psmt2-frontend 0.2 - re 1.10.3 - react 1.2.2 - repr 0.2.1 - rresult 0.6.0 - rungen 0.0.1 - seq base - sexplib0 v0.15.0 - stdlib-shims 0.1.0 - stringext 1.6.0 - topkg 1.0.3 - uchar 0.0.2 - uri 4.1.0 - uuidm 0.9.8 - uutf 1.0.3 - yojson 1.7.0 - zarith 1.10 From 58b238c0bade165948842da7ac597d20054613f2 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Tue, 26 Apr 2022 16:13:50 +0500 Subject: [PATCH 08/14] Pin base to patched version --- Makefile | 6 +----- run_all_serial.sh | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index fabb92adea..306d817eac 100644 --- a/Makefile +++ b/Makefile @@ -135,12 +135,8 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json @{ case "$*" in \ *5.0*) opam pin add -n --yes --switch $* sexplib0.v0.15.0 https://github.com/shakthimaan/sexplib0.git#multicore; \ esac }; -<<<<<<< HEAD - opam pin add -n --yes --switch $* base.v0.14.3 https://github.com/janestreet/base.git#v0.14.3 -======= - opam pin add -n --yes --switch $* base.v0.15.0 https://github.com/janestreet/base.git#v0.15.0 + opam pin add -n --yes --switch $* base.0.15.0 git+https://github.com/patricoferris/base.git#500+random opam pin add -n --yes --switch $* eventlog-tools https://github.com/ocaml-multicore/eventlog-tools.git#multicore ->>>>>>> be86e47 (Require owl dependencies to be installed) opam pin add -n --yes --switch $* coq-core https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* coq-stdlib https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz diff --git a/run_all_serial.sh b/run_all_serial.sh index 3dffa37be9..add843933b 100644 --- a/run_all_serial.sh +++ b/run_all_serial.sh @@ -2,4 +2,4 @@ TAG='"macro_bench"' make run_config_filtered.json -OPT_WAIT=0 USE_SYS_DUNE_HACK=1 RUN_CONFIG_JSON=run_config_filtered.json make ocaml-versions/5.0.0+stable.bench +USE_SYS_DUNE_HACK=1 RUN_CONFIG_JSON=run_config_filtered.json make ocaml-versions/5.0.0+stable.bench From 787fd726094c391507700a61989fd0463c095078 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Mon, 6 Jun 2022 19:50:30 +0500 Subject: [PATCH 09/14] Arrive at a point where alt-ergo-lib is the only failing dep --- Makefile | 11 ++++--- .../packages/camlzip/camlzip.1.11/opam | 29 +++++++++++++++++++ dependencies/packages/npy/npy.0.0.9/opam | 24 +++++++++++++++ .../packages/owl-base/owl-base.1.0.2/opam | 29 +++++++++++++++++++ dependencies/template/dev.opam | 1 - run_config.json | 2 +- 6 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 dependencies/packages/camlzip/camlzip.1.11/opam create mode 100644 dependencies/packages/npy/npy.0.0.9/opam create mode 100644 dependencies/packages/owl-base/owl-base.1.0.2/opam diff --git a/Makefile b/Makefile index 306d817eac..b8589d0c8e 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ START_TIME ?= WRAPPER = $(patsubst run_%,%,$(RUN_BENCH_TARGET)) -PACKAGES = sexplib0 re yojson react uuidm cpdf nbcodec minilight cubicle orun rungen +PACKAGES = owl npy sexplib0 re yojson react uuidm cpdf nbcodec minilight cubicle orun rungen ifeq ($(findstring multibench,$(BUILD_BENCH_TARGET)),multibench) PACKAGES += lockfree kcas domainslib ctypes @@ -135,11 +135,14 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json @{ case "$*" in \ *5.0*) opam pin add -n --yes --switch $* sexplib0.v0.15.0 https://github.com/shakthimaan/sexplib0.git#multicore; \ esac }; - opam pin add -n --yes --switch $* base.0.15.0 git+https://github.com/patricoferris/base.git#500+random - opam pin add -n --yes --switch $* eventlog-tools https://github.com/ocaml-multicore/eventlog-tools.git#multicore + opam pin add -n --yes --switch $* base https://github.com/kit-ty-kate/base/archive/500-015.tar.gz opam pin add -n --yes --switch $* coq-core https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* coq-stdlib https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz - opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz + opam pin add -n --yes --switch $* npy https://github.com/Sudha247/npy-ocaml.git#500 + opam pin add -n --yes --switch $* eventlog-tools https://github.com/ocaml-multicore/eventlog-tools.git#multicore + opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz + opam pin add -n --yes --switch $* ocplib-endian https://github.com/kit-ty-kate/ocplib-endian/archive/500.tar.gz + opam pin add -n --yes --switch $* owl https://github.com/Sudha247/owl.git#500 override_packages/%: setup_sys_dune/% $(eval CONFIG_SWITCH_NAME = $*) diff --git a/dependencies/packages/camlzip/camlzip.1.11/opam b/dependencies/packages/camlzip/camlzip.1.11/opam new file mode 100644 index 0000000000..6dbdc844fa --- /dev/null +++ b/dependencies/packages/camlzip/camlzip.1.11/opam @@ -0,0 +1,29 @@ + + +opam-version: "2.0" +synopsis: + "Accessing compressed files in ZIP, GZIP and JAR format" +description: + "The Camlzip library provides easy access to compressed files in ZIP and GZIP format, as well as to Java JAR files. It provides functions for reading from and writing to compressed files in these formats." +maintainer: ["Xavier Leroy "] +authors: ["Xavier Leroy"] +homepage: "https://github.com/xavierleroy/camlzip" +bug-reports: "https://github.com/xavierleroy/camlzip/issues" +dev-repo: "git+https://github.com/xavierleroy/camlzip.git" +license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception" +build: [ + [make "all"] +] +install: [make "install"] +depends: [ + "ocaml" {>= "4.07.0"} + "ocamlfind" {build} + "conf-zlib" +] +url { + src: "https://github.com/xavierleroy/camlzip/archive/rel111.tar.gz" + checksum: [ + "sha256=ffbbc5de3e1c13dc0e59272376d232d2ede91b327551063d47fddb74f1d5ed37" + "sha512=4d69ef900437e66e00cd345497ec70f407f28cd8344ee5f2fad685d3bfe356924597d1854b752f2841b4007f96d6e0307cfae7e13cfb6f74951ae3eba5198a06" + ] +} \ No newline at end of file diff --git a/dependencies/packages/npy/npy.0.0.9/opam b/dependencies/packages/npy/npy.0.0.9/opam new file mode 100644 index 0000000000..9ed401508e --- /dev/null +++ b/dependencies/packages/npy/npy.0.0.9/opam @@ -0,0 +1,24 @@ + +opam-version: "2.0" +bug-reports: "https://github.com/LaurentMazare/npy-ocaml/issues" +homepage: "https://github.com/LaurentMazare/npy-ocaml" +dev-repo: "git+https://github.com/LaurentMazare/npy-ocaml.git" +maintainer: "Laurent Mazare " +authors: [ "Laurent Mazare" ] + +build: [["dune" "build" "-p" name "-j" jobs]] +depends: [ + "camlzip" + "dune" {>= "1.4"} + "ocaml" {>= "4.06"} +] +synopsis: "Numpy npy file format reading/writing." +description: + "Provide simple read/write function using the numpy npy/npz file formats. These can be used to save a bigarray to disk and then load it from python using numpy." +url { + src: "https://github.com/LaurentMazare/npy-ocaml/archive/0.0.9.tar.gz" + checksum: [ + "md5=8a06935cb77ad546cd40872fcf7fd1e1" + "sha512=d682a748fd94d077e763bab259946690aff3b4da5ff374820e79802a49dc6f75ab0d0af3a739a52538453508687c3675a29860ff36c12f2b33a0de59c8ab5b2a" + ] +} \ No newline at end of file diff --git a/dependencies/packages/owl-base/owl-base.1.0.2/opam b/dependencies/packages/owl-base/owl-base.1.0.2/opam new file mode 100644 index 0000000000..ac1c8bd605 --- /dev/null +++ b/dependencies/packages/owl-base/owl-base.1.0.2/opam @@ -0,0 +1,29 @@ + +opam-version: "2.0" +maintainer: "Liang Wang " +authors: [ "Liang Wang" ] +license: "MIT" +homepage: "https://github.com/owlbarn/owl" +dev-repo: "git+https://github.com/owlbarn/owl.git" +bug-reports: "https://github.com/owlbarn/owl/issues" +doc: "https://owlbarn.github.io/" +synopsis: "OCaml Scientific and Engineering Computing - Base" +description: "Owl is an OCaml scientific library." +build: [ + [ "dune" "subst" ] {dev} + [ "dune" "build" "-p" name "-j" jobs ] +] + +depends: [ + "ocaml" {>= "4.10.0"} + "base-bigarray" + "dune" {>= "2.0.0"} +] +x-commit-hash: "dc77f1d3b7a4b81beba5bcfc4366317e044bce6d" +url { + src: "https://github.com/owlbarn/owl/releases/download/1.0.2/owl-1.0.2.tbz" + checksum: [ + "sha256=38d210ce6c1c2f09631fd59951430e4f364b5ae036c71ed1b32ce559b2a29263" + "sha512=c468100556445384b9c6adad9c37b5a9b8c27db8be35f61979e65fafa88c60221b8bda0a9c06cfbbc8d4e216a1ed08a315dfefb45bb4f5f15aa82d4358f57567" + ] +} \ No newline at end of file diff --git a/dependencies/template/dev.opam b/dependencies/template/dev.opam index d9fc66d1c9..8273d0ffba 100644 --- a/dependencies/template/dev.opam +++ b/dependencies/template/dev.opam @@ -41,7 +41,6 @@ depends: [ "menhirSdk" {= "20200612"} "mtime" {= "1.2.0"} "num" {= "1.3"} - "npy" {= "0.0.9"} "ocaml-config" {= "1"} "ocamlgraph" {= "2.0.0"} "optint" {= "0.0.4"} diff --git a/run_config.json b/run_config.json index 8500e9b272..c619e9baa1 100644 --- a/run_config.json +++ b/run_config.json @@ -22,7 +22,7 @@ "executable": "benchmarks/owl/test_owl.exe", "name": "test_owl", "tags": [ - "run_in_ci" + "buildbench" ], "runs": [ { "params": "8192" } From d8bff85ae5a34a0221ea8f380f6773d0a7a6f563 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Tue, 7 Jun 2022 18:53:11 +0500 Subject: [PATCH 10/14] Fix owl benchmark type error --- Makefile | 1 + benchmarks/owl/test_owl.ml | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index b8589d0c8e..4ec0de8300 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,7 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json @{ case "$*" in \ *5.0*) opam pin add -n --yes --switch $* sexplib0.v0.15.0 https://github.com/shakthimaan/sexplib0.git#multicore; \ esac }; + opam pin add -n --yes --switch $* dune https://github.com/dra27/dune/archive/2.9.3-5.0.0.tar.gz opam pin add -n --yes --switch $* base https://github.com/kit-ty-kate/base/archive/500-015.tar.gz opam pin add -n --yes --switch $* coq-core https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz opam pin add -n --yes --switch $* coq-stdlib https://github.com/ejgallego/coq/archive/refs/tags/multicore-2021-09-29.tar.gz diff --git a/benchmarks/owl/test_owl.ml b/benchmarks/owl/test_owl.ml index e20e0cf749..c753a0f80d 100644 --- a/benchmarks/owl/test_owl.ml +++ b/benchmarks/owl/test_owl.ml @@ -1,7 +1,7 @@ open Owl -let size = try int_of_string Sys.argv.(1) with _ -> 2048 +let size = 2048 -let () = +let _ = let a = Mat.sequential size size in - Mat.(a * a) + Mat.(a * a);; From fcf0dbe7386dbfcf51b8e84776763c4b95c9d4cd Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 8 Jun 2022 12:18:43 +0500 Subject: [PATCH 11/14] Fix benchmark bug and clear out redundant code and files --- Makefile | 3 +- benchmarks/owl/dune | 2 +- dependencies/packages/base/base.v0.15.0/opam | 36 ------------ dependencies/packages/eigen/eigen.0.4.0/opam | 29 ---------- dependencies/packages/odoc/odoc.2.1.0/opam | 60 -------------------- run_config.json | 3 +- 6 files changed, 4 insertions(+), 129 deletions(-) delete mode 100644 dependencies/packages/base/base.v0.15.0/opam delete mode 100644 dependencies/packages/eigen/eigen.0.4.0/opam delete mode 100644 dependencies/packages/odoc/odoc.2.1.0/opam diff --git a/Makefile b/Makefile index 4ec0de8300..8701d22d49 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ START_TIME ?= WRAPPER = $(patsubst run_%,%,$(RUN_BENCH_TARGET)) -PACKAGES = owl npy sexplib0 re yojson react uuidm cpdf nbcodec minilight cubicle orun rungen +PACKAGES = owl sexplib0 re yojson react uuidm cpdf nbcodec minilight cubicle orun rungen ifeq ($(findstring multibench,$(BUILD_BENCH_TARGET)),multibench) PACKAGES += lockfree kcas domainslib ctypes @@ -144,6 +144,7 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz opam pin add -n --yes --switch $* ocplib-endian https://github.com/kit-ty-kate/ocplib-endian/archive/500.tar.gz opam pin add -n --yes --switch $* owl https://github.com/Sudha247/owl.git#500 + opam pin add -n --yes --switch $* owl-base https://github.com/Sudha247/owl.git#500 override_packages/%: setup_sys_dune/% $(eval CONFIG_SWITCH_NAME = $*) diff --git a/benchmarks/owl/dune b/benchmarks/owl/dune index 64a1b25d4c..25b4668298 100644 --- a/benchmarks/owl/dune +++ b/benchmarks/owl/dune @@ -1,6 +1,6 @@ (executable (name test_owl) - (libraries owl)) + (libraries owl owl-base)) (alias (name buildbench) diff --git a/dependencies/packages/base/base.v0.15.0/opam b/dependencies/packages/base/base.v0.15.0/opam deleted file mode 100644 index 339a624a73..0000000000 --- a/dependencies/packages/base/base.v0.15.0/opam +++ /dev/null @@ -1,36 +0,0 @@ -opam-version: "2.0" -maintainer: "Jane Street developers" -authors: ["Jane Street Group, LLC"] -homepage: "https://github.com/janestreet/base" -bug-reports: "https://github.com/janestreet/base/issues" -dev-repo: "git+https://github.com/janestreet/base.git" -doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/base/index.html" -license: "MIT" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.10.0"} - "sexplib0" {>= "v0.15" & < "v0.16"} - "dune" {>= "2.0.0"} - "dune-configurator" -] -synopsis: "Full standard library replacement for OCaml" -description: " -Full standard library replacement for OCaml - -Base is a complete and portable alternative to the OCaml standard -library. It provides all standard functionalities one would expect -from a language standard library. It uses consistent conventions -across all of its module. - -Base aims to be usable in any context. As a result system dependent -features such as I/O are not offered by Base. They are instead -provided by companion libraries such as stdio: - - https://github.com/janestreet/stdio -" -url { -src: "https://ocaml.janestreet.com/ocaml-core/v0.15/files/base-v0.15.0.tar.gz" -checksum: "sha256=8657ae4324a9948457112245c49d97d2da95f157f780f5d97f0b924312a6a53d" -} diff --git a/dependencies/packages/eigen/eigen.0.4.0/opam b/dependencies/packages/eigen/eigen.0.4.0/opam deleted file mode 100644 index 33f7c000f9..0000000000 --- a/dependencies/packages/eigen/eigen.0.4.0/opam +++ /dev/null @@ -1,29 +0,0 @@ -opam-version: "2.0" -maintainer: "Liang Wang " -authors: [ "Liang Wang" ] -license: "MIT" -homepage: "https://github.com/owlbarn/eigen" -dev-repo: "git+https://github.com/owlbarn/eigen.git" -bug-reports: "https://github.com/owlbarn/eigen/issues" -doc: "https://owlbarn.github.io/eigen/eigen" -build: [ - ["dune" "build" "-p" name "-j" jobs] -] -depends: [ - "ocaml" {>= "4.02"} - "ctypes" {>= "0.14.0"} - "dune" {>= "2.0.0"} -] -available: false -synopsis: "Owl's OCaml interface to Eigen3 C++ library" -description: -"Eigen is a thin OCaml interface to Eigen3 C++ template library used in Owl to provide basic numerical support for both sparse and dense matrix operations." -x-commit-hash: "6f7963e969df5b6b416b71f6a57c8a867c59edec" -url { - src: - "https://github.com/owlbarn/eigen/releases/download/0.4.0/eigen-0.4.0.tbz" - checksum: [ - "sha256=475711ea51055bc6cec90c4376c8e7eb978387e16849cd1f73f41ef76dc332b4" - "sha512=076cbf1e71b955fcaa54d2c6feb34cb34c20838706c724238e2ce00c6e4ece65b0ca9e5e613f35438baddfc13b5bbec474e4489d1aab835514efca6eee36a014" - ] -} diff --git a/dependencies/packages/odoc/odoc.2.1.0/opam b/dependencies/packages/odoc/odoc.2.1.0/opam deleted file mode 100644 index 79b31f7705..0000000000 --- a/dependencies/packages/odoc/odoc.2.1.0/opam +++ /dev/null @@ -1,60 +0,0 @@ -opam-version: "2.0" -homepage: "http://github.com/ocaml/odoc" -doc: "https://ocaml.github.io/odoc/" -bug-reports: "https://github.com/ocaml/odoc/issues" -license: "ISC" - -authors: [ - "Thomas Refis " - "David Sheets " - "Leo White " - "Anton Bachin " - "Jon Ludlam " - "Jules Aguillon " - "Lubega Simon " -] -maintainer: "Jon Ludlam " -dev-repo: "git+https://github.com/ocaml/odoc.git" - -synopsis: "OCaml documentation generator" -description: """ -Odoc is a documentation generator for OCaml. It reads doc comments, -delimited with `(** ... *)`, and outputs HTML. -""" - -depends: [ - "odoc-parser" {>= "0.9.0"} - "astring" - "cmdliner" {>= "1.0.0"} - "cppo" {build & >= "1.1.0"} - "dune" {>= "2.9.1"} - "fpath" - "ocaml" {>= "4.02.0"} - "result" - "tyxml" {>= "4.3.0"} - "fmt" - - "ocamlfind" {with-test} - "yojson" {with-test} - ("ocaml" {< "4.04.1" & with-test} | "sexplib0" {with-test}) - "conf-jq" {with-test} - - "ppx_expect" {with-test} - "bos" {with-test} - - "bisect_ppx" {dev & > "2.5.0"} - ("ocaml" {< "4.03.0" & dev} | "mdx" {dev}) -] - -build: [ - ["dune" "subst"] {dev} - ["dune" "build" "-p" name "-j" jobs] -] -url { - src: "https://github.com/ocaml/odoc/releases/download/2.1.0/odoc-2.1.0.tbz" - checksum: [ - "sha256=65a2523a50ee368164f1f24f75866a6a36cdb0d00039c3006ec824351d4e4967" - "sha512=cf4d7e884b94a9b9c4bcb62d4423d7289d7bbbf2642c5eacf9577b76eb835cf6ecc79d2384d36d174d2e9d8f758b5082c0c4bf8f66b5c6db4e9805dc3fc9ee1a" - ] -} -x-commit-hash: "d654ee2a4ff3e1465dcf92b882c26de71f7a9986" \ No newline at end of file diff --git a/run_config.json b/run_config.json index c619e9baa1..55df167157 100644 --- a/run_config.json +++ b/run_config.json @@ -1,5 +1,4 @@ -{ - "wrappers": [ +{ "wrappers": [ { "name": "orun", "command": "orun -o %{output} -- taskset --cpu-list 5 %{command}" From 59bf19b1ffa86349de9cac27b6794a1d01452bd7 Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Wed, 8 Jun 2022 19:01:20 +0500 Subject: [PATCH 12/14] Change owl pin to moazzammoriani/owl.git#500+arm64 --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8701d22d49..41c1644c52 100644 --- a/Makefile +++ b/Makefile @@ -143,8 +143,9 @@ _opam/%: _opam/opam-init/init.sh ocaml-versions/%.json opam pin add -n --yes --switch $* eventlog-tools https://github.com/ocaml-multicore/eventlog-tools.git#multicore opam pin add -n --yes --switch $* ocamlfind https://github.com/dra27/ocamlfind/archive/lib-layout.tar.gz opam pin add -n --yes --switch $* ocplib-endian https://github.com/kit-ty-kate/ocplib-endian/archive/500.tar.gz - opam pin add -n --yes --switch $* owl https://github.com/Sudha247/owl.git#500 - opam pin add -n --yes --switch $* owl-base https://github.com/Sudha247/owl.git#500 + opam pin add -n --yes --switch $* owl https://github.com/moazzammoriani/owl.git#500+arm64 + opam pin add -n --yes --switch $* owl-base https://github.com/moazzammoriani/owl.git#500+arm64 + override_packages/%: setup_sys_dune/% $(eval CONFIG_SWITCH_NAME = $*) From 8370cea1597fe2f2280c67c02fc3b2f2b8dc994a Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 9 Jun 2022 11:08:28 +0500 Subject: [PATCH 13/14] Include solution to the Ubuntu-OpenBLAS issue in the CI --- .github/workflows/main.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 929974ccae..50269c55e1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,6 +36,16 @@ jobs: run: | sudo apt-get update && sudo apt-get -y install wget pkg-config libgmp-dev m4 libdw-dev jq python3-pip autoconf jo pip3 install intervaltree + # Work-around for Ubuntu-OpenBLAS issue for Owl by building OpenBLAS from source + sudo apt-get -y install unzip aspcud libshp-dev libplplot-dev gfortran pkg-config git + git clone https://github.com/xianyi/OpenBLAS OpenBLAS + cd OpenBLAS/ + make + cd .. + ldconfig /opt/OpenBLAS/lib/ + OWL_DISABLE_LAPACKE_LINKING_FLAG=1 + OWL_COMPILE_CFLAGS="-I/opt/OpenBLAS/include -I/home/opam/OpenBLAS/lapack-netlib/LAPACKE/include/ -L/opt/OpenBLAS/lib" + CFLAGS=${OWL_COMPILE_CFLAGS} eval $(opam env) opam update opam pin add -n --yes dune https://github.com/dra27/dune/archive/2.9.3-5.0.0.tar.gz From 8eeebdfdda4cdb0c4183b7f3f762ca5a91d9afae Mon Sep 17 00:00:00 2001 From: Moazzam Moriani Date: Thu, 9 Jun 2022 15:36:17 +0500 Subject: [PATCH 14/14] Run the ldconfig command in the CI prefixed with 'sudo' --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50269c55e1..0b38100873 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,7 +42,7 @@ jobs: cd OpenBLAS/ make cd .. - ldconfig /opt/OpenBLAS/lib/ + sudo ldconfig /opt/OpenBLAS/lib/ OWL_DISABLE_LAPACKE_LINKING_FLAG=1 OWL_COMPILE_CFLAGS="-I/opt/OpenBLAS/include -I/home/opam/OpenBLAS/lapack-netlib/LAPACKE/include/ -L/opt/OpenBLAS/lib" CFLAGS=${OWL_COMPILE_CFLAGS}