This was a "retake" as I had gone through the process before. But since both OpenCL and OpenCV have updates, and I had not taken such good notes the first time around, I am re-installing everything. For this toolset, that is not a task to be taken lightly.
The official name is the AMD Accelerated Parallel Processing (APP) SDK
What is AMD APP Technology? From the above URL:
"AMD APP technology is a set of advanced hardware and software technologies that enable AMD graphics processing cores (GPU), working in concert with the system’s x86 cores (CPU), to execute heterogeneously to accelerate many applications beyond just graphics. This enables better balanced platforms capable of running demanding computing tasks faster than ever, and sets software developers on the path to optimize for AMD Accelerated Processing Units (APUs)."
Without OpenCL installed, I am not going to be taking advantage of the GPU, and the whole reason I'm down this rabbit hole is to have OpenCV work well (measured in high frame rates).
As I had mentioned, I had already previously installed:
- The AMD FirePro Unified Driver (V5900 graphics driver)
- AMD APP
- OpenCV
I was very hesitant to fiddle with the installed and working graphics driver, so I choose to uninstalled AMD APP v2.8. I found no uninstaller in Windows Programs and Features but in Googling I found that the uninstall is managed by the "AMD Catalyst Install Manager" which is listed in Programs and Features. While uninstalling AMD APP, I also uninstalled a couple other AMD features I was not using.
The AMD APP V2.9 installer was downloaded and executed. I specified an alternate install path and no other options were presented. I installed to
e:\amd_app_2_9
The next step was to compile it. Rather than rehash here my frustrations with that, I refer the audience to the thread that I started at the AMD Developer Central forum. A synopsis is as follows.
- The AMD documentation is very helpful but there are some inaccuracies.
- I did end up having to install the latest AMD Unified Driver. I just installed over top of the existing and had no issues.
- After the driver update and compilation of OpenCL, I was able to successfully run the OpenCL samples.
The coolest OpenCL demo that I ran was the FluidSimulation2D. Mandelbrot was also rewarding. I can tell these demos are using the V5900 because I can hear the fan spin up. When time allows, I will experiment with more of the sample, peruse some source, and perhaps even learn a bit of OpenCL. But my main task is to learn OpenCV so the next installment in this series will pertain to getting that installed and operating.
An important note from Dr. Harris Gasparakis' blog at http://developer.amd.com/community/blog/2013/11/05/opencv-cl-computer-vision-with-even-more-opencl-acceleration/
With the view towards the future, and OpenCL 2.0 in particular, there is a significant and ground breaking development! About a year ago, we asked the question: Is it possible run the same code on both CPUs and GPUs, and have the OpenCV runtime libraries determine if OpenCL capable devices are present, and use hardware acceleration if they are? By that I do not mean running OpenCL on CPU vs. running OpenCL on GPU – that already works. What I mean is run a native C++ implementation on CPU vs. an OpenCL implementation on the GPU, if, at runtime, it is determined that the system supports OpenCL.
It is not clear to me if OpenCV 2.4.7 is already doing some of this. But I do know that the binding of OpenCV and OpenCL is different in 2.4.7. This is a question that I will be investigating during my installation and testing of OpenCV.
No comments:
Post a Comment