2020年12月31日
CUDAで マッチングしてみた。 10倍遅くなった がっかり。オーバーヘッドだ。
動作チェックなので if 文でてけと
チェックしたところ
こっちは おそい GPU使ったほう
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
elaped 323 ( 61.2307 , 62.9867 ) 314 ( 45.8407 , 58.4362 ) 321 ( 51.5852 , 59.97 ) 313 ( 64.7638 , 68.8308 ) 322 ms
OpenCV loading time:
ビルド失敗してたので直した
リンクは こんな調子 で OK
cv::cuda::GpuMat srcg;srcg.upload(Img_Ref);
cv::cuda::GpuMat tmplg(*tpl);tmplg.upload(*tpl);
cv::cuda:: GpuMat resultg;
などは 時間は1m程度だけど 最初に CUDAの アレヤコレヤロードしてるみたいだ。
いざ ロードがおわると CPUよ里速いのだが
それしても 段取り時間がおおきする
チェックしたところ
if(true) {
cv::cuda::GpuMat srcg;srcg.upload(Img_Ref);
cv::cuda::GpuMat tmplg(*tpl);tmplg.upload(*tpl);
cv::cuda:: GpuMat resultg;
auto matcher= cv::cuda:: createTemplateMatching(CV_8UC1,match_method[i] );// cv::TM_CCOEFF_NORMED);
matcher->match(srcg, tmplg,resultg);
tmplg.download( *tpl);
resultg.download(*result);
}
else
{
matchTemplate( Img_Ref, *tpl, *result, match_method[i] );
}
こっちは おそい GPU使ったほう
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
elaped 323 ( 61.2307 , 62.9867 ) 314 ( 45.8407 , 58.4362 ) 321 ( 51.5852 , 59.97 ) 313 ( 64.7638 , 68.8308 ) 322 ms
OpenCV loading time:
CPUつかったほうの結果 速い
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
elaped 41 ( 61.2307 , 62.9867 ) 34 ( 45.8407 , 58.4362 ) 40 ( 51.5852 , 59.97 ) 40 ( 64.7638 , 68.8308 ) 33 ms
OpenCV loading time:
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
filename= :/Image/shcd.png
elaped 41 ( 61.2307 , 62.9867 ) 34 ( 45.8407 , 58.4362 ) 40 ( 51.5852 , 59.97 ) 40 ( 64.7638 , 68.8308 ) 33 ms
OpenCV loading time:
ビルド失敗してたので直した
LIBS+=-L/usr/local/cuda/targets/x86_64-linux/lib
LIBS+=-L/usr/local/cuda/lib64
LIBS+=-lopencv_core
LIBS+=-lopencv_flann
LIBS+=-lopencv_imgproc
LIBS+=-lopencv_imgcodecs
LIBS+=-lopencv_videoio
LIBS+=-lopencv_highgui
LIBS+=-lopencv_ml
LIBS+=-lopencv_video
LIBS+=-lopencv_objdetect
LIBS+=-lopencv_features2d
LIBS+=-lopencv_calib3d
LIBS+=-lopencv_superres
LIBS+=-lopencv_cudaarithm
LIBS+=-lopencv_cudafilters
LIBS+=-lopencv_cudawarping
LIBS+=-lopencv_cudaimgproc
LIBS+=-lopencv_cudafeatures2d
LIBS+=-lopencv_cudaoptflow
LIBS+=-lopencv_cudabgsegm
LIBS+=-lopencv_cudastereo
LIBS+=-lopencv_cudaobjdetect
リンクは こんな調子 で OK
cv::cuda::GpuMat srcg;srcg.upload(Img_Ref);
cv::cuda::GpuMat tmplg(*tpl);tmplg.upload(*tpl);
cv::cuda:: GpuMat resultg;
などは 時間は1m程度だけど 最初に CUDAの アレヤコレヤロードしてるみたいだ。
いざ ロードがおわると CPUよ里速いのだが
それしても 段取り時間がおおきする
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10441256
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック