Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cortex does not work with newer versions of cudnn #230

Open
djzurawski opened this issue Sep 20, 2017 · 8 comments
Open

Cortex does not work with newer versions of cudnn #230

djzurawski opened this issue Sep 20, 2017 · 8 comments

Comments

@djzurawski
Copy link

cudnn v6 and v7 have been released for cuda 8. Cortex tests fails when using v6 or v7 because it cannot find libcudnn.so.5. The docs should at least be updated to say cudnn v5 is required for cuda 8.

ERROR in (indexed-copy-f) (Compiler.java:6748) Uncaught exception, not in assertion. expected: nil actual: clojure.lang.Compiler$CompilerException: java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path, compiling:(cortex/compute/cuda/driver.clj:234:5) at clojure.lang.Compiler.analyze (Compiler.java:6748) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$HostExpr$Parser.parse (Compiler.java:1016) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.analyzeSeq (Compiler.java:6941) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2800) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$FnMethod.parse (Compiler.java:5428) clojure.lang.Compiler$FnExpr.parse (Compiler.java:3993) clojure.lang.Compiler.analyzeSeq (Compiler.java:6944) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.access$300 (Compiler.java:38) clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:595) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.eval (Compiler.java:7009) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.RT.loadResourceScript (RT.java:374) clojure.lang.RT.loadResourceScript (RT.java:365) clojure.lang.RT.load (RT.java:455) clojure.lang.RT.load (RT.java:421) clojure.core$load$fn__6368.invoke (core.clj:6008) clojure.core$load.invokeStatic (core.clj:6007) clojure.core$load.doInvoke (core.clj:5991) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$load_one.invokeStatic (core.clj:5812) clojure.core$load_one.invoke (core.clj:5807) clojure.core$load_lib$fn__6313.invoke (core.clj:5852) clojure.core$load_lib.invokeStatic (core.clj:5851) clojure.core$load_lib.doInvoke (core.clj:5832) clojure.lang.RestFn.applyTo (RestFn.java:142) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$load_libs.invokeStatic (core.clj:5889) clojure.core$load_libs.doInvoke (core.clj:5873) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$require.invokeStatic (core.clj:5911) clojure.core$require.doInvoke (core.clj:5911) clojure.lang.RestFn.invoke (RestFn.java:408) cortex.compute.cuda_driver_test$create_driver.invokeStatic (cuda_driver_test.clj:12) cortex.compute.cuda_driver_test$create_driver.invoke (cuda_driver_test.clj:10) cortex.compute.cuda_driver_test$fn__48025$fn__48026.invoke (cuda_driver_test.clj:19) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.cuda_driver_test$fn__48025.invokeStatic (cuda_driver_test.clj:18) cortex.compute.cuda_driver_test/fn (cuda_driver_test.clj:18) clojure.test$test_var$fn__9009.invoke (test.clj:716) clojure.test$test_var.invokeStatic (test.clj:716) clojure.test$test_var.invoke (test.clj:707) clojure.test$test_vars$fn__9035$fn__9040.invoke (test.clj:734) cortex.compute.verify.utils$test_wrapper$fn__33589$fn__33590.invoke (utils.clj:13) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper$fn__33589.invoke (utils.clj:12) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper.invokeStatic (utils.clj:10) cortex.compute.verify.utils$test_wrapper.invoke (utils.clj:8) clojure.test$compose_fixtures$fn__9003$fn__9004.invoke (test.clj:693) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$compose_fixtures$fn__9003.invoke (test.clj:693) clojure.test$test_vars$fn__9035.invoke (test.clj:734) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$test_vars.invokeStatic (test.clj:730) clojure.test$test_all_vars.invokeStatic (test.clj:736) clojure.test$test_ns.invokeStatic (test.clj:757) clojure.test$test_ns.invoke (test.clj:742) user$eval221$fn__282.invoke (form-init8868038319398612683.clj:1) clojure.lang.AFn.applyToHelper (AFn.java:156) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$compose_hooks$fn__151.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$run_hooks.invokeStatic (form-init8868038319398612683.clj:1) leiningen.core.injected$run_hooks.invoke (form-init8868038319398612683.clj:1) leiningen.core.injected$prepare_for_hooks$fn__156$fn__157.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.AFunction$1.doInvoke (AFunction.java:29) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$map$fn__5406.invoke (core.clj:2735) clojure.lang.LazySeq.sval (LazySeq.java:40) clojure.lang.LazySeq.seq (LazySeq.java:49) clojure.lang.Cons.next (Cons.java:39) clojure.lang.RT.next (RT.java:703) clojure.core$next__4928.invokeStatic (core.clj:64) clojure.core$reduce1.invokeStatic (core.clj:936) clojure.core$reduce1.invokeStatic (core.clj:926) clojure.core$merge_with.invokeStatic (core.clj:3039) clojure.core$merge_with.doInvoke (core.clj:3031) clojure.lang.RestFn.applyTo (RestFn.java:139) clojure.core$apply.invokeStatic (core.clj:659) clojure.test$run_tests.invokeStatic (test.clj:767) clojure.test$run_tests.doInvoke (test.clj:767) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) user$eval221$fn__294$fn__327.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294$fn__295.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294.invoke (form-init8868038319398612683.clj:1) user$eval221.invokeStatic (form-init8868038319398612683.clj:1) user$eval221.invoke (form-init8868038319398612683.clj:1) clojure.lang.Compiler.eval (Compiler.java:7005) clojure.lang.Compiler.eval (Compiler.java:6995) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.Compiler.loadFile (Compiler.java:7395) clojure.main$load_script.invokeStatic (main.clj:277) clojure.main$init_opt.invokeStatic (main.clj:279) clojure.main$init_opt.invoke (main.clj:279) clojure.main$initialize.invokeStatic (main.clj:310) clojure.main$null_opt.invokeStatic (main.clj:344) clojure.main$null_opt.invoke (main.clj:341) clojure.main$main.invokeStatic (main.clj:423) clojure.main$main.doInvoke (main.clj:386) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.Var.applyTo (Var.java:702) clojure.main.main (main.java:37) Caused by: java.lang.UnsatisfiedLinkError: no jnicudnn in java.library.path at java.lang.ClassLoader.loadLibrary (ClassLoader.java:1867) java.lang.Runtime.loadLibrary0 (Runtime.java:870) java.lang.System.loadLibrary (System.java:1122) org.bytedeco.javacpp.Loader.loadLibrary (Loader.java:654) org.bytedeco.javacpp.Loader.load (Loader.java:492) org.bytedeco.javacpp.Loader.load (Loader.java:409) org.bytedeco.javacpp.cudnn.<clinit> (cudnn.java:12) java.lang.Class.forName0 (Class.java:-2) java.lang.Class.forName (Class.java:348) clojure.lang.RT.classForName (RT.java:2183) clojure.lang.RT.classForName (RT.java:2192) clojure.lang.Compiler$HostExpr.maybeClass (Compiler.java:1037) clojure.lang.Compiler.analyzeSymbol (Compiler.java:7134) clojure.lang.Compiler.analyze (Compiler.java:6708) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$HostExpr$Parser.parse (Compiler.java:1016) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.analyzeSeq (Compiler.java:6941) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2800) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$FnMethod.parse (Compiler.java:5428) clojure.lang.Compiler$FnExpr.parse (Compiler.java:3993) clojure.lang.Compiler.analyzeSeq (Compiler.java:6944) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.access$300 (Compiler.java:38) clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:595) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.eval (Compiler.java:7009) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.RT.loadResourceScript (RT.java:374) clojure.lang.RT.loadResourceScript (RT.java:365) clojure.lang.RT.load (RT.java:455) clojure.lang.RT.load (RT.java:421) clojure.core$load$fn__6368.invoke (core.clj:6008) clojure.core$load.invokeStatic (core.clj:6007) clojure.core$load.doInvoke (core.clj:5991) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$load_one.invokeStatic (core.clj:5812) clojure.core$load_one.invoke (core.clj:5807) clojure.core$load_lib$fn__6313.invoke (core.clj:5852) clojure.core$load_lib.invokeStatic (core.clj:5851) clojure.core$load_lib.doInvoke (core.clj:5832) clojure.lang.RestFn.applyTo (RestFn.java:142) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$load_libs.invokeStatic (core.clj:5889) clojure.core$load_libs.doInvoke (core.clj:5873) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$require.invokeStatic (core.clj:5911) clojure.core$require.doInvoke (core.clj:5911) clojure.lang.RestFn.invoke (RestFn.java:408) cortex.compute.cuda_driver_test$create_driver.invokeStatic (cuda_driver_test.clj:12) cortex.compute.cuda_driver_test$create_driver.invoke (cuda_driver_test.clj:10) cortex.compute.cuda_driver_test$fn__48025$fn__48026.invoke (cuda_driver_test.clj:19) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.cuda_driver_test$fn__48025.invokeStatic (cuda_driver_test.clj:18) cortex.compute.cuda_driver_test/fn (cuda_driver_test.clj:18) clojure.test$test_var$fn__9009.invoke (test.clj:716) clojure.test$test_var.invokeStatic (test.clj:716) clojure.test$test_var.invoke (test.clj:707) clojure.test$test_vars$fn__9035$fn__9040.invoke (test.clj:734) cortex.compute.verify.utils$test_wrapper$fn__33589$fn__33590.invoke (utils.clj:13) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper$fn__33589.invoke (utils.clj:12) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper.invokeStatic (utils.clj:10) cortex.compute.verify.utils$test_wrapper.invoke (utils.clj:8) clojure.test$compose_fixtures$fn__9003$fn__9004.invoke (test.clj:693) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$compose_fixtures$fn__9003.invoke (test.clj:693) clojure.test$test_vars$fn__9035.invoke (test.clj:734) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$test_vars.invokeStatic (test.clj:730) clojure.test$test_all_vars.invokeStatic (test.clj:736) clojure.test$test_ns.invokeStatic (test.clj:757) clojure.test$test_ns.invoke (test.clj:742) user$eval221$fn__282.invoke (form-init8868038319398612683.clj:1) clojure.lang.AFn.applyToHelper (AFn.java:156) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$compose_hooks$fn__151.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$run_hooks.invokeStatic (form-init8868038319398612683.clj:1) leiningen.core.injected$run_hooks.invoke (form-init8868038319398612683.clj:1) leiningen.core.injected$prepare_for_hooks$fn__156$fn__157.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.AFunction$1.doInvoke (AFunction.java:29) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$map$fn__5406.invoke (core.clj:2735) clojure.lang.LazySeq.sval (LazySeq.java:40) clojure.lang.LazySeq.seq (LazySeq.java:49) clojure.lang.Cons.next (Cons.java:39) clojure.lang.RT.next (RT.java:703) clojure.core$next__4928.invokeStatic (core.clj:64) clojure.core$reduce1.invokeStatic (core.clj:936) clojure.core$reduce1.invokeStatic (core.clj:926) clojure.core$merge_with.invokeStatic (core.clj:3039) clojure.core$merge_with.doInvoke (core.clj:3031) clojure.lang.RestFn.applyTo (RestFn.java:139) clojure.core$apply.invokeStatic (core.clj:659) clojure.test$run_tests.invokeStatic (test.clj:767) clojure.test$run_tests.doInvoke (test.clj:767) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) user$eval221$fn__294$fn__327.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294$fn__295.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294.invoke (form-init8868038319398612683.clj:1) user$eval221.invokeStatic (form-init8868038319398612683.clj:1) user$eval221.invoke (form-init8868038319398612683.clj:1) clojure.lang.Compiler.eval (Compiler.java:7005) clojure.lang.Compiler.eval (Compiler.java:6995) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.Compiler.loadFile (Compiler.java:7395) clojure.main$load_script.invokeStatic (main.clj:277) clojure.main$init_opt.invokeStatic (main.clj:279) clojure.main$init_opt.invoke (main.clj:279) clojure.main$initialize.invokeStatic (main.clj:310) clojure.main$null_opt.invokeStatic (main.clj:344) clojure.main$null_opt.invoke (main.clj:341) clojure.main$main.invokeStatic (main.clj:423) clojure.main$main.doInvoke (main.clj:386) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.Var.applyTo (Var.java:702) clojure.main.main (main.java:37) Caused by: java.lang.UnsatisfiedLinkError: /tmp/javacpp7750713018268/libjnicudnn.so: libcudnn.so.5: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load (ClassLoader.java:-2) java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1941) java.lang.ClassLoader.loadLibrary (ClassLoader.java:1824) java.lang.Runtime.load0 (Runtime.java:809) java.lang.System.load (System.java:1086) org.bytedeco.javacpp.Loader.loadLibrary (Loader.java:637) org.bytedeco.javacpp.Loader.load (Loader.java:492) org.bytedeco.javacpp.Loader.load (Loader.java:409) org.bytedeco.javacpp.cudnn.<clinit> (cudnn.java:12) java.lang.Class.forName0 (Class.java:-2) java.lang.Class.forName (Class.java:348) clojure.lang.RT.classForName (RT.java:2183) clojure.lang.RT.classForName (RT.java:2192) clojure.lang.Compiler$HostExpr.maybeClass (Compiler.java:1037) clojure.lang.Compiler.analyzeSymbol (Compiler.java:7134) clojure.lang.Compiler.analyze (Compiler.java:6708) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$HostExpr$Parser.parse (Compiler.java:1016) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.analyzeSeq (Compiler.java:6941) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$IfExpr$Parser.parse (Compiler.java:2800) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$LetExpr$Parser.parse (Compiler.java:6376) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler$BodyExpr$Parser.parse (Compiler.java:6056) clojure.lang.Compiler$FnMethod.parse (Compiler.java:5428) clojure.lang.Compiler$FnExpr.parse (Compiler.java:3993) clojure.lang.Compiler.analyzeSeq (Compiler.java:6944) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyzeSeq (Compiler.java:6934) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.access$300 (Compiler.java:38) clojure.lang.Compiler$DefExpr$Parser.parse (Compiler.java:595) clojure.lang.Compiler.analyzeSeq (Compiler.java:6946) clojure.lang.Compiler.analyze (Compiler.java:6729) clojure.lang.Compiler.analyze (Compiler.java:6685) clojure.lang.Compiler.eval (Compiler.java:7009) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.RT.loadResourceScript (RT.java:374) clojure.lang.RT.loadResourceScript (RT.java:365) clojure.lang.RT.load (RT.java:455) clojure.lang.RT.load (RT.java:421) clojure.core$load$fn__6368.invoke (core.clj:6008) clojure.core$load.invokeStatic (core.clj:6007) clojure.core$load.doInvoke (core.clj:5991) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$load_one.invokeStatic (core.clj:5812) clojure.core$load_one.invoke (core.clj:5807) clojure.core$load_lib$fn__6313.invoke (core.clj:5852) clojure.core$load_lib.invokeStatic (core.clj:5851) clojure.core$load_lib.doInvoke (core.clj:5832) clojure.lang.RestFn.applyTo (RestFn.java:142) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$load_libs.invokeStatic (core.clj:5889) clojure.core$load_libs.doInvoke (core.clj:5873) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$require.invokeStatic (core.clj:5911) clojure.core$require.doInvoke (core.clj:5911) clojure.lang.RestFn.invoke (RestFn.java:408) cortex.compute.cuda_driver_test$create_driver.invokeStatic (cuda_driver_test.clj:12) cortex.compute.cuda_driver_test$create_driver.invoke (cuda_driver_test.clj:10) cortex.compute.cuda_driver_test$fn__48025$fn__48026.invoke (cuda_driver_test.clj:19) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.cuda_driver_test$fn__48025.invokeStatic (cuda_driver_test.clj:18) cortex.compute.cuda_driver_test/fn (cuda_driver_test.clj:18) clojure.test$test_var$fn__9009.invoke (test.clj:716) clojure.test$test_var.invokeStatic (test.clj:716) clojure.test$test_var.invoke (test.clj:707) clojure.test$test_vars$fn__9035$fn__9040.invoke (test.clj:734) cortex.compute.verify.utils$test_wrapper$fn__33589$fn__33590.invoke (utils.clj:13) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper$fn__33589.invoke (utils.clj:12) clojure.lang.AFn.applyToHelper (AFn.java:152) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$with_bindings_STAR_.invokeStatic (core.clj:1970) clojure.core$with_bindings_STAR_.doInvoke (core.clj:1970) clojure.lang.RestFn.invoke (RestFn.java:425) cortex.compute.verify.utils$test_wrapper.invokeStatic (utils.clj:10) cortex.compute.verify.utils$test_wrapper.invoke (utils.clj:8) clojure.test$compose_fixtures$fn__9003$fn__9004.invoke (test.clj:693) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$compose_fixtures$fn__9003.invoke (test.clj:693) clojure.test$test_vars$fn__9035.invoke (test.clj:734) clojure.test$default_fixture.invokeStatic (test.clj:686) clojure.test$default_fixture.invoke (test.clj:682) clojure.test$test_vars.invokeStatic (test.clj:730) clojure.test$test_all_vars.invokeStatic (test.clj:736) clojure.test$test_ns.invokeStatic (test.clj:757) clojure.test$test_ns.invoke (test.clj:742) user$eval221$fn__282.invoke (form-init8868038319398612683.clj:1) clojure.lang.AFn.applyToHelper (AFn.java:156) clojure.lang.AFn.applyTo (AFn.java:144) clojure.core$apply.invokeStatic (core.clj:659) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$compose_hooks$fn__151.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) leiningen.core.injected$run_hooks.invokeStatic (form-init8868038319398612683.clj:1) leiningen.core.injected$run_hooks.invoke (form-init8868038319398612683.clj:1) leiningen.core.injected$prepare_for_hooks$fn__156$fn__157.doInvoke (form-init8868038319398612683.clj:1) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.AFunction$1.doInvoke (AFunction.java:29) clojure.lang.RestFn.invoke (RestFn.java:408) clojure.core$map$fn__5406.invoke (core.clj:2735) clojure.lang.LazySeq.sval (LazySeq.java:40) clojure.lang.LazySeq.seq (LazySeq.java:49) clojure.lang.Cons.next (Cons.java:39) clojure.lang.RT.next (RT.java:703) clojure.core$next__4928.invokeStatic (core.clj:64) clojure.core$reduce1.invokeStatic (core.clj:936) clojure.core$reduce1.invokeStatic (core.clj:926) clojure.core$merge_with.invokeStatic (core.clj:3039) clojure.core$merge_with.doInvoke (core.clj:3031) clojure.lang.RestFn.applyTo (RestFn.java:139) clojure.core$apply.invokeStatic (core.clj:659) clojure.test$run_tests.invokeStatic (test.clj:767) clojure.test$run_tests.doInvoke (test.clj:767) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.core$apply.invokeStatic (core.clj:657) clojure.core$apply.invoke (core.clj:652) user$eval221$fn__294$fn__327.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294$fn__295.invoke (form-init8868038319398612683.clj:1) user$eval221$fn__294.invoke (form-init8868038319398612683.clj:1) user$eval221.invokeStatic (form-init8868038319398612683.clj:1) user$eval221.invoke (form-init8868038319398612683.clj:1) clojure.lang.Compiler.eval (Compiler.java:7005) clojure.lang.Compiler.eval (Compiler.java:6995) clojure.lang.Compiler.load (Compiler.java:7457) clojure.lang.Compiler.loadFile (Compiler.java:7395) clojure.main$load_script.invokeStatic (main.clj:277) clojure.main$init_opt.invokeStatic (main.clj:279) clojure.main$init_opt.invoke (main.clj:279) clojure.main$initialize.invokeStatic (main.clj:310) clojure.main$null_opt.invokeStatic (main.clj:344) clojure.main$null_opt.invoke (main.clj:341) clojure.main$main.invokeStatic (main.clj:423) clojure.main$main.doInvoke (main.clj:386) clojure.lang.RestFn.applyTo (RestFn.java:137) clojure.lang.Var.applyTo (Var.java:702) clojure.main.main (main.java:37)

@harold
Copy link
Contributor

harold commented Sep 20, 2017

Nice stacktrace, Dan.

You may have a point. Want to look into upgrading cudnn in cortex? Or maybe @cnuernber will.

@cnuernber
Copy link
Contributor

Please update the docs for now. Updating cudnn should be fairly easy but we may need to upgrade the javacpp bindings to make that happen.

@cnuernber
Copy link
Contributor

https://github.com/thinktopic/cortex/tree/cudnn-6_0 - work in progress.

A couple things; it appears to be backward-incompatible with cudnn-5.0.

The new cudnn has a lot of operators for basic math that were missing before; they are probably a lot faster than the our custom kernels where they overlap, so I want to take a bit to make that work.

@j0ni
Copy link

j0ni commented Jan 23, 2018

FWIW the javacpp code claims to support CUDA 9.1 and cuDNN 7 now. Is it on your radar @cnuernber to support those?

Great work on Cortex btw, I'm enjoying getting to know it. Took me a while to figure out which the supported CUDA bits were though :)

@zcleghern
Copy link

What's the status on this? I see a branch, but looks like it has hasn't been worked on in a long time. Does it need an extra hand?

@cnuernber
Copy link
Contributor

I have stopped supporting this project.

Carin Meier has clojure support added to the mxnet system - http://gigasquidsoftware.com/blog/2018/07/01/clojure-mxnet-joins-the-apache-mxnet-project/

I have been working on random things but mainly low level bindings to the tvm high performance computing library:

https://github.com/tech-ascent/tvm-clj

@zcleghern
Copy link

Ah, that's unfortunate. I'm really interested in 1) doing some of my deep learning work in clojure and 2) contributing to some clojure open source. Do you recommend switching to mxnet then instead of one of the tensorflow libraries?

@gigasquid
Copy link
Contributor

@zcleghern We'd be happy to have you involved with the Apache MXNet project.
The Clojure package has just been released in 1.3.0 https://www.reddit.com/r/Clojure/comments/9gpnlj/apache_mxnet_130_with_clojure_bindings_released/

https://github.com/apache/incubator-mxnet/tree/master/contrib/clojure-package

If you need help getting started or have any questions, feel free to reach out to me on the Clojarian slack channel #mxnet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants