Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zylo117/tensorflow-gpu-macosx

Unoffcial NVIDIA CUDA GPU support version of Google Tensorflow for MAC OSX
https://github.com/zylo117/tensorflow-gpu-macosx

dist gpu mac osx python tensor tensorflow-gpu-macosx

Last synced: 3 days ago
JSON representation

Unoffcial NVIDIA CUDA GPU support version of Google Tensorflow for MAC OSX

Awesome Lists containing this project

README

        

# tensorflow-gpu-macosx

Unoffcial NVIDIA CUDA GPU support version of Google Tensorflow 1.8 for MAC OSX 10.13

**Description:**

Since Google Tensorflow claimed that tensorflow-gpu no longer supports
MAC OSX since 1.2.0 due to the OpenMP issue of clang of Apple,
I built this unoffcial tensorflow-gpu for MAC OSX so that
Hackintosh users or Mac users with eGPU can run tensorflow-gpu with CUDA.

**Requirement:**

1. Must use python3 instead of python2

2. Must be installed on MAC OSX 10.6+

3. Must install Nvidia GPU drivers

4. Must install Nvidia CUDA toolkit 9.1 (if not, you need to re-compile by yourself)

5. Must install Nvidia CUDA cudnn 7.0 (if not, you need to re-compile by yourself)

6. Must set up cuda environment (make sure 'nvcc -V' shows the cuda version '9.1')

7.CUDA compute capability is in [3.0,5.0] (if not, you need to re-compile to get a better performance)

# HOW TO BUILD TENSORFLOW-GPU FOR MAC OSX?

## NOTICE

1.INSTALL NVIDIA DRIVER

2.INSTALL NVIDIA CUDA TOOLKIT (9.1 OR LATER)

3.INSTALL NVIDIA CUDA CUDNN (7.0 OR LATER)

4.SET UP CUDA ENVIRONMENT (MAKE SURE

nvcc -V

WORKS AND PRINTS CUDA VERSION)

5.INSTALL XCODE/COMMAND LINE TOOL 9.3+

6.INSTALL HOMEBREW

7.INSTALL COREUTILS USING

brew install coreutils

**8.INSTALL LLVM USING**

brew install llvm

**9.INSTALL OPENMP USING**

brew install cliutils/apple/libomp

**10.INSTALL BAZEL 0.16.1 FROM GITHUB**
*(https://github.com/bazelbuild/bazel/releases, newer/older version may cause failure)*

12.GIT CLONE TENSORFLOW

git clone https://github.com/zylo117/tensorflow-gpu-macosx

13.CD TENSORFLOW SOURCE DIR

14.CONFIG(skip this step if your CUDA version is same as mine)

./configure
#Please specify the location of python.: Accept the default option
#Please input the desired Python library path to use.: Accept the default option
#Do you wish to build TensorFlow with Google Cloud Platform support? [Y/n]: n
#Do you wish to build TensorFlow with Hadoop File System support? [Y/n]: n
#Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]: n
#Do you wish to build TensorFlow with XLA JIT support? [y/N]: n
#Do you wish to build TensorFlow with GDR support? [y/N]: n
#Do you wish to build TensorFlow with VERBS support? [y/N]: n
#Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: n
#Do you wish to build TensorFlow with CUDA support? [y/N]: y
#Please specify the CUDA SDK version you want to use, e.g. 7.0.: 9.1
#Please specify the location where CUDA 9.1 toolkit is installed.: Accept the default option
#Please specify the cuDNN version you want to use.: 7
#Please specify the location where cuDNN 7 library is installed.: Accept the default option
##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. (GTX10X0: 6.1, GTX9X0: 5.2)
#Please note that each additional compute capability significantly increases your build time and binary size.: 6.1,5.2,5.0,3.0
#Do you want to use clang as CUDA compiler? [y/N]: n
#Please specify which gcc should be used by nvcc as the host compiler.: Accept the default option
#Do you wish to build TensorFlow with MPI support? [y/N]: n
#Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified: Accept the default option
#Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n

export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/extras/CUPTI/lib
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
export PATH=$DYLD_LIBRARY_PATH:$PATH

# bazel clean --expunge # Use this if you failed to compile before.

**15.BUILD**

bazel build --config=cuda --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --action_env PATH --action_env LD_LIBRARY_PATH --action_env DYLD_LIBRARY_PATH //tensorflow/tools/pip_package:build_pip_package

**16.NCCL PATCH**

You can compile NCCL_OPS by yourself (not necessary):

gcc -c -fPIC ./nccl_patched/nccl_ops.cc -o ./nccl_patched/_nccl_ops.o

gcc ./nccl_patched/_nccl_ops.o -shared -o ./nccl_patched/_nccl_ops.so

Then replace the original nccl lib:

mv ./bazel-bin/tensorflow/contrib/nccl/python/ops/_nccl_ops.so ./bazel-bin/tensorflow/contrib/nccl/python/ops/_nccl_ops.so.bk

cp ./nccl_patched/_nccl_ops.so ./bazel-bin/tensorflow/contrib/nccl/python/ops/

16.BUILD PYTHON BINDING USING

./bazel-bin/tensorflow/tools/pip_package/build_pip_package/ ./tmp/tensorflow_pkg

17.INSTALL PYTHON WHEEL USING 'pip3 install /tmp/tensorflow_pkg/*.whl'

18.REINSTALL XCODE/COMMAND LINE TOOL 9

**NOTICE**

This version will not supports multi-cpu/machine training.

It's not like you are gonna need it anyway.

**INSTALL:**

**Either compile from src through pypi (not recommended)**
pip3 install tensorflow-gpu-macosx
**or install from relese (the easiest way)**
pip3 install *.whl