バックグラウンド
ここでは、LitmusRT、pgmRTなどの以前のインストールが実験用に準備されているため、litmusRTとpgmRTがコンパイルおよびインストールされ、現在のシステムカーネルがlitmusRTであることが前提条件です。
ダウンロード
ソースコードをディレクトリに複製する
root@ubuntu:/home/szc/cpu-gpu/openvx# git clone https://github.com/Yougmark/opencv.git hog
構成
ディレクトリを入力し、CMakeLists.txtを変更します
root@ubuntu:/home/szc/cpu-gpu/openvx# cd hog
root@ubuntu:/home/szc/cpu-gpu/openvx/hog# vim CMakeLists.txt
変更は次のとおりです。liblitmusとpgmのディレクトリを独自のものに変更してください
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} pgm boost_graph boost_filesystem boost_system)# litmus)
ocv_include_directories("/home/szc/litmus/liblitmus/include")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include/uapi")
ocv_include_directories("/home/szc/litmus/liblitmus/arch/x86/include/generated/uapi")
link_directories("/home/szc/cpu-gpu/openvx/pgm/")
link_directories("/home/szc/litmus/liblitmus/")
gdbでデバッグする必要がある場合は、このファイルの上にC_FLAGSとCXX_FLAGSも追加する必要があります(最初の行を参照してください)。
set(CMAKE_C_FLAGS "-g ")
set(CMAKE_CXX_FLAGS "-g ")
コンパイル
ビルドディレクトリを作成して入力し、Makefileを生成します
root@ubuntu:/home/szc/cpu-gpu/openvx/hog# mkdir build && cd build
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build/bin# cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D BUILD_EXAMPLES=Yes -D ENABLE_CXX11=Yes -D BUILD_opencv_cudacodec=OFF ..
豚をコンパイルする
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build# make -j6
テスト
テスト
テストビデオhttps://github.com/opencv/opencv_extra/blob/master/testdata/gpu/video/768x576.aviをダウンロードし、ビルドディレクトリの下のデータディレクトリに配置してから、bin / example_tapi_hogを実行します。
root@ubuntu:/home/szc/cpu-gpu/openvx/hog/build/bin# ./example_tapi_hog
これは歩行者検出の例です。実行中のスクリーンショットは次のとおりです。
結論
ここで実験を実行しても、内部のコード、主に実験論文の対応する部分であるsamples / gpu /hog.cppをデバッグできます。学生用メールボックスがある場合は、Clionを使用できます。
hogコードをデバッグおよび分析すると、多くのcuda APIが使用されていることがわかりました(クローズドソース、ソーストラッキングはここで終了できます)。この実験はOpenVXのCPU-GPU異種スケジューリング実験に基づいているため、次のことに精通している必要があります。 CUDAの公式ドキュメントは、主にプログラミングガイドとベストプラクティスです。