Como descobrir configurações de configuração / instalação do programa / biblioteca / compilador

0

A minha pergunta é um tanto aberta, por isso, perguntarei especificamente no contexto do DLIB, no entanto, qualquer conselho geral será apreciado.

Somos uma empresa de P & D e fazemos testes extensivos, e precisamos capturar o máximo possível de informações sobre o estado de um sistema durante a experimentação (por exemplo, velocidade da CPU, memória, tipo de GPU, etc ...) . Isso também se estende a compiladores e bibliotecas. Se eu tenho um programa em C ++, vamos chamá-lo de foo Eu posso obter algumas informações sobre as bibliotecas que ele usa, como ldd foo e obter a seguinte saída

    linux-vdso.so.1 =>  (0x00007ffd73d64000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbda773d000)
    libgif.so.7 => /usr/lib/x86_64-linux-gnu/libgif.so.7 (0x00007fbda7534000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fbda730f000)
    libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fbda70b5000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbda6d33000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbda6a2a000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbda6813000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbda6449000)
    /lib64/ld-linux-x86-64.so.2 (0x0000559e91e7a000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbda622f000)

No nosso caso, estamos interessados em saber coisas como

  1. Qual versão do dlib está sendo usada
  2. Se OpenBLAS é usado ou dlib BLAS
  3. Se cudNN está instalado e dlib está usando cuda

Atualmente, estou gerenciando todo o sistema operacional e nós instalamos / reinstalamos sistemas operacionais e executamos um script que automatiza todo o processo. Sempre que possível (ou seja, versão cudNN, versão dlib) eu descubro como consultar isso. Onde não for possível, então eu vou no arquivo de log, procure por uma linha que me diz o que eu quero saber (ou seja, -- Enabling CUDA support for dlib. DLIB WILL USE CUDA ou Using OpenBLAS's built in LAPACK ). É aí que as coisas ficam realmente hacky e eu escrevo no arquivo README , salvei em um arquivo CSV ou fui até o departamento de Ciências e disse a eles que Machine-01 estava rodando dlib-19.9 e Machine-02 estão executando dlib-19.8 , mas com cuda ativado, Machine-03 está executando dlib-19.7 , mas com OpenBLAS ativado, etc.

Quais são as melhores práticas do Linux / Unix quando se trata de capturar informações em um sistema para, neste caso, fins de benchmarking? Devo estar executando um programa de teste cuda C ++ para confirmar se funciona? Devo espiar dentro do Makefile e checar para ver quais versões de bibliotecas estão sendo instaladas?

    
por puk 12.02.2018 / 05:55

0 respostas