Skip to content

Instantly share code, notes, and snippets.

@vellamike
Last active April 7, 2021 23:30
Show Gist options
  • Save vellamike/7c26158c93e89ef155c1cc953bbba956 to your computer and use it in GitHub Desktop.
Save vellamike/7c26158c93e89ef155c1cc953bbba956 to your computer and use it in GitHub Desktop.
Install tensorflow on Jetson TX2 (Jetpack 3.2)

Building TensorFlow from source for Jetson TX2 with Jetpack 3.2

Jetpack 3.2 includes Cuda 9 and CuDNN 7 so it is necessary to compile it from source.

Step 1 - Get Java

sudo apt-get install openjdk-8-jdk

Step 2 - Get some dependencies

sudo apt-get install python3-numpy swig python3-dev python3-pip python3-wheel -y

Step 3 - Get Bazel

wget --no-check-certificate https://github.com/bazelbuild/bazel/releases/download/0.10.0/bazel-0.10.0-dist.zip
unzip bazel-0.10.0-dist.zip -d bazel-0.10.0-dist
cd bazel-0.10.0-dist
./compile.sh
cp output/bazel /usr/local/bin

Step 4 - clone tensorflow

git clone https://github.com/tensorflow/tensorflow # You may wish to check out a speicfic branch here

Step 5 - configure tensorflow

cd tensorflow
# This will prompt you with various questions, my answers are included as an example of what worked for me.
./configure

You have bazel 0.10.0- (@non-git) installed.
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3


Found possible Python library paths:
  /usr/local/lib/python3.5/dist-packages
  /usr/lib/python3/dist-packages
Please input the desired Python library path to use.  Default is [/usr/local/lib/python3.5/dist-packages]

Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: 
jemalloc as malloc support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: n
No Google Cloud Platform support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Hadoop File System support? [Y/n]: n
No Hadoop File System support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: n
No Amazon S3 File System support will be enabled for TensorFlow.

Do you wish to build TensorFlow with Apache Kafka Platform support? [y/N]: n
No Apache Kafka Platform support will be enabled for TensorFlow.

Do you wish to build TensorFlow with XLA JIT support? [y/N]: n
No XLA JIT support will be enabled for TensorFlow.

Do you wish to build TensorFlow with GDR support? [y/N]: 
No GDR support will be enabled for TensorFlow.

Do you wish to build TensorFlow with VERBS support? [y/N]: 
No VERBS support will be enabled for TensorFlow.

Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: 
No OpenCL SYCL support will be enabled for TensorFlow.

Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.

Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 9.0]: 


Please specify the location where CUDA 9.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-9.0


Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7.0]: 


Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-9.0]:


Do you wish to build TensorFlow with TensorRT support? [y/N]: 
No TensorRT support will be enabled for TensorFlow.

Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 3.5,5.2]


Do you want to use clang as CUDA compiler? [y/N]: 
nvcc will be used as CUDA compiler.

Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]: 


Do you wish to build TensorFlow with MPI support? [y/N]: 
No MPI support will be enabled for TensorFlow.

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: 


Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: 
Not configuring the WORKSPACE for Android builds.

Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See tools/bazel.rc for more details.
	--config=mkl         	# Build with MKL support.
	--config=monolithic  	# Config for mostly static monolithic build.
	--config=tensorrt    	# Build with TensorRT support.
Configuration finished

Step 6 - Build tensorflow

# Build a whl
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Step 7 - Make a whl

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg #put the whl in /tmp/tensorflow_pkg

Step 8 - install the whl

pip3 install /tmp/tensorflow_pkg/tensorflow-1.6.0rc0-cp35-cp35m-linux_aarch64.whl #depending on your tensorflow/python version this file may have a different name
@pvineet
Copy link

pvineet commented Jul 23, 2018

Hi,

I am also trying to bring up Tensorflow on Jetson TX2
Which version of NCCL did you use while compiling Tensorflow from source.

Thanks,
Vineet

@Basma-Elsaify
Copy link

Bazel version gives an error, it needs to be updated to 2.0 or higher

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment