#!/bin/sh | |
# Install brew | |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
# Apple hides old versions of stuff at https://developer.apple.com/download/more/ | |
# Install the latest XCode (8.0). | |
# We used to install the XCode Command Line Tools 7.3 here, but that would just upset the most recent versions of brew. | |
# So we're going to install all our brew dependencies first, and then downgrade the tools. You can switch back after | |
# you have installed caffe. | |
# Install CUDA toolkit 8.0 release candidate | |
# Register and download from https://developer.nvidia.com/cuda-release-candidate-download | |
# or this path from https://developer.nvidia.com/compute/cuda/8.0/rc/local_installers/cuda_8.0.29_mac-dmg | |
# Select both the driver and the toolkit, no documentation necessary | |
# Install the experimental NVIDIA Mac drivers | |
# Download from http://www.nvidia.com/download/driverResults.aspx/103826/en-us | |
# Install cuDNN v5 for 8.0 RC or use the latest when it's available | |
# Register and download from https://developer.nvidia.com/rdp/cudnn-download | |
# or this path: https://developer.nvidia.com/rdp/assets/cudnn-8.0-osx-x64-v5.0-ga-tgz | |
# extract to the NVIDIA CUDA folder and perform necessary linking | |
# into your /usr/local/cuda/lib and /usr/local/cuda/include folders | |
# You will need to use sudo because the CUDA folder is owned by root | |
sudo tar -xvf ~/Downloads/cudnn-8.0-osx-x64-v5.0-ga.tar /Developer/NVIDIA/CUDA-8.0/ | |
sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.dylib /usr/local/cuda/lib/libcudnn.dylib | |
sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.5.dylib /usr/local/cuda/lib/libcudnn.5.dylib | |
sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn_static.a /usr/local/cuda/lib/libcudnn_static.a | |
sudo ln -s /Developer/NVIDIA/CUDA-8.0/include/cudnn.h /usr/local/cuda/include/cudnn.h | |
# Install the brew dependencies | |
# Do not install python through brew. Only misery lies there | |
# We'll use the versions repository to get the right version of boost and boost-python | |
# We'll also explicitly upgrade libpng because it's out of date | |
# Do not install numpy via brew. Your system python already has it. | |
brew install -vd snappy leveldb gflags glog szip lmdb | |
brew install hdf5 opencv | |
brew upgrade libpng | |
brew tap homebrew/science | |
brew tap homebrew/versions | |
brew install --build-from-source --with-python -vd protobuf | |
brew install --build-from-source -vd boost159 boost-python159 | |
# Clone the caffe repo | |
cd ~/Documents | |
git clone https://github.com/BVLC/caffe.git | |
# Setup Makefile.config | |
# You can download mine directly from here, but I'll explain all the selections | |
# For XCode 7.3: | |
# https://www.dropbox.com/s/vuy6ha0p7cc5px3/Makefile.config?dl=1 | |
# For XCode 8.0 and later (Sierra): | |
# https://dl.dropboxusercontent.com/u/2891540/caffe_10.12/Makefile.config | |
# First, we'll enable cuDNN | |
# USE_CUDNN := 1 | |
# In order to use the built-in Accelerate.framework, you have to reference it. | |
# Astonishingly, nobody has written this anywhere on the internet. | |
# BLAS := atlas | |
# If you use El Capitan (10.11), we'll use the 10.11 sdk path for vecLib: | |
# BLAS_INCLUDE := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers | |
# Otherwise (10.12), let's use the 10.12 sdk path: | |
# BLAS_INCLUDE := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers | |
# BLAS_LIB := /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A | |
# Configure to use system python and system numpy | |
# PYTHON_INCLUDE := /System/Library/Frameworks/Python.framework/Headers \ | |
# /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include | |
# PYTHON_LIB := /System/Library/Frameworks/Python.framework/Versions/2.7/lib | |
# Configure to enable Python layers. Some projects online need this | |
# WITH_PYTHON_LAYER := 1 | |
curl https://dl.dropboxusercontent.com/u/2891540/Makefile.config -o Makefile.config | |
# Download the XCode Command Line Tools for 7.3, since NVIDIA does not yet support Xcode 8.0's tools | |
# http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.11_for_Xcode_7.3/Command_Line_Tools_OS_X_10.11_for_Xcode_7.3.dmg | |
# Now, choose those tools instead | |
sudo xcode-select --switch /Library/Developer/CommandLineTools | |
# Go ahead and build. | |
cd caffe | |
make -j8 all | |
# To get python going, first we need the dependencies | |
# On a super-clean Mac install, you'll need to easy_install pip. | |
sudo -H easy_install pip | |
# Now, we'll install the requirements system-wide. You may also muck about with a virtualenv. | |
# Astonishingly, --user is not better known. | |
pip install --user -r python/requirements.txt | |
# Go ahead and run pytest now. Horrible @rpath warnings which can be ignored. | |
make -j8 pytest | |
# Now, install the package | |
# Make the distribution folder | |
make distribute | |
# Install the caffe package into your local site-packages | |
cp -r distribute/python/caffe ~/Library/Python/2.7/lib/python/site-packages/ | |
# Finally, we have to update references to where the libcaffe libraries are located. | |
# You can see how the paths to libraries are referenced relatively | |
# otool -L ~/Library/Python/2.7/lib/python/site-packages/caffe/_caffe.so | |
# Generally, on a System Integrity Protection -enabled (SIP-enabled) Mac this is no good. | |
# So we're just going to change the paths to be direct | |
cp distribute/lib/libcaffe.so.1.0.0-rc3 ~/Library/Python/2.7/lib/python/site-packages/caffe/libcaffe.so.1.0.0-rc3 | |
install_name_tool -change @rpath/libcaffe.so.1.0.0-rc3 ~/Library/Python/2.7/lib/python/site-packages/caffe/libcaffe.so.1.0.0-rc3 ~/Library/Python/2.7/lib/python/site-packages/caffe/_caffe.so | |
# Verify that everything works | |
# start python and try to import caffe | |
python -c 'import caffe' | |
# If you got this far without errors, congratulations, you installed Caffe on a modern Mac OS X | |
This comment has been minimized.
This comment has been minimized.
@shixudongleo thanks for the note, I fixed it. Based on your fork, it looks like you got everything installed! That's great to see. |
This comment has been minimized.
This comment has been minimized.
Hi, |
This comment has been minimized.
This comment has been minimized.
Instead of |
This comment has been minimized.
This comment has been minimized.
@TimZaman That could work! Definitely try it. It's an annoying step for sure and pollutes |
This comment has been minimized.
This comment has been minimized.
This was very helpfull albeit I never got it compiling using CUDA 7.5 and Xcode 7.3 because of vecLib compile errors. Had no problem compiling without CUDA though |
This comment has been minimized.
This comment has been minimized.
@jrimestad re: CUDA 7.5 and Xcode 7.3, definitely upgrade to El Capitan / Sierra if you can and use CUDA 8.0. If you're using a Hackintosh, I can confirm that Sierra with a Titan X (and probably all Maxwell chips) work fine. Allegedly the new drivers that ship with the CUDA installation package support Pascal, but it's untested on my end. Re: renaming _caffe.dylib, yep, just pretty much ignore what other people say, they basically never follow their own steps on clean machines, so files are found in all sorts of places and they think stuff works when it really does not. Also, I believe this does not use CMAKE, while that PR does. It's unusual that you should get |
This comment has been minimized.
This comment has been minimized.
Hi, when I ran make -j8 all, I got following errors" Please help. Thank you. |
This comment has been minimized.
This comment has been minimized.
in case where cudnn library is a tgz file, run |
This comment has been minimized.
This comment has been minimized.
Thank you so much for this guide!
Also posted this in my own blog: |
This comment has been minimized.
This comment has been minimized.
Thank you for this, it really helped me. I found that doing this on 10.12.2 required me to downgrade boost to 1.55 vs. 1.59 as mentioned above, or else |
This comment has been minimized.
This comment has been minimized.
I also found that the version of
|
This comment has been minimized.
This comment has been minimized.
I was so glad for the caffe easy installation gospel, yet there are tons of error occurring. However, I tried |
This comment has been minimized.
This comment has been minimized.
Thanks for the tutorial! I've successfully built Caffe, used 2 days to figure out. (中文版) For those Chinese who need help about this: https://blog.birkhoff.me/macos-sierra-10-12-2-build-caffe/ |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
http://www.nvidia.com/download/driverResults.aspx/113889/en-us for mac os 10.12.2 |
This comment has been minimized.
This comment has been minimized.
http://www.nvidia.com/download/driverResults.aspx/114669/en-us for mac os 10.12.3 |
This comment has been minimized.
This comment has been minimized.
Has anyone used MKL as the math library, I can't seem to link it properly |
This comment has been minimized.
This comment has been minimized.
When I run Traceback (most recent call last): How can I solve this? |
This comment has been minimized.
This comment has been minimized.
I got
until I did |
This comment has been minimized.
This comment has been minimized.
Also homebrew/versions is now deprecated |
This comment has been minimized.
This comment has been minimized.
make: *** No rule to make target `all'. Stop. I get this after running make -j8 all. Please help. Thank you ! |
This comment has been minimized.
This comment has been minimized.
If someone needs to run this version of caffe: https://github.com/weiliu89/caffe/tree/ssd
because brew downloads updated dependencies for those two |
This comment has been minimized.
This comment has been minimized.
My MacBook's GPU is Intel Iris Graphics 6100, not cuda-based, so cannot run caffe with GPU on my mac? And there is no need to install cuda toolkit? |
This comment has been minimized.
This comment has been minimized.
@ShivaliGoel Run the command in the caffe directory, i.e. |
This comment has been minimized.
This comment has been minimized.
What should I do? I got this error. |
This comment has been minimized.
This comment has been minimized.
brew tap homebrew/versions - deprecated what to use instead? |
This comment has been minimized.
This comment has been minimized.
@adelaidepan Run the command in the caffe directory, i.e., |
This comment has been minimized.
This comment has been minimized.
@joyzhou28 You cannot run caffe with GPU on your Mac, and you do not need to install CUDA toolkit. Download the latest binary from their website if you don't need CUDA support. |
This comment has been minimized.
This comment has been minimized.
dropbox failed.... |
This comment has been minimized.
This comment has been minimized.
Is it possible on Mac 10.13 series? |
This comment has been minimized.
This comment has been minimized.
Looks like your code was replicated here |
This comment has been minimized.
This comment has been minimized.
I also have a MacOS 10.12 but with no Nvidia graphics driver (I have Intel Iris 1600 instead). So if I understand your comment correctly, I won't be able to install CUDA toolkit on my Mac. What do you mean by latest binary though? Can you provide a link? What does this binary do? And if I download the binary instead of the CUDA toolkit, how does this change the commands I should run from your install_caffe.sh file? Thank you! |
This comment has been minimized.
This comment has been minimized.
I ran into the same issue. I have no idea what this error is about. Can someone please help. Thank you. |
This comment has been minimized.
typo on line # 23 includ -> include