C ++, OpenCV and the “what” for cross-platform GPU programming

I want to write cross-platform code for a computer vision problem. This code should run on a PC with a graphics processor (nVidia), an iPhone with a graphics processor and some Android devices that may or may not have a graphics processor. I want to get the most out of existing equipment. My programming language is C ++ 11, and my computer vision library is OpenCV. What is the best structure, Layer, technique ... etc. Used to write isolated, high-level code that can be used with the GPU, if available.

PS it could be called off-topic, how to ask for recommendations. But in fact, I am not asking between the many options available. I am just asking how this is usually done or what is the state of art in this area.

+4
source share
2 answers

I think the following technology stack is very important for your requirements:

  • OpenCL for all types of desktop computers equipped with GPUs nVidia or any other manufacturer and for programming GPUs on Android.
  • Metalfor programming the GPU on iOS, as its little effort to port your implementation OpenCL:

, - OpenCL, OpenCL, Apple. . , Metel- OpenCL-.

(http://streamcomputing.eu/blog/2015-05-09/apples-dragging-opencl-compiler-problem/, 07.12.2015)

OpenCV

OpenCV OpenCL (http://docs.opencv.org/2.4/modules/ocl/doc/introduction.html, 07.12.2015), afaik OpenCV iOS (OpenCV iOS - GPU?).

, iOS OpenCV , , GPU.

+2

C/++ .

iOS , OpenCV , Android , Google/Android RenderScript ( Google RenderScript OpenCL) OpenCL. RenderScript GPU , Intel, Qualcomm nVidia CUDA.

, , , .. , Intel, Core (2008) , .

Compute Shaders OpenGL ES 3.1 Vulkan. , - C/++.

, , , , .

+3

Source: https://habr.com/ru/post/1618916/


All Articles