Fork me on GitHub
#uncomplicate
<
2017-12-17
>
octahedrion16:12:00

i"m trying to

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

octahedrion16:12:42

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)

octahedrion16:12:06

- does the OpenCL implementation depend on MKL ?

blueberry17:12:22

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

octahedrion19:12:32

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

blueberry19:12:21

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

octahedrion19:12:06

Clojure-only ?

blueberry19:12:00

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.

octahedrion20:12:08

but why does the OpenCL depend on MKL ?

blueberry20:12:31

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.

octahedrion21:12:30

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

octahedrion21:12:38

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

blueberry21:12:53

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