uncomplicate

octahedrion 2017-12-17T16:57:00.000035Z

i"m trying to

(:require
    [uncomplicate.neanderthal.core :as nc]
    [uncomplicate.neanderthal.opencl]
    )

octahedrion 2017-12-17T16:57:42.000079Z

but I get

CompilerException java.lang.UnsatisfiedLinkError: /private/var/folders/2f/zthjwwkj0m343q6_hyzmvv6w0000gn/T/libneanderthal-mkl-0.17.0756295811454278858.jnilib: dlopen(/private/var/folders/2f/zthjwwkj0m343q6_hyzmvv6w0000gn/T/libneanderthal-mkl-0.17.0756295811454278858.jnilib, 1): Library not loaded: @rpath/libmkl_intel_lp64.dylib
  Referenced from: /private/var/folders/2f/zthjwwkj0m343q6_hyzmvv6w0000gn/T/libneanderthal-mkl-0.17.0756295811454278858.jnilib
  Reason: image not found, compiling:(uncomplicate/neanderthal/internal/host/mkl.clj:306:5)

octahedrion 2017-12-17T16:58:06.000095Z

- does the OpenCL implementation depend on MKL ?

2017-12-17T17:59:22.000008Z

@octo221 yes, you have to provide mkl binaries, either by installation, or by copy/paste

octahedrion 2017-12-17T19:03:32.000038Z

ok - what about pure-Clojure ? I can't see an example

2017-12-17T19:14:21.000036Z

Pure in what sense? Without native/opencl/cuda?

octahedrion 2017-12-17T19:54:00.000029Z

yes

octahedrion 2017-12-17T19:54:06.000018Z

Clojure-only ?

2017-12-17T19:59:00.000077Z

This is possible by the architecture, but would require an implementation of a pure Clojure engine. Which, IMHO, does not have a good ROI, since MKL (and other native BLAS/LAPACK libraries) is available on all platforms Clojure and JVM run (Linux, macOS, Windows), and would not be performance-competitive anyway even with enormous resources poured into doing it seriously. Long story short: all fast libraries for this kind of work in all popular languages use native BLAS/LAPACK for a reason.

octahedrion 2017-12-17T20:12:55.000031Z

ok sure

octahedrion 2017-12-17T20:16:08.000023Z

but why does the OpenCL depend on MKL ?

2017-12-17T20:28:31.000008Z

it does not depend on mkl. It depends on some cpu engine. the default configuration uses the mkl engine, but you can reconfigure it (in clojure) to use anything else, even the dummy one.

octahedrion 2017-12-17T21:34:30.000024Z

if I use only the GPU can I run the OpenCL implementation without MKL ?

octahedrion 2017-12-17T21:38:38.000068Z

it's just that on OSX I get OpenCL without needing to install anything and I want to try Neanderthal now without registering & downloading MKL

2017-12-17T21:45:53.000066Z

To use Neanderthal out of the box, without creating your own configuration of components, you'll have to install MKL, at least for now.

octahedrion 2017-12-17T21:48:05.000088Z

ok