CUDA 10.2 – diferentes caminhos de instalação

CUDA 10.2 – diferentes caminhos de instalação

Estou com um problema referente à instalação do CUDA 10.2 e das bibliotecas cublas.

Os arquivos Cuda estão em /usr/local e os arquivos cublas estão no arquivo /usr/include.

Agora tenho um programa, onde devo inserir um HOME_PATH para as instalações do Cuda, onde encontrá-las.

Tentei vincular simbolicamente os arquivos cublas a /usr/local mas o programa não consegue encontrar os arquivos necessários.

Existe uma maneira de copiar (está protegido) os arquivos cublas para/usr/local? Ou alterar de alguma forma o caminho de instalação dos arquivos cublas?

Muito obrigado antecipadamente

Chris

Responder1

O texto abaixo pressupõe que você comece com um sistema Ubuntu com drivers Nvidia atuais.

CUDA é apenas um aplicativo, mas precisa de uma versão específica (frequentemente antiga) do compilador e fornece seus próprios drivers de vídeo (várias versões obsoletas).
Uma versão CUDA terá seus próprios diretórios para:

  • bin – para executáveis
  • lib64 – para bibliotecas de links
  • include -- arquivos do compilador

Adicionar o diretório bin CUDA ao início da variável de ambiente PATH permite que esses programas sejam acessados ​​e substituam os programas padrão do sistema (como no caso de versões mais antigas para g++, gcc, ar, nm e ranlib).

Adicionar o diretório CUDA lib64 ao início de LD_LIBRARY_PATH permitirá que essas bibliotecas (compartilhadas) sejam selecionadas em cargas padrão de um programa.

O diretório de inclusão CUDA normalmente é adicionado como uma variável nos sinalizadores do compilador makefile, para que esses arquivos possam ser capturados pelo compilador. Não há necessidade de espalhar esses arquivos CUDA nos diretórios bin, lib e include do sistema. Os aplicativos normalmente não fazem isso. Manter o bin CUDA, lib64 e incluir arquivos em um diretório de lançamento CUDA permite que vários lançamentos CUDA sejam suportados simultaneamente. Basta ter as modificações PATH e LD_LIBRARY_PATH em um script associado para cada release.

A única exceção à separação do programa pode ser a instalação de um compilador mais antigo fornecido pelo sistema - gcc-8 e ferramentas (ar-8, nm-8, ranlib-) são exigidas pelo CUDA 10.2. Acesse o compilador antigo através de links (gcc, ar, nm, ranlib) adicionados ao diretório bin CUDA. Evite alterar o padrão do sistema para o compilador antigo (por exemplo, através de links ou alternativas de atualização).

Outras partes do sistema podem falhar se forem forçadas a usar um compilador mais antigo (pense em drivers de vídeo). Uma versão CUDA suficientemente antiga pode exigir um compilador antigo não fornecido pelos repositórios padrão (pense no gcc-5 para CUDA 8.0). Você precisaria fornecer suas próprias cópias desse compilador e quaisquer bibliotecas compartilhadas necessárias - colocadas nos diretórios CUDA release bin e lib64.

Configurar a versão CUDA dessa forma é fácil, basta descompactar o arquivo deb fornecido no local selecionado:

dpkg-deb --extract CUDAarchive YourDirectory

Isso costumava ser tudo o que era necessário, mas versões CUDA como 10.2 acabaram de tornar o conteúdo do arquivo deb fornecido para o lançamento mais arquivos deb. Observe os arquivos deb indesejados da Nvidia para versões mais antigas, ignore-os ou exclua-os e descompacte todos os arquivos deb individuais. Agora você tem um diretório de lançamento CUDA, então configure um script para alterar seu PATH e LD_LIBRARY_PATH (ou se você não se importa com vários lançamentos CUDA, basta colocar essas alterações em seu .profile (supondo que você use um shell do tipo bash).

Essa abordagem mantém todos os arquivos CUDA fora do gerenciador de pacotes, portanto nenhuma atualização será feita - o que pode ser bom ou ruim dependendo do seu ponto de vista.

Infelizmente, haverá problemas se você apenas executar o script "run file" ou instalar o deb de versão CUDA fornecido.

  1. Os drivers antigos da Nvidia substituirão os drivers de vídeo atuais. Esperamos que você ainda consiga fazer login.
  2. A reinstalação dos drivers atuais da Nvidia pode fazer com que os antigos E TODAS AS SUAS DEPENDÊNCIAS (são todos os arquivos CUDA) sejam excluídos. Bem, nunca impeça o gerenciador de pacotes de fazer seu trabalho, mas você pode fazer uma cópia de toda a sua versão CUDA, deixar o gerenciador de pacotes excluí-lo e restaurá-lo.

Todas essas soluções alternativas com o gerenciador de pacotes resultarão finalmente em uma versão CUDA sem gerenciador de pacotes, como descrito acima.

informação relacionada