Arquivo da categoria: NVIDIA

openCV com GPU

Após a conclusão da instalação do NVIDIA CUDA 4 conforme o post anterior, compartilho o finalização dos testes laboratoriais nas madrugadas e final de semana, onde utilizo a biblioteca openCV na plataforma openSUSE 11.4 utilizando a GPU.

Após o download dos fontes da biblioteca openCV, devemos fazer algumas pequenas alterações:

– Crie as pastas abaixo para manter a compatibilidade com o CUDA 3.2 e não perder muito cabelo:

/usr/local/cuda/NPP/SDK/common/lib64/
/usr/local/cuda/NPP/SDK/common/npp/include/

– Copie as bibliotecas do CUDA 4 SDK a seguir na pasta lib64:

libnpp.so (link simbólico)
libnpp.so.4 (link simbólico) 
libnpp.so.4.0.17

– Copie os arquivos .h do CUDA 4 SDK abaixo na pasta include:

nppcore.h  
nppdefs.h  
npp.h  
nppi.h  
npps.h  
nppversion.h

Agora um cmake para começar a brincadeira…

cmake \
        -DCMAKE_BUILD_TYPE=RELEASE \
        -DBUILD_LATEX_DOCS=OFF \
        -DBUILD_OCTAVE_SUPPORT=ON  \
        -DBUILD_PYTHON_SUPPORT=ON  \
        -DBUILD_SWIG_PYTHON_SUPPORT=ONF \
        -DBUILD_TESTS=ON \
        -DENABLE_OPENMP=OFF \
        -DENABLE_PROFILING=OFF \
        -DBUILD_PYTHON_SUPPORT=ON  \
        -DBUILD_NEW_PYTHON_SUPPORT=ON \
        -DCMAKE_INSTALL_PREFIX=%{_prefix} \
        -DLIB_INSTALL_DIR=%{_libdir} \
        -LIB_SUFFIX=64 \
        -DBUILD_EXAMPLES=ON \
        -DINSTALL_C_EXAMPLES=ON \
        -DINSTALL_OCTAVE_EXAMPLES=ON  \
        -DINSTALL_PYTHON_EXAMPLES=ON  \
        -DWITH_1394=ON \
        -DWITH_CUDA=ON \
        -DWITH_FFMPEG=ON \
        -DWITH_GSTREAMER=OFF \
        -DWITH_QT=ON \
        -DWITH_GTK=ON \
        -DWITH_JASPER=ON \
        -DWITH_JPEG=ON \
        -DWITH_PNG=ON \
        -DWITH_TIFF=ON \
        -DWITH_V4L=ON \
        -DWITH_XINE=ON \
        -DCUDA_NPP_LIBRARY_ROOT_DIR=/usr/local/cuda/NPP/SDK/ \
        -DENABLE_SSE=ON \
        -DENABLE_SSE2=ON \
        -DENABLE_SSE3=ON \
        -DENABLE_SSSE3=ON \
        -DENABLE_SSE41=ON \
        -DENABLE_SSE42=ON \
        .       

Para finalizar um video demonstrando um FaceFind COM UMA WEBCAM USB e o alto processamento utilizando a api NVIDIA CUDA 4 com openCV.

NVIDIA CUDA 4 no openSUSE 11.4

Neste post deixo os meus primeiros passos para a utilização da GPU aplicada aos recursos de visão computacional utilizando a tecnologia NVIDIA CUDA, uma arquitetura de computação paralela de propósito geral que tira proveito do mecanismo de computação paralela das unidades de processamento gráfico (GPUs) NVIDIA para resolver muitos problemas computacionais complexos em uma fração do tempo necessário em uma CPU.

Download:

O primeiro passo foi baixar o arsenal de pacotes do SDK da NVIDIA, ou seja o Developer Drivers for Linux (270.41.19), o CUDA ToolKit, o CUDA Tool SDK e para finalizar o GPU Computing SDK. Tudo isto esta disponível AQUI.

Sequência de instalação:

Após a instalação do drive com CUDA, execute o CUDA ToolKit , CUDA Tools SDK e para finalizar o GPU Computing SDK:

#  ./cudatoolkit_4.0.17_linux_64_suse11.2.run

Crie as variáveis ambientais:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
PATH=$PATH:/usr/local/cuda/bin
export PATH LD_LIBRARY_PATH
# cudatools_4.0.17_linux_64.run
# gpucomputingsdk_4.0.17_linux.run
# cd ~/NVIDIA_GPU_Computing_SDK
# make

OBS1: Insira a linha a seguir no arquivo ~/NVIDIA_GPU_Computing_SDK/C/common/common.mk na linha 169

NVCCFLAGS   += --compiler-options -fno-strict-aliasing --compiler-options -fno-inline

OBS2: Durante a compilação no openSUSE 11.4, obtive o seguinte erro: “unsupported GNU version! gcc 4.5 and up are not supported!”

A solução foi ignorar o erro comentando as sequintes linha a seguir no arquivo /usr/local/cuda/include/host_config.h

//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)
//#error -- unsupported GNU version! gcc 4.5 and up are not supported!
//#endif

Pronto neste etapa o NVIDIA CUDA foi instalado com sucesso, no próximo posta a compilação da lib openCV com o CUDA.