Нет Nvidia / CUDA в новых Mac, пытаюсь удачи с веткой openCL Caffe

Зависимости

Установите http://brew.sh/, если у вас его нет.

Python 2.7 и numpy, если у вас его нет

brew install python
pip install --upgrade pip setuptools
pip install numpy

Согласно http://caffe.berkeleyvision.org/install_osx.html

brew install -vd snappy leveldb gflags glog szip lmdb
brew tap homebrew/science
brew install hdf5 opencv
brew install --build-from-source --with-python -vd protobu
brew install --build-from-source -vd boost boost-python

ВенаCL

brew install viennacl

CUDA, даже если вы не можете запустить его, вам потребуется его установить, чтобы остановить компиляцию.

brew cask install cuda

Кафе

Я клонирую в папку на ~/src, не стесняйтесь использовать другое место

cd ~
mkdir src 
cd src
git clone [email protected]:BVLC/caffe.git
cd caffe
git checkout opencl

Время компиляции (с: http://caffe.berkeleyvision.org/installation.html#compilation)

cp Makefile.config.example Makefile.config

Откройте Makefile.config в текстовом редакторе, обновите путь включения Python в строке 104

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/local/lib/python2.7/site-packages/numpy/core/include

Изменить: при запуске caffe возникала неприятная ошибка malloc, исправление из этого обсуждения - раскомментировать USE_LEVELDB := 0 в строке 52

Также обратите внимание, что строка 13 USE_GREENTEA := 1 должна быть раскомментирована, это подтверждает, что мы находимся в ветке openCL.

Дважды проверьте наличие необходимых файлов.

ls /usr/include/python2.7/ | grep Python.h
# blank line bad, file name good
ls /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/ | grep arrayobject.h
# blank line bad, file name good

Если вы получаете пустые строки, значит, ваша установка Python 2.7 и / или numpy неправильная, проверьте их еще раз.

Заметки на будущее

  • Строка 45 Makefile.config имеет флаг CPU_ONLY, можете попробовать это позже, если openCL не удастся
  • Строка 86 из Makefile.config может изменить выбор библиотеки BLAS, некоторые люди рекомендуют MKL Intel вместо встроенного в macOS BLAS.

Компиляция

(флаг -j будет использовать несколько ядер для компиляции, вы можете определить это, запустив sysctl -n hw.ncpu mine, возвращает 8

make all -j8
make test -j8
make runtest -j8

Все тесты пройдены!

Тестирование

Пример LeNet MINST с сайта http://caffe.berkeleyvision.org/gasted/examples/mnist.html

Не уверен, что мой графический процессор используется…

Ну, по крайней мере, это закончилось, заняло ~ 12 минут.

Оценка позы для нескольких человек

Итак, настоящая цель состояла в том, чтобы запустить эту капельницу….



Они красиво обернули все в индивидуальное репозиторий Caffe, к сожалению, это для обычного Caffe на базе CUDA. Попытка заставить это работать без CUDA…

cd ~/src
git clone [email protected]:CMU-Perceptual-Computing-Lab/caffe_demo.git 
cd model
./getModels.sh

Первые стены ударились… пока не удалось успешно скомпилировать. Поскольку они не используют ветку OpenCL, мне пришлось перенести кучу их изменений, вы можете найти их здесь, в ветках rtpose-opencl и rtpose-cpu: https://github.com/acarabott/caffe