It does not appear that the default Jetson image comes with a version of numpy that is linked to a BLAS implementation that would allow certain operations to take advantage of multiple cores.
Normally when I do something like A.dot(B) where A and B are large matrixes, numpy would pass these to a BLAS implementation and use all available cores to compute the result.
The closest reference I could find to this problem was a post regarding pyTorch and numpy running only on one core. There was a response that redirected to PyTorch for Jetson Nano
And I did the following but numpy still does not appear to be linked to a BLAS lib.
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.4.0-cp36-cp36m-linux_aarch64.whl
After running python3 and importing numpy I still get:
>>> np.show_config()
blas_mkl_info:
NOT AVAILABLE
blis_info:
NOT AVAILABLE
openblas_info:
NOT AVAILABLE
atlas_3_10_blas_threads_info:
NOT AVAILABLE
atlas_3_10_blas_info:
NOT AVAILABLE
atlas_blas_threads_info:
NOT AVAILABLE
atlas_blas_info:
NOT AVAILABLE
accelerate_info:
NOT AVAILABLE
blas_info:
NOT AVAILABLE
blas_src_info:
NOT AVAILABLE
blas_opt_info:
NOT AVAILABLE
lapack_mkl_info:
NOT AVAILABLE
openblas_lapack_info:
NOT AVAILABLE
openblas_clapack_info:
NOT AVAILABLE
flame_info:
NOT AVAILABLE
atlas_3_10_threads_info:
NOT AVAILABLE
atlas_3_10_info:
NOT AVAILABLE
atlas_threads_info:
NOT AVAILABLE
atlas_info:
NOT AVAILABLE
lapack_info:
NOT AVAILABLE
lapack_src_info:
NOT AVAILABLE
lapack_opt_info:
NOT AVAILABLE
And running A.dot(B) on a large matrix still runs only on one core.
I’m using the following image: nv-jetson-nano-sd-card-image-r32.4.2
python3 (default install)
numpy (1.18.4 after performing “pip3 install numpy” above)
What’s the solution?