-
Notifications
You must be signed in to change notification settings - Fork 3
A series of utilities aimed at making OpenCL easier to use. Includes clCompiler which generates both binary outputs and precompiled headers which can be used in conjunction with clEnvironment. clQuery allows you to print all known information about a OpenCL data type. clPid, clYUV clImgFilter are all examples of how to use the utilities to creat…
emrainey/OpenCL-Environment
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Supported Build Platforms: 1.) Mac OSX 2.) Windows with Visual Studio 2005 (in command window only) + MinGW Make 3.) LINUX What does this environment does: This clEnvironment API allows you to precompile your OpenCL kernels into binaries then import them into you C/C++ code as statically defined arrays of data which can then be re-used with the clCreateEnvironmentFromBins API. The make system herein also forces the %.cl to %.h conversion to be a dependency on the successful creation of your program/library/shared object. This means that if your .cl files do not compile correctly you can not build your target, thus pushing the run-time OpenCL build stages back into build-time builds. It also allows you to completely specify a generic OpenCL Kernel call via predefined structures, thus freeing you to not worry about how to queue/call/pass args/etc. Required: Download Concerto from github.com/emrainey/Concerto. Export an environment variable to it's location, CONCERTO_ROOT. In Linux/Windows builds, you must define the path to the OpenCL developer tools. I only have NVidia cards so the paths will be biased in that direction. First you'll have to install the tools then in your .bashrc or in some setup batch file define your OPENCL_ROOT $ export OPENCL_ROOT=/<path to sdk>/OpenCL/common C:\> SET OPENCL_ROOT=<path to sdk>\OpenCL\common If you would like some extra debug to see what's going on: $ export CL_DEBUG=1 C:\> SET CL_DEBUG=1 If you don't want to pre-build your OpenCL binaries. $ export CL_BUILD_RUNTIME=1 C:\> SET CL_BUILD_RUNTIME=1 If your graphics card doesn't have double support (like some NVIDIA Quadro's) $ export NO_DOUBLE=1 C:\> SET NO_DOUBLE=1 If you have more than one OpenCL implementation, choose the target with $ export CL_USER_DEVICE_TYPE=<gpu|cpu|acc|all> C:\> SET CL_USER_DEVICE_TYPE=<gpu|cpu|acc|all> There is a variable to use more than one device, though the logic internally is not correct for this. Please leave it to 1 device. Compiling: $ make clean $ make Installing: $ export INSTALL_DIR=/where/ever/you/like $ make install What's contained herein: 1.) clEnvironment API 2.) clCompiler which utilizes the clEnvironment API 3.) clQuery which can extract lots of information about your local implementation of OpenCL (library). 4.) clYUV Kernel which can convert a YUV triplet of floats into/from RGB triplets of floats in 1 dimension. 5.) clPID Kernel (Proportional Integral and Derivative) control loop calculator. 6.) clImgFilter - Implements a 3x3 edge filter on input LUMA (B/W) images. 7.) clNBody - an implementation of the famous N-body gravity simulator. 8.) clDeviceQuery - queries all Platform and per device information. 9.) clSpacetime - a GLUT/OpenGL + OpenCL demo of the curvature of space (exagerated). Locations to Get RAW HD Video Files for clYUV and clImgFilter Small YUV video files: http://dsplab.diei.unipg.it/~baruffa/dvbt/binaries/player/seqs/ Large YUV video files: http://www.highdefforum.com/high-definition-movies-video-clips/6537-official-hd-video-clip-list.html
About
A series of utilities aimed at making OpenCL easier to use. Includes clCompiler which generates both binary outputs and precompiled headers which can be used in conjunction with clEnvironment. clQuery allows you to print all known information about a OpenCL data type. clPid, clYUV clImgFilter are all examples of how to use the utilities to creat…
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published