4 ms·
Intel and AMD both have some good documentation on their site for getting going with OpenCL, so that's a good place to start. For example: http://developer.amd
by profquail 13y ago
Intel and AMD both have some good documentation on their site for getting going with OpenCL, so that's a good place to start. For example:
http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/introductory-tutorial-to-opencl/ http://developer.amd.com/tools-and-sdks/heterogeneous-comput...
The Khronos website has a huge page with a list of OpenCL tutorials and books:
https://www.khronos.org/opencl/resources https://www.khronos.org/opencl/resources
Amazon has a number of OpenCL books available:
* http://www.amazon.com/OpenCL-Action-Accelerate-Graphics-Computations/dp/1617290173 http://www.amazon.com/OpenCL-Action-Accelerate-Graphics-Comp...
* http://www.amazon.com/Heterogeneous-Computing-OpenCL-Second-Edition/dp/0124058949 http://www.amazon.com/Heterogeneous-Computing-OpenCL-Second-...
* http://www.amazon.com/OpenCL-Programming-Guide-Aaftab-Munshi/dp/0321749642/ http://www.amazon.com/OpenCL-Programming-Guide-Aaftab-Munshi...
This book is available on Amazon but the previous edition is available for free:
http://www.fixstars.com/en/opencl/book/ http://www.fixstars.com/en/opencl/book/
Intel's website also has some "Getting Started" articles and optimization guides for OpenCL (for CPU, GPU, and Xeon Phi):
http://software.intel.com/en-us/vcsource/tools/opencl http://software.intel.com/en-us/vcsource/tools/opencl
- sitkack 13y agoThis is just a small sample of the OpenCL kernels available in the AMD SDK (it runs everywhere, at least it did last time I checked). AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/AESEncryptDecrypt_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BinarySearch_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BinomialOption_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BitonicSort_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BlackScholesDP_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BlackScholes_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BoxFilterGL_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BoxFilter_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/BufferBandwidth_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/ConstantBandwidth_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/DCT_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/DeviceFission_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/DwtHaar1D_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/EigenValue_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/FFT_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/FastWalshTransform_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/FloydWarshall_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/FluidSimulation2D_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/GaussianNoise_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/GlobalMemoryBandwidth_Kernels.cl AMD-APP-SDK-v2.4-lnx64/samples/opencl/bin/x86/HelloCL_Kernels.cl I'd hook into OpenCL from the high level language of your choice. Look at * http://mathema.tician.de/software/pyopencl/ http://mathema.tician.de/software/pyopencl/ * http://www.drdobbs.com/open-source/easy-opencl-with-python/240162614 http://www.drdobbs.com/open-source/easy-opencl-with-python/2... Or JRuby or Jython with https://code.google.com/p/aparapi/ https://code.google.com/p/aparapi/ (still have to write your inner kernel in .java and send that to aparapi) If you go the "whole-stack-in-c" route much of your time will be spent doing memory operations.