cuda::SURF_CUDA
을 cv::xfeatures2d::SURF
, but it's challenging으로 비교하기 위해 CUDA 지원 opencv를 빌드하려고합니다.cuda :: SURF_cuda는 cv :: xfeatures2d :: SURF보다 빠릅니까?
그러나 고성능 실시간 응용 프로그램에서 SURF 디스크립터를 가져 오려고한다고 가정 해보십시오. 그래, 내가 알기로 FAST, ORB가 더 적합한 디스크립터이지만 바이너리이고 유클리드 디스크립터가 필요하다.
어쨌든이 두 구현 중 어느 것이 더 빠른지 알고 싶습니다. 이미지가 하나만 있습니다. 누군가가 CUDA가 GPU 메모리에로드 할 시간이 컴퓨팅 설명자의 시간에 비해 작아지기 때문에 많은 이미지를 처리해야하는 경우에만 CUDA를 사용하는 것이 합리적이라고 말했기 때문에 중요하다고 생각합니다. 이것이 사실인지 아십시오.
내가 게시하기 때문에 또 다른 이유는 높은 GPU가 아닌 NVIDIA GT755m이 하나 뿐이므로 결과가 좋지 않을 수 있습니다. 다른 한편, 나는 병렬 섹션을 개선하려고 노력하고있다 cv::xfeatures2d::SURF
(그리고 64 코어와 제온 피에 그것을 테스트).
물론 하드웨어에 항상 의존하고 있습니다. gt 755m의 스펙을 찾아서 CPU와 비교해 보았습니까? 그것은 당신에게 힌트를 주어야합니다. 그러나 어쨌든, 나는 CPU 버전이 당신이 가지고있는 64 코어의 이점을 얻을 것이라고 믿지 않습니다. 귀하의 의견에 대해 @ NAmorim 감사합니다. – NAmorim
저는 CUDA 전문가는 아니지만 실제로는 거의 알지 못합니다. GPU 어플리케이션에 관해서 이야기 할 때 우리는 데이터 (이미지 쿼리)를로드하기 위해 오버 헤드 (우리가 제거 할 수없는)를 고려해서는 안됩니다. GPU 메모리 (또는 그와 비슷한 것)? 그런 다음 한 메모리에서 다른 메모리로 물건을로드/저장하는 것에 대해 이야기 할 때 (특히 /에서 HD로) 이것은 매우 비쌉니다. 내가 놓친 게 있니? – justHelloWorld
나는 전문가가 아니기 때문에 나는이 문제를 논의하는 가장 좋은 사람이 아니다. 그러나 당신이 맞습니다. 한 곳에서 다른 곳으로 데이터를 전송하는 오버 헤드가 있습니다. 하지만 CPU/GPU 병렬 처리로 경험 한 경험으로 볼 때 오버 헤드가 낮고 부드러운 병렬 처리 (최대 4 코어 상상)가 있고 GPU에서는 높은 오버 헤드이지만 공격적인 병렬 처리 (300+ 코어의 경우) – NAmorim