0

Arm Cortex A 15 (32 ビット) と GPU を搭載した nvidia tegra k1 プロセッサを使用するシステム用に、Yocto プロジェクトを使用してカスタム Linux を構築したいと考えています。さらに、CUDA をサポートする OpenCV (バージョン >= 3.0) をインストールする必要があります。

Bitbake が CUDA で OpenCV をコンパイルしようとすると、nvcc がエラーをスローするため、クラッシュしますSyntax error: word unexpected (expecting ")")これは通常、間違ったシステム用の nvcc バイナリを実行しようとすると発生することがわかりました (例: 64 ビット システム上の 32 ビット nvcc)。したがって、ターゲットシステムのサポートである nvcc を実行するだけでクラッシュすると思います。

  1. ホストシステムの通常の x86-64bit-nvcc を使用してコンパイルする必要があるのか​​、それとも (存在する場合) 何らかのクロスコンパイル nvcc を使用してコンパイルする必要があるのか​​わかりません。
  2. 上記のコンパイラを、OpenCV をビルドする bitbake のプロセスに組み込む方法を知る必要があります。
4

1 に答える 1

1

私はそれを考え出した:

  1. ホスト アーキテクチャをサポートする nvcc バイナリを使用する必要があります。ターゲット アーキテクチャを指定するには、クロス コンパイル フラグを渡すことができます ( http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#cross-compilationを参照)。これらは cmake フラグを介して渡されます -DCUDA_NVCC_FLAGS
  2. EXTRA_OECMAKE_append = "-DCUDA_NVCC_EXECUTABLE=${PATH_TO_THE_NVCC_BINARY}"

bbappend ファイル内のステートメント全体は、次のようになります。

EXTRA_OECMAKE_append = " \
    -DCUDA_NVCC_EXECUTABLE=${NVCC_BINARY} \ 
    -DCUDA_NVCC_FLAGS="--compiler-bindir ${GCC_BINARY}"  \
    "
于 2016-11-07T15:17:35.627 に答える