Comments (3)
Hi. You are indeed doing SP yourself, but you're trying to invoke built-in Neanderthal code written with OpenCL that tries to generate double and single precision variants of certain code.
We need to identify why that feature gets invoked in your program. If you look here (https://github.com/uncomplicate/neanderthal/blob/d7f683cab829a401420e03b52869d953341377f0/src/clojure/uncomplicate/neanderthal/internal/device/clblast.clj#L2316) you'll see that both double and single precision engines are created lazily, only when you explicitly create them. (That's dealt in https://github.com/uncomplicate/neanderthal/blob/master/src/clojure/uncomplicate/neanderthal/opencl.clj). That all seems to give warnings (it would be useful to test why), so it might not be crashing your program.
However, the file https://github.com/uncomplicate/neanderthal/blob/5c76fb83eb43b7aa3307e6e90d5025e41750a00f/src/device/uncomplicate/neanderthal/internal/device/opencl/random.cl contains code for both double and single precision numbers, and this produces errors. I must have overlook that the GPU might be not supporting doubles at all, so I didn't split that into two files.
Long term solution is (I hope) that I split this file into double and single specific parts, and load them in https://github.com/uncomplicate/neanderthal/blob/d7f683cab829a401420e03b52869d953341377f0/src/clojure/uncomplicate/neanderthal/internal/device/clblast.clj#L2312 appropriately.
Short term solution is that you test this approach on your machine:
- clone neanderthal
- split random.cl into random-float.cl and random-double.cl
- in clblast.clj provide separate source files for random instead of the unified random.cl
- build neanderthal (skip tests because these obviously can't all pass on your machine)
- see whether your program works, so I can apply this in upstream Neanderthal.
- (if possible, open new issue for this discussion in Neanderthal, since the problem is not in ClojureCL)
from clojurecl.
That makes a lot of sense, thank you! I was also confused why the warnings seemed to trigger build failures, but there are also errors mixed in that huge text dump.
I'll give that workaround a try and open up a new issue in neanderthal with the results.
from clojurecl.
I've opened uncomplicate/neanderthal#114, and will close this issue out. Let me know in that PR if you'd like a companion issue opened in Neanderthal.
from clojurecl.
Related Issues (20)
- constants.clj case unmatched clause HOT 6
- Still problems with ClojureCL and Mac OS HOT 1
- Can't create a context HOT 13
- Problem running on Ubuntu 14.04 64bit HOT 3
- Memory allocation failure HOT 7
- vertigo dependency HOT 3
- clojurecl speed compared with native c++ HOT 7
- Defining local workgroup size causes problems with the transform HOT 22
- Unable to run 'lein test' without errors. HOT 16
- passing direct byte buffer/memory address location instead of java array HOT 2
- No implementation of method: :size of protocol for DirectFloatBufferS HOT 12
- Dedicated discussion server
- clCreateCommandQueueWithProperties not supported for Intel Iris on Mac? HOT 3
- typo in docs
- with-release causes jvm fatal error if used with nvidia openCL 1.2 HOT 5
- Any clue on running on Mac OS X? HOT 3
- No namespace: uncomplicate.clojurecl.constants when requiring lib. HOT 4
- Problem running on Mac OS X HOT 6
- StringIndexOutOfBoundsException HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clojurecl.