Bookmark and Share

Software Topics

OpenCL OpenCV
4 replies [Last post]
squreshi
Offline
Last seen: 1 year 41 weeks ago
Level 4: Thaumaturgist
Joined: 2011-05-31
Points: 95

I gave a talk at the AMD Fusion Developer Summit 2011 (http://developer.amd.com/afds/pages/default.aspx) yesterday, and each and every one of the vision related talks I attended mentioned OpenCV. As in, comparing their GPU OpenCL algorithm implementation against the corresponding OpenCV one. Which begs the question, why isn't anyone working on accelerating OpenCV via OpenCL? A couple of people at my talk asked me this question after my talk. A nice project I said, but a TON of work.

AMD doesn't have a big mobile/embedded presence, but ARM obviously does and their Mali/Midgard line of GPUs will support OpenCL. And NVIDIA is already shipping millions of units in the tablet space with their Tegra SoC.

Jeff Bier
Jeff Bier's picture
Offline
Last seen: 5 weeks 4 days ago
EditorLevel 4: Thaumaturgist
Joined: 2011-05-29
Points: 93

What would be the advantage of accelerating OpenCV via OpenCL, vs. implementing an application direction in OpenCV, or accelerating OpenCV by writing code in a target-specific manner (which I assume would yield better performance)?

squreshi
Offline
Last seen: 1 year 41 weeks ago
Level 4: Thaumaturgist
Joined: 2011-05-31
Points: 95

In theory, rewriting the core OpenCV functions implies the following:

1) cross-platform multi-threaded parallelism (for multi-core CPUs that support OpenCL which currently includes just Intel with the Core i7 but surely ARM won't be far behind)

2) GPU acceleration, as both NVIDIA and AMD GPUs support OpenCL and there are other embedded GPUs that soon will support OpenCL.

Many core image processing and vision primitives are straightforward to parallelize. In this fashion you would parallelize the library without restricting it to a CPU-centric implementation like OpenMP.

Scott Gardner
Scott Gardner's picture
Offline
Last seen: 6 years 36 weeks ago
Level 9: Necromancer
Joined: 2011-02-09
Points: 366

Shehrzad, it would be interesting to get nVidia to disclose some more detail about their work to accelerate OpenCV.  I've always assumed they were using CUDA.

squreshi
Offline
Last seen: 1 year 41 weeks ago
Level 4: Thaumaturgist
Joined: 2011-05-31
Points: 95

Actually they've accelerated OpenCV for Android devices running on the Tegra 2. Since the Tegra 2 doesn't support CUDA, they've accelerated only portions of the library using either "old school" GPGPU techniques or leveraging fixed-function HW embedded on the GPU. That's what I gathered anyway when I listened to their talk at IEEE CVPR 2011 this past June in Colorado Springs.