The OpenCL Emulator-Debugger (ocl-emu) is an open source project originating at AMD that allows you to compile and debug OpenCL kernels as C++ procedures. The goal of the project is to provide OpenCL developers with the full support of Microsoft® Visual Studio® C++ development and debugging environments.

Benefits

  • Compile and debug code within Visual Studio
  • Concentrate on your code rather than the intricacies of the OpenCL runtime, for example:
    • For beginners – get a one-line call “Hello World” kernel
    • For algorithm developers – you can focus on the massive parallel algorithm(s) rather than the OpenCL runtime
  • Enable an easy switch from emulator, CPU or GPU devices for a correctness verification and performance tuning
  • Avoid most OpenCL language compilation errors using the Visual Studio compiler as a syntactical checker

Getting Started

To get ocl-emu on your local machine and attach it to your application you must do the following:

  • Download and install the latest AMD APP SDK
  • Download the files below by browsing the source tree and place them in the same hierarchical level and under the same parent directory:
    • …\opencl_emu
    • …\opencl_emu_app
  • Manually set the environment variable CLEMU_ROOT to point to the installation directory …\opencl_emu directory, for example:
    • SET CLEMU_ROOT=C:\…\deopt\main\sw\advtech\tools\opencl_emu
  • Find and compile the ocl-emu test solution located:
    • …\opencl-emu_app\src
    • The sample application with the debugger’s static libraries should compile out-of-the-box

Setting up a Solution

YOUR Application’s VS9 solution setup

The Microsoft Visual Studio is the recommended developing environment for this tool and requires these quick changes to configure the OpenCL Emulator.

Additional Include Directories:

From the Visual Studio window, go to: Project Properties -> C/C++ -> General and include the following new paths in the additional include directories:

$(AMDAPPSDKROOT)\include
$(CLEMU_ROOT)\clemu
$(CLEMU_ROOT)\runCL
$(CLEMU_ROOT)\SDKUtil
$(CLEMU_ROOT)\include

Note: Users who had downloaded the ocl-emu before APP SDK 2.4 have to add environment variable: AMDAPPSDKROOT = %ATISTREAMSDKROOT%

Preprocessor:

Now go to “Preprocessor” tab in the same Project Properties window and add the following preprocessor

GPU_EMU_IMPL

Code Generation:

The code generation option would be selected depending upon the target application. For example if you’re building a Multi-threaded Debug application (not DLL) then you may select:

Multi-Threaded Debug (/MTd).

Linker:

Now proceed to Configuration Properties -> Linker -> General and add the following as additional library directories:

$(AMDAPPSDKROOT)\lib\x86
$(CLEMU_ROOT)\lib\debug\x86
$(CLEMU_ROOT)\lib\x86

Proceed to Linker -> Input and add the following as Additional Dependencies:

OpenCL.lib

runCl.lib

Your Visual Studio is now all set to run OpenCL Emu.

To build libraries and sample applications, use a solution file located under:

…\opencl-emu_app\src

It does not require any changes and should correctly compile out of the box.

Support

This is an open source project. All support will be provided through the “issues” tab on the ocl-emu project page.

Documentation

Downloads

See the ocl-emu source and browse the source tree