hi!
i'm very new to opencl and i have some questions. i've developed a new implementation of a support vector machine in java and now it's time to speed things up a little bit. ;) unfortunately i have no experience with opencl and before i start spending time on it, i'd like to know whether it's of any use to me. in my svm implementation i use a lot of scalar products of vectors (standard eucledian) and products of matrices with vectors. but not only in dimensions of 2, 3 or 4 like in opengl. in fact, the dimension will be quite big in general (100-1000 and more). now i wonder if opencl can provide me some speed boost for such calculations. if yes, what is a good starting point for learning opencl, especially with jocl. this technology seems to be quite new and not much tutorials/beginner material can be found on the web. Do you have any suggestions? Thanks, w.thumann |
OpenCL is all about parallelism. If you manage to shape your problem in a way that most of your work can be executed independently and therefore parallel OpenCL might be the right choice. take a look at the Hello World example and the in-code comments. http://github.com/mbien/jocl-demos/blob/master/src/com/jogamp/opencl/demos/hellojocl/HelloJOCL.java http://github.com/mbien/jocl-demos/blob/master/src/com/jogamp/opencl/demos/hellojocl/VectorAdd.cl regards, michael On 08/01/2010 03:10 PM, w.thumann [via jogamp] wrote: hi! |
ok thx. could you explain what these .cl files are? is this some sort of proprietary programming language for opencl?
|
Administrator
|
The .cl files is what OpenCL is all about. They contain the code in "OpenCL C" an ISO C99 based programming language wich was extended for massive parallelism.
Generally speaking u can say that u do the environment and data setup for ur calculation using JOCL (OpenCL binding) and then "upload" the actual algorithm to be used with ur data as "OpenCL C" to ur computing devices (e.g. the graphics card or the multicore cpu). After everything is set up u start the computing devices and collect the results when the "uploaded" algorithm has processed all ur data. |
ah ok, then i have to learn OpenCL-C. How can i do that? Do i have to read the spec or are there tutorials for that?
|
Administrator
|
For a first shot I would try to learn for samplecode. Nvidia has a quite extensive library on their website: http://developer.download.nvidia.com/compute/opencl/sdk/website/samples.html
Also try the other OpenCL material from Nvidia: http://developer.nvidia.com/object/opencl.html Also take a look at the "GPU Computing Online Seminars" from Nvidia with "OpenCL - An Introduction" and "OpenCL - Advanced 1" http://developer.nvidia.com/object/gpu_computing_online.html#Computing |
In reply to this post by w.thumann
There is also a video series by AMD. Check the sticky topic "ATI Stream OpenCL(tm) Technical Overview Video Series" near the top of the http://forums.amd.com/devforum/categories.cfm?catid=390&entercat=y
Thought I saw where nVidia might have something now too, but forgot where I saw it. |
Free forum by Nabble | Edit this page |