title: What is the macro CV_OCL_RUN used for in OpenCV?
body: <p>I was learning <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp" rel="noreferrer"><em>hog.cpp</em></a> implemented in <strong>OpenCV</strong>, when encountered the macro <a href="https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/opencl/ocl_defs.hpp" rel="noreferrer"><code>CV_OCL_RUN</code></a> and confused with it.</p>
  <p>In <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp" rel="noreferrer"><em>hog.cpp</em></a> where <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2046" rel="noreferrer"><code>detectMultiScale()</code></a> locates, you can find <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2073" rel="noreferrer"><code>CV_OCL_RUN</code></a> and a method called <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2004" rel="noreferrer"><code>ocl_detectMultiScale()</code></a> in it. Compared between <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2046" rel="noreferrer"><code>detectMultiScale()</code></a> and <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2004" rel="noreferrer"><code>ocl_detectMultiScale()</code></a>,  not only their names but their implement are quite similar.</p>
  <p>Here are my questions:</p>
  <ol>
  <li>What is the macro <a href="https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/opencl/ocl_defs.hpp" rel="noreferrer"><code>CV_OCL_RUN</code></a> used for? Does it for test or other purpose?</li>
  <li>Since <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2046" rel="noreferrer"><code>detectMultiScale()</code></a> and <a href="https://github.com/opencv/opencv/blob/master/modules/objdetect/src/hog.cpp#L2004" rel="noreferrer"><code>ocl_detectMultiScale()</code></a> are so similar in functionality, why the later is embedded in the former ? What ways are they called in?</li>
  </ol>
  <p>Thanks in advance!</p>