uncomplicate / neanderthal

Fast Clojure Matrix Library
http://neanderthal.uncomplicate.org
Eclipse Public License 1.0
1.06k stars 56 forks source link

Could not locate on classpath. #104

Closed zendevil closed 3 years ago

zendevil commented 3 years ago

I've installed mkl and linked it to /usr/local/lib. After including neanderthal in project.clj and adding the requisite macOS exclusions, and requiring the library to a file like so:

[uncomplicate.neanderthal
             [core :refer :all]
             [native :refer :all]]

I'm getting the following error:

Caused by java.lang.Exception
   No namespace: uncomplicate.neanderthal.internal.host.mkl

This is my project.clj

(defproject foo "0.1.0"

  :dependencies [[org.clojure/clojure "1.10.0"]
                 [nrepl "0.8.0"]
                 [uncomplicate/neanderthal "0.38.0"]
                 [org.bytedeco/mkl-platform-redist "2020.1-1.5.3"]
                 ]
  :repl-options {:init-ns foo.core}
  :plugins [[cider/cider-nrepl "0.25.3"]
            [lein-environ "1.2.0"]]
  :exclusions [[org.jcuda/jcuda-natives :classifier "apple-x86_64"]
               [org.jcuda/jcublas-natives :classifier "apple-x86_64"]])

How to fix this error?

blueberry commented 3 years ago

100

zendevil commented 3 years ago

The issue is that there's no namespace "No namespace: uncomplicate.neanderthal.internal.host.mkl". This is different from the issue in #100.

blueberry commented 3 years ago

Sorry. A typo. #102

zendevil commented 3 years ago

From #102, upgrading to [org.bytedeco/mkl-platform-redist "2020.1-1.5.4"] like so:

(defproject foo "0.1.0"

  :dependencies [[org.clojure/clojure "1.10.0"]
                 [nrepl "0.8.0"]
                 [uncomplicate/neanderthal "0.38.0"]
                 [org.bytedeco/mkl-platform-redist "2020.1-1.5.4"]
                 ]
  :repl-options {:init-ns foo.core}
  :plugins [[cider/cider-nrepl "0.25.3"]
            [lein-environ "1.2.0"]]
  :exclusions [[org.jcuda/jcuda-natives :classifier "apple-x86_64"]
               [org.jcuda/jcublas-natives :classifier "apple-x86_64"]])

gives the following error:

Could not find artifact org.bytedeco:mkl-platform-redist:jar:2020.1-1.5.4 in central (https://repo1.maven.org/maven2/)
Could not find artifact org.bytedeco:mkl-platform-redist:jar:2020.1-1.5.4 in clojars (https://repo.clojars.org/)
zendevil commented 3 years ago

In the last example, I had a typo 2020.3-1.5.4 not 2020.1-1.5.4. After fixing this issue, I'm still getting the following error:

Caused by java.lang.Exception
   No namespace: uncomplicate.neanderthal.internal.host.mkl

Therefore, after following, #102, I'm getting the same error.

Full stack trace:

         More information.Execution error (UnsatisfiedLinkError) at java.lang.ClassLoader$NativeLibrary/load (ClassLoader.java:-2).
/private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/libneanderthal-mkl-0.33.07947871945054341194.jnilib: dlopen(/private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/libneanderthal-mkl-0.33.07947871945054341194.jnilib, 1): Library not loaded: @rpath/libmkl_intel_lp64.dylib
  Referenced from: /private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/libneanderthal-mkl-0.33.07947871945054341194.jnilib
  Reason: image not found
ERROR: Unhandled REPL handler exception processing message {:nrepl.middleware.print/stream? 1, :nrepl.middleware.print/print cider.nrepl.pprint/pprint, :nrepl.middleware.print/quota 1048576, :nrepl.middleware.print/options {:right-margin 80}, :op stacktrace, :session 0f1c7690-c341-4daa-97ce-c8c9d2e37dbc, :id 19}
java.lang.NoClassDefFoundError: Could not initialize class uncomplicate.neanderthal.internal.host.MKL
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at clojure.lang.RT.classForName(RT.java:2211)
    at clojure.lang.RT.classForName(RT.java:2220)
    at clojure.lang.Compiler.maybeResolveIn(Compiler.java:7438)
    at clojure.core$ns_resolve.invokeStatic(core.clj:4370)
    at clojure.core$ns_resolve.invokeStatic(core.clj:4359)
    at clojure.core$ns_resolve.invoke(core.clj:4359)
    at cider.nrepl.inlined_deps.orchard.v0v6v0.orchard.java$resolve_class$fn__42350.invoke(java.clj:310)
    at cider.nrepl.inlined_deps.orchard.v0v6v0.orchard.java$resolve_class.invokeStatic(java.clj:310)
    at cider.nrepl.inlined_deps.orchard.v0v6v0.orchard.java$resolve_class.invoke(java.clj:304)
    at cider.nrepl.inlined_deps.orchard.v0v6v0.orchard.java$resolve_symbol.invokeStatic(java.clj:344)
    at cider.nrepl.inlined_deps.orchard.v0v6v0.orchard.java$resolve_symbol.invoke(java.clj:330)
    at cider.nrepl.middleware.stacktrace$analyze_fn.invokeStatic(stacktrace.clj:84)
    at cider.nrepl.middleware.stacktrace$analyze_fn.invoke(stacktrace.clj:63)
    at clojure.core$comp$fn__5807.invoke(core.clj:2569)
    at clojure.core$comp$fn__5807.invoke(core.clj:2569)
    at clojure.core$comp$fn__5807.invoke(core.clj:2569)
    at cider.nrepl.middleware.stacktrace$analyze_frame.invokeStatic(stacktrace.clj:180)
    at cider.nrepl.middleware.stacktrace$analyze_frame.invoke(stacktrace.clj:177)
    at clojure.core$map$fn__5866.invoke(core.clj:2755)
    at clojure.lang.LazySeq.sval(LazySeq.java:42)
    at clojure.lang.LazySeq.seq(LazySeq.java:51)
    at clojure.lang.RT.seq(RT.java:535)
    at clojure.core$seq__5402.invokeStatic(core.clj:137)
    at clojure.core$map$fn__5870.invoke(core.clj:2757)
    at clojure.lang.LazySeq.sval(LazySeq.java:42)
    at clojure.lang.LazySeq.seq(LazySeq.java:51)
    at clojure.lang.Cons.next(Cons.java:39)
    at clojure.lang.RT.next(RT.java:713)
    at clojure.core$next__5386.invokeStatic(core.clj:64)
    at clojure.core.protocols$fn__8159.invokeStatic(protocols.clj:169)
    at clojure.core.protocols$fn__8159.invoke(protocols.clj:124)
    at clojure.core.protocols$fn__8114$G__8109__8123.invoke(protocols.clj:19)
    at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
    at clojure.core.protocols$fn__8146.invokeStatic(protocols.clj:75)
    at clojure.core.protocols$fn__8146.invoke(protocols.clj:75)
    at clojure.core.protocols$fn__8088$G__8083__8101.invoke(protocols.clj:13)
    at clojure.core$reduce.invokeStatic(core.clj:6828)
    at clojure.core$into.invokeStatic(core.clj:6895)
    at clojure.core$mapv.invokeStatic(core.clj:6903)
    at clojure.core$mapv.invoke(core.clj:6903)
    at cider.nrepl.middleware.stacktrace$flag_duplicates.invokeStatic(stacktrace.clj:175)
    at cider.nrepl.middleware.stacktrace$flag_duplicates.invoke(stacktrace.clj:164)
    at cider.nrepl.middleware.stacktrace$analyze_stacktrace.invokeStatic(stacktrace.clj:186)
    at cider.nrepl.middleware.stacktrace$analyze_stacktrace.invoke(stacktrace.clj:182)
    at cider.nrepl.middleware.stacktrace$analyze_cause.invokeStatic(stacktrace.clj:290)
    at cider.nrepl.middleware.stacktrace$analyze_cause.invoke(stacktrace.clj:281)
    at cider.nrepl.middleware.stacktrace$analyze_causes$fn__43515.invoke(stacktrace.clj:315)
    at clojure.core$map$fn__5862$fn__5863.invoke(core.clj:2742)
    at clojure.core$take_while$fn__5913$fn__5914.invoke(core.clj:2901)
    at clojure.lang.Iterate.reduce(Iterate.java:81)
    at clojure.core$transduce.invokeStatic(core.clj:6883)
    at clojure.core$into.invokeStatic(core.clj:6899)
    at clojure.core$into.invoke(core.clj:6887)
    at cider.nrepl.middleware.stacktrace$analyze_causes.invokeStatic(stacktrace.clj:314)
    at cider.nrepl.middleware.stacktrace$analyze_causes.invoke(stacktrace.clj:306)
    at cider.nrepl.middleware.stacktrace$handle_stacktrace.invokeStatic(stacktrace.clj:323)
    at cider.nrepl.middleware.stacktrace$handle_stacktrace.invoke(stacktrace.clj:320)
    at clojure.lang.Var.invoke(Var.java:388)
    at cider.nrepl$wrap_stacktrace$fn__35396.invoke(nrepl.clj:410)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_debug$fn__35298.invoke(nrepl.clj:152)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_enlighten$fn__35306.invoke(nrepl.clj:178)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_format$fn__35314.invoke(nrepl.clj:182)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_info$fn__35322.invoke(nrepl.clj:196)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_out$fn__35356.invoke(nrepl.clj:312)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_resource$fn__35380.invoke(nrepl.clj:384)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_clojuredocs$fn__35454.invoke(nrepl.clj:504)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_undef$fn__35428.invoke(nrepl.clj:471)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at nrepl.middleware.load_file$wrap_load_file$fn__34642.invoke(load_file.clj:81)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_content_type$fn__35256.invoke(nrepl.clj:98)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_ns$fn__35348.invoke(nrepl.clj:278)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_inspect$fn__35332.invoke(nrepl.clj:215)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at nrepl.middleware.caught$wrap_caught$fn__34550.invoke(caught.clj:97)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_apropos$fn__35272.invoke(nrepl.clj:118)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_test$fn__35404.invoke(nrepl.clj:420)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at nrepl.middleware.print$wrap_print$fn__34517.invoke(print.clj:234)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_classpath$fn__35280.invoke(nrepl.clj:126)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_trace$fn__35412.invoke(nrepl.clj:442)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_tracker$fn__35420.invoke(nrepl.clj:460)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at nrepl.middleware.session$session$fn__34738.invoke(session.clj:272)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_profile$fn__35364.invoke(nrepl.clj:321)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at cider.nrepl$wrap_slurp$fn__35264.invoke(nrepl.clj:110)
    at nrepl.middleware$wrap_conj_descriptor$fn__34293.invoke(middleware.clj:16)
    at nrepl.server$handle_STAR_.invokeStatic(server.clj:18)
    at nrepl.server$handle_STAR_.invoke(server.clj:15)
    at nrepl.server$handle$fn__34775.invoke(server.clj:27)
    at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030)
    at clojure.lang.AFn.call(AFn.java:18)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Syntax error compiling at (uncomplicate/neanderthal/native.clj:1:1).
No namespace: uncomplicate.neanderthal.internal.host.mkl
blueberry commented 3 years ago

Did you disable SIP?