C++ AMP for GPU processing
Are there any plans to support C++AMP as an alternative to OpenCL?
I prefix this with the statement that I am not part of the dev team for opencv, but...
Probably not. )o: This supposition comes from that the MSVC compiler is currently [afaik] the only publicly available compiler that has implemented the specification, and has done so in part leveraging DX11 APIs. Intel have made an internal proof of concept implementation [built on opencl i think?], and supposedly it even outperforms the MS implementation in some scenarios, but this compiler was not released publicly. So despite being released as an open specification and [in my opinion] having a fairly low expertise barrier to entry, it would seem that it is yet to gain a wide cross platform footing on a par with say opencl or even cuda. This would mean that the effort of creating a C++AMP powered opencv backend would [for the time being] only be of benefit to windows users with dx11 capable hardware.
However!... I would love to be wrong and if there is an interested group with a mind to creating an AMP backend for core opencv I would be very interested in getting involved, as I have had some great fun hand rolling AMP kernels to work alongside opencv.
(PS. It is fairly straightforward to insert amp kernels between normal opencv usage, as you can simply pop an array_view
onto the data pointer of a cv::Mat
. You just have to be mindful of how the data is laid out in memory [and to synchronize back after!], but if you are doing that then you are already beginning to practice good parallel-think.)
Asked: 2013-07-01 00:47:11 -0600
Seen: 1,261 times
Last updated: Aug 28 '13
Speeding up Haartraining with AMD GPU and OpenCL
OpenCL and GPU with Android OpenCV SDK
Bug in GPU_SURF and OpenCV's OpenCL module?
OpenCV 2.4.2 and trunk: cmake doesn't show CUDA options
Bilinear sampling from a GpuMat
Problem with FarnebackOpticalFlow / DeviceInfo
Difference between cpu and gpu detectMultiScale
Huge time to upload data to GPU
I think all people who are using opencv in windows store apps would benefit from it. The only way to use the GPU for OpenCV is the C++AMP interface. There is currently no way to use Cuda or OpenCl.