renderingopencladobe-premiereamd-gpu

OpenCL detection bug


I'm new to Adobe Premiere and GPU acceleration. I started to follow simple tutorial on editing video with Premiere Pro CC that I had "Stopped Working" error after seconds when I hovered on my video or dragged it. Found that problem is because of OpenCL. So I put my settings to "Software Only" to have just CPU rendering.

My hardware and software:

(For web developing. I'm not a CPP programmer.)

I used GPU-Z to have details about my AMD GPU and I saw that OpenCL is disabled and other one (Intel) is enabled.

Image

So I used /program files/adobe/adobe premiere pro cc/gpusniffer.exe and this is the output:

Found 2 devices supporting GPU computation.
OpenCL Device 0 -
   Name: Intel(R) HD Graphics 4600
   Vendor: Intel
   Capability: 1.2
   Driver: 1.2
   Total Video Memory: 1348MB
   * Not enabled by default because it did not match the named list of cards.
OpenCL Device 1 -
   Name: Oland
   Vendor: AMD
   Capability: 2
   Driver: 1.2
   Total Video Memory: 2048MB

I read all the docs of APP SDK but I didn't find anything except this one:

Output of /windows/system32/clinfo.exe

 Compiler available:                            Yes
 Execution capabilities:
   Execute OpenCL kernels:                      Yes
   Execute native function:                     No
 Queue properties:
   Out-of-Order:                                No
   Profiling :                                  Yes
 Platform ID:                                   00007FFBA45D6B60
 Name:                                          Oland
 Vendor:                                        Advanced Micro Devices, Inc.
 Device OpenCL C version:                       OpenCL C 1.2
 Driver version:                                1642.5 (VM)
 Profile:                                       FULL_PROFILE
 Version:                                       OpenCL 1.2 AMD-APP (1642.5)

What should I do in order to enable OpenCL in GPU-Z for my AMD Radeon GPU?

Thanks.


Solution

  • After two weeks Googling for my problem I found my answer in playing with regedit. To have fun with OpenCL on Windows 8.1 and AMD Radeon we must do these:

    1. Only use AMD Catalyst Control Center downloaded from AMD official website. (For me, installer downloaded from HP Support Center didn't work. I think because it didn't contains some packages.)
    2. Download and install AMD APP SDK from AMD Developers official website.
    3. Go to C:\Program Files (x86)\AMD APP SDK\2.9\bin. (It will be different based on your version.)
    4. Copy and replace files from x86 folder (OpenCL.dll and amdocl.dll) to C:\Windows\SysWOW64.
    5. Copy and replace files from x86_64 folder (OpenCL.dll and amdocl64.dll) to C:\Windows\System32. Note: OpenCL.dll files are different with each other. Pay attention.
    6. Open Start and type regedit in search or RUN.
    7. Go to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors\.
    8. Add amdocl64.dll as DWORD (32-bit) Value. (Do not edit it after creation!)
    9. Navigate to Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Khronos\OpenCL\Vendors\.
    10. Add amdocl.dll as DWORD (32-bit) Value.
    11. Restart windows (Because of Catalyst) and start Catalyst.
    12. In Premiere go to File -> Project Settings -> General -> Video Rendering and Playback and set Renderer to Mercury Playback Engine GPU Acceleration (OpenCL).

    Note: In Registry Editor, 0 means true (enabled) and 1 means false (disabled) for OpenCL.

    Note: regedit must run as administrator.

    Done! Adobe Premiere Pro CC works fast and fine. Note: GPU-Z will not show OpenCL enabled. I think because its old version.

    Image