I am getting the
"ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory"
error when I call my application with "sudo python3.6 ..." but not when I call just "python3.6 ..."
elastic beanstalk uses "sudo", so removing the command is not an option.
Only CUDA 9.0 is installed (which is the correct version for our environment), and /usr/local/cuda/lib64/libcublas.so.9.0 exists .
we created a separate ec2 instance with the same config and same AMI ID: CUDA9ClassicAmazonLinuxDLAMIwithMXNetTensorflowandCaffe2, and had no issues. It seems to be an issue present only with the elastic beanstalk.
$LD_LIBRARY_PATH = '/usr/local/cuda/lib64:/usr/local/lib:/usr/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/mpi/lib:/lib/:/home/ubuntu/src/caffe2/build:/home/ec2-user/src/caffe2/build:/usr/local/cuda/lib64:/usr/local/lib:/usr/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/mpi/lib:/usr/local/cuda/lib64:/usr/local/lib:/usr/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/mpi/lib:/lib/:/home/ubuntu/src/caffe2/build:/home/ec2-user/src/caffe2/build:/usr/local/cuda/lib64:/usr/local/lib:/usr/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/mpi/lib:'
$PATH = '/usr/local/cuda/bin:/usr/local/bin:/opt/aws/bin:/usr/local/mpi/bin:/home/ubuntu/src/caffe2/build:/home/ec2-user/src/caffe2/build:/usr/local/cuda/bin:/usr/local/bin:/opt/aws/bin:/usr/local/mpi/bin:/usr/local/cuda/bin:/usr/local/bin:/opt/aws/bin:/usr/local/mpi/bin:/home/ubuntu/src/caffe2/build:/home/ec2-user/src/caffe2/build:/usr/local/cuda/bin:/usr/local/bin:/opt/aws/bin:/usr/local/mpi/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin'
any thoughts?
sudoenvironment may not pick up yourLD_LIBRARY_PATHvariable. As a diagnostic, you could try:sudo -E python3.6 ..., see here - Robert Crovellaecho $LD_LIBRARY_PATH, 2. what is the output ofsudo -E bash -c 'echo $LD_LIBRARY_PATH'(you can edit your question with responses, if you wish) - Robert Crovellaos.environ['LD_LIBRARY_PATH']by itself would not be sufficient. You would need to do something likeos.environ['LD_LIBRARY_PATH']='/path/to/cudatoolkit/lib64', but probably that is what you meant. (If you did something like that before any import, I would have thought that would have fixed the issue as well.) - Robert Crovella