Caffe: Правильная инструкция по установке ветки Opencl в Caffe для Intel GPU

Созданный на 16 дек. 2016  ·  87Комментарии  ·  Источник: BVLC/caffe

Мне очень жаль, что мне нужно открыть это, но как в ветке github opencl, так и на форумах Google нет никаких (обновленных) пошаговых инструкций по установке Caffe Opencl на Intel GPU с драйверами Intel Opencl, особенно для кого-то нового.

(а) Эти инструкции все еще работают?
cmake -DUSE_GREENTEA = ON -DUSE_INTEL_SPATIAL = ON -DUSE_ISAAC = ON путь_к_caffe_source
make -jn
сделать -jn runtest

в этой ветке https://github.com/BVLC/caffe/tree/opencl? или же

Как насчет?
cmake -DUSE_GREENTEA = ON -DUSE_INTEL_SPATIAL = ON -DUSE_ISAAC = ON -DBUILD_SHARED_LIBS = OFF -DUSE_CUDNN = OFF -DUSE -DBUILD_docs = OFF -DBUILD_python = OFF_matlabUILD-OFF / openclabUILD_python = OFF_matlabUILD

(б) Требуется ли atlaspack для компиляции opencl-caffe, когда там есть clblas ??? Все просит атласпак ???

(c) как насчет Vienna CL? Эта ветка все еще зависит от них? Это нужно?

(D) Для чего нужен libdnn? на месте ?

(e) А как насчет ISAAC?

(f) В ветке Windows, например, говорится: «Если CUDA не установлен, Caffe по умолчанию будет использовать сборку CPU_ONLY». Означает ли это, что он не будет работать в режиме Opencl в сборках, отличных от cuda ??

Пожалуйста, обновите и предоставьте пошаговые инструкции
Спасибо

OpenCL question windows

Самый полезный комментарий

@atlury
В Readme есть раздел Windows в котором рассказывается, как скомпилировать и установить в Windows.
Единственный шаг, отсутствующий в этом описании, - это загрузка ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

Его можно поместить в любой из путей, по которым CMake найдет его, например, рядом с папкой, в которую вы клонировали Caffe.

Инструкции по сборке отличаются от инструкций для Linux, поскольку это сценарий, который автоматически заботится о конфигурации CMake и загрузке зависимостей.

Обычно нет особой необходимости беспокоиться о настройке в Windows, поскольку она предназначена просто для работы. Однако я дам вам быстрое объяснение:
(а) Нет и нет. Используйте scripts/build_win.cmd как описано в Readme.
(b) Да, независимо от того, как вы его компилируете, всегда нужен CPU BLAS. Но build_win.cmd позаботится об этом за вас, и по умолчанию используется OpenBLAS.
(c) Да, требуется ViennaCL, клонируйте отсюда: https://github.com/viennacl/viennacl-dev
(d) LibDNN - это механизм свертки по умолчанию для графических процессоров OpenCL, заменяющий cuDNN.
Также доступны дополнительные ядра Intel для графических процессоров Intel, которые включены по умолчанию.
(e) ISAAC, clBLAS и CLBlast строго необязательны. Вам нужно скомпилировать их отдельно в Windows и добавить в зависимости, если вы хотите их использовать. Я не гарантирую и не поддерживаю компиляцию любой из этих библиотек, они поддерживаются соответствующими разработчиками проекта.
(f) Нет, в ветке OpenCL это неверно. По умолчанию здесь USE_GREENTEA = ON, USE_CUDA = OFF, CPU_ONLY = OFF.

Я обновлю Readme после Рождества, когда у меня будут праздники. К сожалению, сейчас у меня нет времени на подробные пошаговые инструкции.
CC: @willyd

Все 87 Комментарий

@atlury
В Readme есть раздел Windows в котором рассказывается, как скомпилировать и установить в Windows.
Единственный шаг, отсутствующий в этом описании, - это загрузка ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

Его можно поместить в любой из путей, по которым CMake найдет его, например, рядом с папкой, в которую вы клонировали Caffe.

Инструкции по сборке отличаются от инструкций для Linux, поскольку это сценарий, который автоматически заботится о конфигурации CMake и загрузке зависимостей.

Обычно нет особой необходимости беспокоиться о настройке в Windows, поскольку она предназначена просто для работы. Однако я дам вам быстрое объяснение:
(а) Нет и нет. Используйте scripts/build_win.cmd как описано в Readme.
(b) Да, независимо от того, как вы его компилируете, всегда нужен CPU BLAS. Но build_win.cmd позаботится об этом за вас, и по умолчанию используется OpenBLAS.
(c) Да, требуется ViennaCL, клонируйте отсюда: https://github.com/viennacl/viennacl-dev
(d) LibDNN - это механизм свертки по умолчанию для графических процессоров OpenCL, заменяющий cuDNN.
Также доступны дополнительные ядра Intel для графических процессоров Intel, которые включены по умолчанию.
(e) ISAAC, clBLAS и CLBlast строго необязательны. Вам нужно скомпилировать их отдельно в Windows и добавить в зависимости, если вы хотите их использовать. Я не гарантирую и не поддерживаю компиляцию любой из этих библиотек, они поддерживаются соответствующими разработчиками проекта.
(f) Нет, в ветке OpenCL это неверно. По умолчанию здесь USE_GREENTEA = ON, USE_CUDA = OFF, CPU_ONLY = OFF.

Я обновлю Readme после Рождества, когда у меня будут праздники. К сожалению, сейчас у меня нет времени на подробные пошаговые инструкции.
CC: @willyd

@ naibaf7
Спасибо за быстрый ответ. А как насчет инструкций Linux?

OpenCL BLAS и ISAAC все еще нужны ??
https://github.com/01org/caffe/wiki/clCaffe

@atlury
Два способа в Linux: используйте CMAKE и «make all -j8» или скопируйте makefile.config.example в makefile.config и скомпилируйте с помощью make all -j8; make pycaffe -j8; make runtest -j8 .
Обратите внимание, что скомпилированные результаты Makefile и CMAKE в Linux немного отличаются. Makefile старше, но проще, а CMAKE сложнее.

Эта ветка не совпадает с https://github.com/01org/caffe/wiki/clCaffe
поэтому к нему предъявляются другие требования. Однако пространственные ядра Intel оттуда были объединены в эту ветку.

Строгие требования:

  • ViennaCL, OpenCL и обычные требования Caffe, такие как Gflags, HDF5 и т. Д.
  • Вы можете получить OpenCL SDK с CUDA, AMD APP SDK или Intel OpenCL SDK. Это верно как для Windows, так и для Linux. Mac OS X должна предоставлять собственную реализацию OpenCL.

Дополнительные требования:

  • clBLAS (от AMD)
  • CLBlast (от @cnugteren)
  • ИСААК
  • cuDNN
  • CUDA

Спасибо @ naibaf7
А также для Linux LIBDNN предназначен только для большинства чипов nVidia и AMD? И мы должны использовать Intel Space для Intel iGPU?

@atlury
Intel Space не поддерживает эффективное обратное распространение и не все формы сверток, но да, это самое быстрое прямое распространение на Intel iGPU.
Но я предлагаю вам попробовать оба и проверить, что лучше всего подходит для ваших сетей и устройств.

@ naibaf7

Фабиан, будет ли сборка Windows поддерживать компиляцию с Mingw-64. Пожалуйста, дайте мне знать. Есть ли какие-нибудь инструкции по этому поводу? Студия Мокософт слишком раздута ..

@atlury В настоящее время нет, @willyd является основным участником и разработчиком сборки Windows, так что, возможно, он сможет ответить на этот вопрос.
Хотя студия Microsoft может быть немного раздутой, с ней довольно удобно, поскольку @willyd предварительно скомпилировал все зависимости для VS2015 и VS2013. Итак, я полагаю, что использование mingw-64 - это намного больше работы.

У меня нет намерения поддерживать mingw-64, поскольку CUDA не поддерживает mingw в качестве компилятора хоста в Windows. При этом я приветствую любые PR, связанные с поддержкой mingw64, если они не усложняют сборку.

@willyd
Круто, что я подумал. В данном случае я предпочитаю простоту, поскольку поддержка Windows без MinGW64 не кажется мне большой ловушкой. Несколько предпочтительнее использовать стандартный компилятор с каждой соответствующей операционной системой.
Меня больше всего беспокоят накладные расходы на поддержку, когда люди используют сложные конфигурации сборки.

@ naibaf7

Включает ли сборка opencl для Windows поддержку engine: SPATIAL? Когда я включаю engine: SPATIAL или engine: INTEL_SPATIAL, появляется одна из следующих ошибок

_Слой conv1 имеет неизвестный движок._
_Ошибка при синтаксическом анализе текстового формата caffe.NetParameter: 18: 3: Неизвестное значение перечисления "SPATIAL" для поля "engine" ._

Вики сбивает с толку read.me https://github.com/BVLC/caffe/tree/opencl

В нем упоминаются оба механизма ввода _add: SPATIAL_ для всех спецификаций сверточного уровня. а также _ "engine: INTEL_SPATIAL <-------------------------- эта строка!" _

Который из?

И он отлично работает без движка: пространственный в prototxt.

_opencl-caffe-test.exe imagenet_deploy.prototxt bvlc_reference_caffenet.caffemodel imagenet_mean.binaryproto synset_words.txt truck.jpg
Использовать графический процессор с идентификатором устройства 0
---------- Прогноз для truck.jpg ----------
0,9872 - «н03417042 мусоровоз, мусоровоз»
0,0110 - "n04467665 прицеп автопоезд, прицеп тракторный, буровая установка, буровая установка, автопоезд, полуавтомат
0,0013 - "н03496892 комбайн, жатка"
0,0002 - «н04428191 молотилка, молотилка, молотилка»
0,0001 - «н04461696 эвакуатор, эвакуатор, эвакуатор» _

Также вот несколько «других» наблюдений.
а) Работает лучше при компиляции как DLL, а не как статической. Специально решает ошибку _ "Ошибка проверки: registry.count (type) == 1 (0 vs. 1) Неизвестный тип слоя" _ (Visual Studio 2015)
б) Кажется, он не подбирает OpenCL.lib, поэтому можно вручную скопировать его из папки opencl-sdk в папку сборки (что, по его мнению, должно быть имя переменной пути?)
c) Библиотеки, извлеченные в папку сборки, могут быть скомпилированы до последней версии (например, opencv 3.2 и т. д.)

Способствовать

C: \ Downloads \ xxx.caffe-opencl-build \ bin> caffe device_query
I0108 12: 35: 04.885713 19872 общий. cpp: 382 ] Всего устройств: 3

I0108 12: 35: 04.888244 19872 общий. cpp: 383 ] Устройства CUDA: 0
I0108 12: 35: 04.889102 19872 общий. cpp: 384 ] Устройства OpenCL: 3

I0108 12: 35: 04.889681 19872 общий. cpp: 408 ] Идентификатор устройства: 0

I0108 12: 35: 04.890744 19872 общий. cpp: 410 ] Серверная часть устройства: OpenCL
I0108 12: 35: 04.891839 19872 общий. cpp: 412 ] Сведения о серверной части: Intel (R) Corporation: OpenCL 1.2
I0108 12: 35: 04.893450 19872 общий. cpp: 414 ] Производитель устройства: Intel (R) Corporation
I0108 12: 35: 04.894731 19872 общий. cpp: 416 ] Название: Intel (R) HD Graphics 4400
I0108 12: 35: 04.895730 19872 общий. cpp: 418 ] Общий объем глобальной памяти: 1708759450

I0108 12: 35: 04.897233 19872 общий. cpp: 408 ] Идентификатор устройства: 1
I0108 12: 35: 04.898505 19872 общий. cpp: 410 ] Серверная часть устройства: OpenCL
I0108 12: 35: 04.899590 19872 общий. cpp: 412 ] Сведения о серверной части: Intel (R) Corporation: OpenCL 1.2
I0108 12: 35: 04.901091 19872 общий. cpp: 414 ] Производитель устройства: Intel (R) Corporation
I0108 12: 35: 04.902592 19872 общий. cpp: 416 ] Название: Intel (R) Core (TM) i5-4210U CPU @ 1,70 ГГц
I0108 12: 35: 04.904093 19872 общий. cpp: 418 ] Общий объем глобальной памяти: 8513761280

I0108 12: 35: 04.905594 19872 общий. cpp: 408 ] Идентификатор устройства: 2
I0108 12: 35: 04.907114 19872 общий. cpp: 410 ] Серверная часть устройства: OpenCL
I0108 12: 35: 04.908617 19872 общий. cpp: 412 ] Сведения о сервере: Intel (R) Corporation: OpenCL 2.1
I0108 12: 35: 04.910100 19872 общий. cpp: 414 ] Производитель устройства: Intel (R) Corporation
I0108 12: 35: 04.911598 19872 общий. cpp: 416 ] Название: Intel (R) Core (TM) i5-4210U CPU @ 1,70 ГГц
I0108 12: 35: 04.913100 19872 общий. cpp: 418 ] Общий объем глобальной памяти: 8513761280

Мне кажется, это хорошо, хотя кажется, что у вас установлены как более новый OpenCL 2.1, так и более старый OpenCL 1.2. Поскольку это все еще процессор Haswell, я не уверен, что у Intel уже есть драйвер 2.1 / 2.0 для вашего чипа. Но вам следует попробовать обновить OpenCL SDK для вашего графического процессора.

В любом случае, если вы хотите использовать INTEL_SPATIAL, вам также необходимо включить его во время компиляции. После этого он становится стандартным движком на устройствах Intel GPU.
Вы можете сделать это здесь:
https://github.com/BVLC/caffe/blob/opencl/scripts/build_win.cmd#L82
(scripts / build_win.cmd, строка 82)

однако пространственное ядро ​​Intel еще не было полностью протестировано в Windows.

Я попытаюсь обновить opencl sdk, и я только что увидел ваши коммиты, попробую включить, перекомпилировать и протестировать их и сообщить об этом.
Спасибо

Хорошо, если НЕ ОПРЕДЕЛЕН USE_INTEL_SPATIAL, установите USE_INTEL_SPATIAL = 1

Build_win.cmd выдает следующую ошибку.

C: \ Downloads \ caffe-opencl \ buildALL_BUILD.vcxproj "(цель по умолчанию) (1) ->
C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj "(цель по умолчанию) (3) ->

(Цель ClCompile) -> C: \ Downloads \ caffe-opencl \ src \ caffe \ Layers \ conv_layer_spatial.cpp (1453): ошибка C2572: 'caffe :: ConvolutionLayerSpatial:: swizzleWeights ': переопределение аргумента по умолчанию: параметр 1 [C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj]

C: \ Downloads \ caffe-opencl \ src \ caffe \ Layers \ conv_layer_spatial.cpp (1458): ошибка C2572: 'caffe :: ConvolutionLayerSpatial:: swizzleWeights ': переопределение аргумента по умолчанию: параметр 1 [C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj]

Хорошо, я разберусь с этим.
@gongzg для справки.

Всем привет,
Спасибо за отличную работу!
Мне удалось скомпилировать и запустить caffe-opencl в Windows и Intel HD 4400 с USE_INTEL_SPATIAL = 0 (время caffe, к сожалению, примерно в 2 раза медленнее, чем при запуске caffe-cpu на 2-ядерном i5-4210U, если я не делаю что-то не так). Однако при компиляции с USE_INTEL_SPATIAL = 1 я также получаю ту же ошибку, что и @atlury (и я считаю, что у меня такое же оборудование на моем Lenovo X240). Мне любопытно узнать, поможет ли использование INTEL_SPATIAL ускорить запуск caffe-opencl на этом графическом процессоре, чем на процессоре ...

@gfursin Должен с большим отрывом. LibDNN ожидает, что графический процессор будет иметь другую архитектуру памяти, чем чипы Intel, поэтому на данный момент он не работает оптимально.
В настоящее время мы изучаем, как исправить ядра Intel, чтобы они работали и в Windows.

Супер! Большое спасибо!

Кстати, @atlury , при выборе устройства 1 и 2, "время

@gfursin Нет, я не запускал кофе-тайм (я постараюсь и https://github.com/BVLC/caffe/pull/5165

Здесь опубликована статья Intel (clcaffe)
http://www.slideshare.net/IntelSoftware/clcaffe-unleashing-the-power-of-intel-graphics-for-deep-learning-acceleration

Где следующие тесты (стр. 28 GT3 GPU) поддерживались с использованием INTEL SPATIAL в сверточных слоях.
Alexnet - 290 изображений в секунду
GoogleNet - 77 изображений в секунду
VGGA - 55 изображений в секунду
Overfeat - 91 изображение / сек.

Я действительно хочу протестировать обнаружение объектов (а не только классификацию) с помощью INTEL SPATIAL, но нигде нет примера как такового. Я сомневаюсь, что слои Caffe уже готовы? @ naibaf7 ?

@gongzg есть ли исходный код для вышеуказанных тестов, который мы можем попробовать?

Кроме того, LiDNN был адаптирован для работы с tiny-dnn, что очень интересно (хотя там не так много предварительно обученных моделей). Я также хочу протестировать квантование и посмотреть, как opencl может в этом помочь (8-бит, XNOR и т. Д.). Наконец, обнаружение объектов в opencl в реальном времени было бы потрясающе !!! Надеюсь, @ naibaf7 можно

@atlury Я вернусь к вам на следующей неделе по более сложным вопросам.
Intel Space автоматически используется, когда вы компилируете с включенной опцией.
Для сегментации и обнаружения объектов я предлагаю вам прочитать мой документ ISBI 2016 и технический отчет. У меня есть описанные здесь архитектуры SK-Net и U-Net, которые могут делать это очень быстро. AlexNet можно преобразовать в такой SK-Net.
Вам необходимо использовать LibDNN, чтобы снизить потребление памяти в SK / U-Net.

Вау, я только что прочитал вашу статью ... концепция Strided-ядер кажется очень впечатляющей. Не захватывайте этот поток, но все это в конечном итоге нужно будет протестировать в Opencl под Windows, но перед этим ....

Это реализация только на питоне? Нет c ++? Есть ли предварительно обученные модели? Это где репо https://github.com/naibaf7/PyGreentea/tree/master/examples ? Да, я буду использовать LibDNN ...

@atlury Да, исходным интерфейсом был C ++, но мы перешли на python. Однако, если вы хотите предоставить данные через HDF5 или свой собственный интерфейс C ++, это тоже подойдет. Просто используйте коды генератора сетей, которые я предоставляю на Python, чтобы помочь вам создать правильный протокол для сетей типа SK / U.
Вот немного более старый, но полный технический отчет: https://arxiv.org/abs/1509.03371 , он включает показатели производительности до программирования LibDNN.
На данный момент мы не предоставляем предварительно обученные модели, поскольку наборы данных (классификация EM), в которых мы их используем, и наши результаты еще не опубликованы.

@atlury Некоторые данные тестов измеряются с помощью тестов convnet, и вы можете воспроизвести их на своей платформе. В настоящее время у нас нет других примеров, которыми можно было бы поделиться публично.

@atlury - большое спасибо за ссылки! В прошлом у меня было много проблем с установкой и использованием OpenCL для Intel GPU на Ubuntu (пришлось перекомпилировать ядро ​​Linux), но, возможно, последние версии драйверов будут работать нормально - нужно это проверить. Кстати, в # 5165 у вас есть снимок веб-камеры + классификация Caffe с измерениями FPS - могу я вас спросить, какую программу вы использовали для этого? Большое спасибо!!!

@gfursin

Пожалуйста, сделайте следующее.

  1. Используйте http://cdimage.ubuntu.com/daily-live/current/

  2. Установите opencl SDK и opencl Runtime из (патч ядра не требуется)
    https://software.intel.com/en-us/intel-opencl/download
    https://software.intel.com/en-us/articles/opencl-drivers

  3. Загрузите https://github.com/BVLC/caffe/tree/opencl
    (a) Пожалуйста, скомпилируйте с включенными Viennacl, libdnn, Intel Space, opencv и т. д. Пожалуйста, сделайте общую библиотеку. Я не включаю python, так как не часто им пользуюсь.

  4. VGG caffemodel, prototxt
    Скачать
    http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel
    https://gist.githubusercontent.com/ksimonyan/211839e770f7b538e2d8/raw/0067c9b32f60362c74f4c445a080beed06b07eb3/VGG_ILSVRC_16_layers_deploy.prototxt

включить движок: INTEL_SPATIAL для всех сверточных слоев в вашем deploy.proto

Получите файл synset_words.txt

  1. Протестируйте с помощью этой программы
    https://gist.github.com/atlury/f65fd41eb805cc5f77f666a59e71eae2

Просто убедитесь, что input_dim равен 1 (в вашем прототипе), а не 10 (вы даете ему только одно изображение за раз) с 3 каналами, и изменение размера выполняется автоматически.
input_dim: 1
input_dim: 3
input_dim: 224
input_dim: 224

Любая дополнительная помощь позвонит мне в gtalk: atlury

Обратите внимание, что это будет работать только в Linux, а поддержка opencl для Windows все еще работает @ naibaf7

Большое спасибо @atlury за все подробности - очень признателен - я скоро протестирую! Кстати, я начал автоматизировать установку Caffe в Windows (режим CPU и OpenCL) с помощью Collective Knowledge Framework, но он все еще требует дополнительного тестирования: https://github.com/dividiti/ck-caffe
Я жду отзывов от моих коллег, и если все будет хорошо, мы сделаем официальный релиз через пару недель (возможно, с поддержкой Android-устройств) ...

Всем привет. Большое спасибо за библиотеку, а также за обсуждения выше.

В настоящее время я пытаюсь создать последнюю фиксацию, в которой исправлена сборка Windows OpenCL с USE_GREENTEA = 1, USE_LIBDNN = 1 и USE_INTEL_SPATIAL = 1, вместе со встроенными файлами заголовков для ViennaCL. Мой build_win.cmd прикреплен сюда: build_win.txt

Однако на полпути к созданию библиотеки всегда возникает следующая ошибка:
ninja: build stopped: subcommand failed.
ERROR: Build failed
В деталях:
E:\caffe-opencl\src\caffe\layers\conv_layer_spatial.cpp(1514) : error C2572: 'ca ffe::ConvolutionLayerSpatial<float>::swizzleWeights' : redefinition of default p arameter : parameter 4 ..\..\include\caffe/layers/conv_spatial_layer.hpp(164) : see declaration of 'caffe::ConvolutionLayerSpatial<float>::swizzleWeights' E:\caffe-opencl\src\caffe\layers\conv_layer_spatial.cpp(1519) : error C2572: 'ca ffe::ConvolutionLayerSpatial<double>::swizzleWeights' : redefinition of default parameter : parameter 4
Приносим извинения, если эта ошибка совпадает с упомянутой выше.

Пробовал с USE_INTEL_SPATIAL = 0, но со следующей ошибкой:
greentea_math_functions.cpp.obj : error LNK2019: unresolved external symbol clEn queueUnmapMemObject referenced in function "void __cdecl caffe::greentea_gpu_asu m<float>(int,int,struct _cl_mem * const,int,float *)" (??$greentea_gpu_asum@M<strong i="19">@ca</strong> ffe@@YAXHHQEAU_cl_mem@@HPEAM@Z) syncedmem.cpp.obj : error LNK2001: unresolved external symbol clEnqueueUnmapMemO bject benchmark.cpp.obj : error LNK2019: unresolved external symbol clWaitForEvents re ferenced in function "public: virtual __cdecl caffe::Timer::~Timer(void)" (??1Ti mer@caffe@@UEAA@XZ) benchmark.cpp.obj : error LNK2019: unresolved external symbol clReleaseEvent ref erenced in function "public: virtual __cdecl caffe::Timer::~Timer(void)" (??1Tim er@caffe@@UEAA@XZ) benchmark.cpp.obj : error LNK2019: unresolved external symbol clGetEventProfilin gInfo referenced in function "public: virtual float __cdecl caffe::Timer::MicroS econds(void)" (?MicroSeconds@Timer@caffe@@UEAAMXZ) bin\caffe.dll : fatal error LNK1120: 34 unresolved externals LINK failed. with 1120

Пожалуйста, сообщите об этом. Очень ценится.

@ yshen92 Первая ошибка известна, и над ней работают.
Вторая ошибка, которую вы получаете, обычно означает, что ваша OpenCL DLL недействительна, в ней отсутствуют некоторые символы. Можете ли вы рассказать нам, какое у вас оборудование и какие SDK OpenCL вы установили?
Эта проблема обычно возникает с SDK OpenCL, поступающими от nVidia в рамках CUDA. SDK Intel и AMD OpenCL должны работать с версиями 1.2 и 2.0.

@ naibaf7 Большое спасибо за ответ.

Я создаю библиотеку на 64-разрядной версии Windows 8 Pro с Intel HD Graphics 4000 и NVIDIA NVS 5200M. И только что установил последнюю версию Intel OpenCL SDK v6.3 . Похоже, что каталог OpenCL указывал на тот, который поставляется с CUDA.

Поэтому, пытаясь использовать Intel OpenCL SDK в сборке, я удалил CUDA и сделал довольно грубую модификацию FindOpenCL.cmake в строках 46, 48, 52 и 53 следующим образом:

IF("${ISWIN64}" STREQUAL "Win64")
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib "${OPENCL_LIB_DIR}" "$ENV{CUDA_LIB_PATH}" "$ENV{CUDA_PATH}/lib/x64" "$ENV{INTELOCLSDKROOT}/lib/x64")
ELSE("${ISWIN64}" STREQUAL "Win64")
FIND_LIBRARY(OPENCL_LIBRARIES OpenCL.lib "${OPENCL_LIB_DIR}" "$ENV{CUDA_LIB_PATH}" "$ENV{CUDA_PATH}/lib/Win32" "$ENV{INTELOCLSDKROOT}/lib/x86")
ENDIF("${ISWIN64}" STREQUAL "Win64")

FIND_PATH(OPENCL_INCLUDE_DIRS CL/cl.h PATHS "${_OPENCL_INC_CAND}" "$ENV{CUDA_INC_PATH}" "$ENV{CUDA_PATH}/include" "$ENV{INTELOCLSDKROOT}/include")
FIND_PATH(_OPENCL_CPP_INCLUDE_DIRS CL/cl.hpp PATHS "${_OPENCL_INC_CAND}" "$ENV{CUDA_INC_PATH}" "$ENV{CUDA_PATH}/include" "$ENV{INTELOCLSDKROOT}/include")
В основном это просто добавление в пути Intel SDK. Не уверен, что делаю это правильно. Поскольку без них сценарий не может найти SDK.

Однако я все еще получаю ту же ошибку, что и выше (сборка без Intel Spatial).
А вот мой файл конфигурации, взятый прямо из скрипта для вашей справки.
ConfigInfo.txt
Есть идеи, что я сделал не так?

Привет, @atlury - я наконец нашел немного времени, чтобы установить Ubuntu 17.04, и было довольно просто установить драйверы Intel GPU без перестройки ядра - спасибо! Я также установил Caffe-OpenCL.

По-прежнему существует проблема с кешированием ядра, поэтому начальная стоимость очень высока, но @ naibaf7 и @psyhtest пытаются ее улучшить. Временное решение для небольшого ускорения кэширования ядра - поиграть с переменными среды VIENNACL_CACHE_PATH и CUDA_CACHE_DISABLE (см. Https://github.com/dividiti/ck-caffe/issues/44#issuecomment-277205871).

У меня есть вопрос: я не понял, как добавить engine: INTEL_SPATIAL для всех сверточных слоев в deploy.proto? Я все еще начинающий пользователь (я больше на стороне компилятора, пытаясь оптимизировать подбиблиотеки). Не могли бы вы прислать мне образец, пожалуйста - буду очень признателен!

Еще одно замечание: если это интересно, я добавил поддержку сборки Caffe с OpenCL, ViennaCL и USE_INTEL_SPATIAL через структуру CK (т.е. перестройка в один клик):

ck пакет установки

Подробности можно найти здесь: https://github.com/dividiti/ck-caffe/wiki/Installation

В настоящее время я занимаюсь профилированием кеширования ViennaCL на нескольких платформах. Я подозреваю, что после пары изменений он может работать вполне удовлетворительно.

@gfursin : CUDA_CACHE_DISABLE приводит к отключению собственного механизма кэширования NVIDIA для ядер, поэтому это только замедлит работу (конечно, на платформах на базе NVIDIA). Однако он мне нужен для профилирования кеша.

@psyhtest - спасибо за вашу заметку, так как я вас неправильно понял - я подумал, что это странная ошибка и временное решение;) ...

@ naibaf7 каков сейчас статус поддержки Windows? Интересно, вы уже начали работать над включением пространственного движка Intel для Windows?

@gongzg Я начал настраивать среду Windows на ноутбуке Intel, чтобы проверить это, но пока не продвинулся дальше. Таким образом, пространственный движок Intel по-прежнему имеет проблемы с компиляцией в Windows, но остальное работает.

@ naibaf7 Спасибо за обновление. Затем я проверю, есть ли у нас какие-то внутренние ресурсы для решения проблем пространственного движка Interl в Windows.

Эта ветка работает на windows и amd gpu?

Да, это. Графические процессоры AMD полностью поддерживаются LibDNN как под Windows, так и под Linux. Полная поддержка Intel GPU появится 28 апреля.

@ naibaf7
Дэвид, не могли бы вы сообщить мне, когда будет готова поддержка Windows OpenCL с python для Intel GPU? У меня есть несколько вещей, которые нужно проверить и сообщить.

@hillarycanas - Я также подтверждаю, что мне удалось скомпилировать и запустить OpenCL-версию Caffe с libDNN на AMD с Windows 10 несколько дней назад (я использовал довольно старый APU AMD E1-2500 с Radeon HD Graphics только для теста). Вы можете увидеть результаты производительности на http://tinyurl.com/k3dhsc2 (поиск по AMD).
Я использовал пакет CK "lib-caffe-bvlc-opencl-libdnn-viennacl-universal" для компиляции и запуска Caffe в Windows (см. Https://github.com/dividiti/ck-caffe/wiki/Installation#AMD_GPU).

Извините за беспокойство снова. После отзывов пользователей мы добавили поддержку автоматической упаковки библиотеки Caffe и двоичных файлов для Windows в CK, и теперь можно установить и протестировать версию Caffe CPU и OpenCL на разных компьютерах с Windows с минимальной установкой:

$ pip install ck
$ ck pull repo --url=https://github.com/dividiti/ck-caffe
$ ck install package:lib-caffe-bvlc-master-cpu-bin-win
$ ck install package:lib-caffe-bvlc-opencl-libdnn-viennacl-bin-win
$ ck crowdbench caffe --env.CK_CAFFE_BATCH_SIZE=1

@gfursin
Это здорово :)
Caffe легко может стать мейнстримом вот так :)

Привет,

Я попытался запустить официальную ветку OpenCL кафе, расположенную по адресу:
https://github.com/BVLC/caffe/tree/opencl на моем Mac со следующей информацией об оборудовании:
Название модели: MacBook Pro
Идентификатор модели: MacBookPro12,1
Имя процессора: Intel Core i5
Частота процессора: 2,7 ГГц
Количество процессоров: 1
Общее количество ядер: 2
Кэш L2 (на ядро): 256 КБ
Кэш L3: 3 МБ
Оперативная память: 8 ГБ
Графика: Intel Iris Graphics 6100 1536 МБ

Я мог без проблем запустить учебник по классификации. Однако, когда я переключаюсь в режим графического процессора и пытаюсь запустить net.forward (), ядро ​​каждый раз умирает. Означает ли это, что эта ветка OpenCL caffe не поддерживает интегрированную видеокарту Intel?

Спасибо,

Сал

@saliltambe Ветка OpenCL поддерживает Intel iGPU. Хотя большая часть тестирования проводится в системе Linux, оно должно работать и на Mac. С какой конкретной ошибкой вы столкнулись при запуске net.forward ()?

@gongzg Большое спасибо за ответ. При запуске в jupyter notebook я получаю следующее сообщение об ошибке: «Похоже, что ядро ​​умерло. Оно перезапустится автоматически». У меня очень маленький размер пакета, поэтому я не думаю, что ядро ​​умирает из-за нехватки памяти. Более того, я не получаю сообщение об ошибке, когда переключаюсь в режим графического процессора с помощью: caffe.set_mode_gpu (). Я получаю сообщение об ошибке только при запуске net.forward ().

@saliltambe
Нам нужно немного больше информации: как вы его скомпилировали (версия компилятора, настройки Caffe, какие библиотеки BLAS вы включили)?
Можете ли вы запустить ./build/test/test_all.testbin или make runtest (если вы использовали Makefiles)?

@ naibaf7
Привет, фабиан, вот подробности:
-- Общий:
- Версия: 1.0.0
- Git: неизвестно
- Система: Дарвин
- Компилятор C ++: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++

- Освободить флаги CXX: -O3 -DNDEBUG -fPIC -Wall -std = c ++ 11 -DCMAKE_BUILD -Wno-sign-compare -Wno-uninitialized

- Флаги отладки CXX: -g -fPIC -Wall -std = c ++ 11 -DCMAKE_BUILD -Wno-sign-compare -Wno-uninitialized

  • - Тип сборки: Релиз
  • - BUILD_SHARED_LIBS: ВКЛ.
  • - BUILD_python: ВКЛ.
  • - BUILD_matlab: ВЫКЛ.
  • - BUILD_docs: ВКЛ.
  • - CPU_ONLY: ВЫКЛ.
  • - USE_OPENCV: ON
  • - USE_FFT: ВЫКЛ.
  • - USE_LEVELDB: ВКЛ.
  • - USE_LMDB: ВКЛ.
  • - USE_NCCL: ВЫКЛ.
  • - ALLOW_LMDB_NOLOCK: ВЫКЛ.
  • - USE_HDF5: ВКЛ.



    • - Зависимости:

  • - BLAS: Да (vecLib)
  • - Boost: Да (версия 1.64)
  • - Глог: Да
  • - gflags: Да
  • - protobuf: Да (версия 3.3.0)
  • - lmdb: Да (версия 0.9.19)
  • - LevelDB: Да (версия 1.20)
  • - Snappy: Да (версия 1.1.4)
  • - OpenCV: Да (версия 2.4.13.2)
  • - CUDA: Нет



    • - Python:

  • - Интерпретатор: /Users/stambe/anaconda/bin/python2.7 (версия 2.7.13)
  • - Библиотеки: /Users/stambe/anaconda/lib/libpython2.7.dylib (версия 2.7.13)
  • - NumPy: /Users/stambe/anaconda/lib/python2.7/site-packages/numpy/core/include (версия 1.12.1)

  • - Документация:
  • - Doxygen: Нет
  • - config_file:

  • -- Установить:
  • - Путь установки: / Users / stambe / Programs / caffe-opencl / build / install

  • - Настройка выполнена

Предупреждение CMake (dev) в src / caffe / CMakeLists.txt:

Политика CMP0022 не установлена: INTERFACE_LINK_LIBRARIES определяет интерфейс связи. Запустите cmake --help-policy CMP0022 для получения подробных сведений о политике. Используйте команду cmake_policy, чтобы установить политику и подавить это предупреждение.
Целевое «кафе» имеет свойство INTERFACE_LINK_LIBRARIES, которое отличается от его свойств LINK_INTERFACE_LIBRARIES.

INTERFACE_LINK_LIBRARIES:
caffeproto; /usr/local/lib/libboost_system-mt.dylib; /usr/local/lib/libboost_thread-mt.dylib; /usr/local/lib/libboost_filesystem-mt.dylib; / usr / local / lib / libglog. dylib; /usr/local/lib/libgflags.dylib; $ <$>: / usr / local / lib / libprotobuf.dylib>; $ <$: /usr/local/lib/libprotobuf.dylib>; / usr / local / lib / libhdf5_cpp.dylib; /usr/local/lib/libhdf5.dylib; /usr/lib/libpthread.dylib; / usr / lib / libz .dylib; /usr/lib/libdl.dylib; /usr/lib/libm.dylib; /usr/local/lib/libhdf5_hl_cpp.dylib; /usr/local/lib/libhdf5_hl.dylib; / usr / local / lib / libhdf5_cpp.dylib; /usr/local/lib/libhdf5.dylib; /usr/lib/libpthread.dylib; /usr/lib/libz.dylib; /usr/lib/libdl.dylib; /usr/lib/libm.dylib ; /usr/local/lib/libhdf5_hl_cpp.dylib; /usr/local/lib/libhdf5_hl.dylib; /usr/local/lib/liblmdb.dylib; /usr/local/lib/libleveldb.dylib; / Applications / Xcode. app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.12.sdk / System / Library / Frameworks / OpenCL.framework; opencv_core; opencv_highgui; opencv_imgproc; -lcblas; -framework Accelerate; / usr / local / библиотека / libboost_python-mt.dylib

LINK_INTERFACE_LIBRARIES:

caffeproto; /usr/local/lib/libboost_system-mt.dylib; /usr/local/lib/libboost_thread-mt.dylib; /usr/local/lib/libboost_filesystem-mt.dylib; / usr / local / lib / libglog. dylib; /usr/local/lib/libgflags.dylib; /usr/local/lib/libprotobuf.dylib; /usr/local/lib/libhdf5_cpp.dylib; /usr/local/lib/libhdf5.dylib; / usr / lib /libpthread.dylib;/usr/lib/libz.dylib;/usr/lib/libdl.dylib;/usr/lib/libm.dylib;/usr/local/lib/libhdf5_hl_cpp.dylib;/usr/local/lib/ libhdf5_hl.dylib; /usr/local/lib/libhdf5_cpp.dylib; /usr/local/lib/libhdf5.dylib; /usr/lib/libpthread.dylib; /usr/lib/libz.dylib; / usr / lib / libdl .dylib; /usr/lib/libm.dylib; /usr/local/lib/libhdf5_hl_cpp.dylib; /usr/local/lib/libhdf5_hl.dylib; /usr/local/lib/liblmdb.dylib; / usr / local / lib / libleveldb.dylib; /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/OpenCL.framework; opencv_core; opencv_cvigh_gui; opencv_cvigh_gui; lcblas; -framework Accelerate; /usr/local/lib/libboost_python-mt.dylib

Когда я запускаю make runtest -j8, я получаю следующую ошибку:
stambe- osx: построить stambe $ make runtest -j8
[1%] Создано целевое значение gtest
[2%] Создан целевой кофе-прото
[71%] Создано целевое кафе
[71%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_deconvolution_layer.cpp.o
[72%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_db.cpp.o
[73%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_eltwise_layer.cpp.o
[73%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_dummy_data_layer.cpp.o
[73%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_embed_layer.cpp.o
[73%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_euclidean_loss_layer.cpp.o
[73%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_filter_layer.cpp.o
[75%] Создание объекта CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_filler.cpp.o
/ Пользователи / stambe / Программы / caffe-opencl / src / caffe / test / test_db. cpp: 23 : 27: ошибка: использование необъявленного
идентификатор 'EXAMPLES_SOURCE_DIR'
root_images_ (строка (EXAMPLES_SOURCE_DIR) + строка ("images /")) {}

Есть ли проблема с моей установкой? Обратите внимание, что у меня нет проблем с запуском caffe на ЦП.

Благодарность,
Сал

Благодаря указанным указателям и подсказкам мне удалось успешно построить и запустить Caffe OpenCL на двух разных машинах со следующими характеристиками:

(А)

  • Процессор: Intel i7-7567U 3,5 ГГц
  • iGPU: Intel Iris Plus 650
    (В)
  • Процессор: Intel i7-4930K 3,4 ГГц
  • Графический процессор: NVIDIA Geforce GTX 650

Я мог без проблем запустить AlexNet, ResNet50 и ResNet152 как на (A), так и на (B). Единственная проблема, с которой я столкнулся, - это пакетная обработка в ResNets на (A) - предсказанный класс никогда не бывает правильным. Поскольку проблема возникает только в (A) И только в пакетном процессе ResNets, я считаю, что основная причина может быть связана с LibDNN, а точнее с пространственным ядром Intel. Я мог бы отключить движок Intel, но тогда он не достиг бы той скорости, которой я сейчас очень доволен.

Есть еще указатели и подсказки по этому поводу? Заранее спасибо.

@gongzg Любые

@ naibaf7 В текущем механизме пространственной свертки есть некоторые ошибки, и у меня еще нет времени отправить эти PR в ветвь OpenCL вверх по течению. Частично причина в том, что вся моя текущая работа зависит от PR FP16, поэтому я хочу дождаться, пока патч FP16 будет рассмотрен и объединен. А пока я хотел бы порекомендовать @jstumpin попробовать Intel OpenCL caffe wiki.

@jstumpin Лучше применить слияние слоев для resnet, и вы увидите заметный прирост производительности.

Отличные указатели (и новости тоже) повсюду. Раньше слышал о github.com/01org/caffe, но мне это не очень понравилось, так как я вынужден пойти на развертывание Windows. Я получаю [данные спецификации в (A)]:

  1. AlexNet

    • 110 изображений в секунду, 164 изображения в секунду (пакет = 15)

  2. ResNet50

    • 11 изображений в секунду, 14 изображений в секунду (пакет = 5)

  3. ResNet152

    • 5 изображений в секунду, 6 изображений в секунду (пакет = 2)

Следующие элементы лишены Intel пространственного:

  1. AlexNet

    • 113 изображений / сек, 114 изображений / сек (пакет = 15)

  2. ResNet50

    • 9 изображений в секунду, 14 изображений в секунду (пакет = 5)

  3. ResNet152

    • 5 изображений в секунду, 6 изображений в секунду (пакет = 2)

Для полноты картины я также сравнил OpenCV 3.3.0 и CPU-only Caffe (с Intel MKL, все они). Достаточно сказать, что использование только ЦП недопустимо, независимо от топологии сети. Я уменьшаю размер пакета по мере роста сложности сети, чтобы быть справедливым с системой (B), поскольку память графического процессора ограничена. Более того, я не наблюдал никакого прироста сверх тех экспериментальных размеров партии. Кстати, (B) на самом деле оснащен NVIDIA Quadro K4200, а не Geforce, как изначально рекламировалось (в любом случае, это не имеет значения, поскольку мы нацелены на (B) для развертывания).

Делать:
[1] Перестройте Caffe из ветки, оптимизированной для вывода.
[2] Примените слияние слоев и повторно оцените производительность.

Спасибо!

@jstumpin , ветвь inference-optimzie также поддерживает окна, при клонировании кода проверьте README для получения инструкций по сборке в Windows. Если вы обнаружили какую-либо проблему, просто откройте там заявку.

@gongzg Да, проверка и рефакторинг FP16 в процессе.

Хотя метка правильная, но почему значение прогноза превышает 1? Это справедливо при использовании OpenCL с Intel пространственной или без нее (только CPU). Разве выходные данные softmax не должны быть вероятностными?

Я пробую последнюю ветку OpenCL на моем Intel NUC. Аппаратное обеспечение

  • Процессор Intel Core i7-7567U с тактовой частотой 3,5 ГГц
  • Intel Iris Plus графика 650
  • Windows 10 Pro
  • Visual Studio 14 2015 Win64

Я клонировал последнюю версию viennacl в папку, параллельную папке Caffe. Затем я запускаю scripts/build_win.cmd не изменяя его (поскольку я не видел необходимости изменять его). Но возникает странная ошибка, которой нет во всем вышеприведенном обсуждении. См. Вывод ниже. Перед тем, как пойти туда, еще одна информация: я успешно построил ветку windows .

Вот результат build_win.cmd . Очень признателен, если кто-нибудь может мне помочь в этом!

================================

c: \ DL \ caffe \ scripts> build_win.cmd
Система не может найти указанный диск.
Система не может найти указанный диск.
ИНФОРМАЦИЯ: ================================================ ============
ИНФОРМАЦИЯ: Резюме:
ИНФОРМАЦИЯ: ================================================ ============
ИНФОРМАЦИЯ: MSVC_VERSION = 14
ИНФОРМАЦИЯ: WITH_NINJA = 0
ИНФОРМАЦИЯ: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
ИНФОРМАЦИЯ: CPU_ONLY = 0
ИНФОРМАЦИЯ: USE_CUDA = 0
ИНФОРМАЦИЯ: CUDA_ARCH_NAME = Авто
ИНФОРМАЦИЯ: USE_CUDNN = 0
ИНФОРМАЦИЯ: USE_GREENTEA = 1
ИНФОРМАЦИЯ: USE_LIBDNN = 1
ИНФОРМАЦИЯ: USE_OPENMP = 0
ИНФОРМАЦИЯ: USE_INDEX64 =
ИНФОРМАЦИЯ: USE_INTEL_SPATIAL = 0
ИНФОРМАЦИЯ: DISABLE_DEVICE_HOST_UNIFIED_MEMORY = 0
ИНФОРМАЦИЯ: CMAKE_CONFIG = Выпуск
ИНФОРМАЦИЯ: USE_NCCL = 0
ИНФОРМАЦИЯ: CMAKE_BUILD_SHARED_LIBS = 0
ИНФОРМАЦИЯ: PYTHON_VERSION = 2
ИНФОРМАЦИЯ: BUILD_PYTHON = 1
ИНФОРМАЦИЯ: BUILD_PYTHON_LAYER = 1
ИНФОРМАЦИЯ: BUILD_MATLAB = 0
ИНФОРМАЦИЯ: PYTHON_EXE = "python"
ИНФОРМАЦИЯ: RUN_TESTS = 0
ИНФОРМАЦИЯ: RUN_LINT = 0
ИНФОРМАЦИЯ: RUN_INSTALL = 0
ИНФОРМАЦИЯ: ================================================== ============
- Выбор версии Windows SDK для Windows 10.0.15063.
- Идентификатор компилятора C - MSVC 19.0.24215.1.
- Идентификатор компилятора CXX - MSVC 19.0.24215.1.
- Проверка работоспособности компилятора C: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe
- Проверить работоспособность компилятора C: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe - работает
- Обнаружение информации ABI компилятора C
- Обнаружение информации ABI компилятора C - выполнено
- Проверить работоспособность компилятора CXX: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe
- Проверить работоспособность компилятора CXX: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe - работает
- Обнаружение информации ABI компилятора CXX
- Обнаружение информации ABI компилятора CXX - выполнено
- Обнаружение функций компиляции CXX
- Обнаружение функций компиляции CXX - выполнено
- Найден PythonInterp: C: /Users/NUC-Sonavex/AppData/Local/Programs/Python/Python35/python.exe (найдена подходящая версия "3.5.3", минимально необходимая "2.7")
- Ищем pthread.h
- Ищем pthread.h - не нашел
- Найденные темы: ИСТИНА
- Версия Boost: 1.61.0
- Обнаружены следующие библиотеки Boost:
-- система
-- нить
-- файловая система
- хроно
- date_time
- атомный
- Найдены GFlags: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Обнаружены gflags (включая: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, библиотека: gflags_shared)
- Найден Glog: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Найден glog (включая: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, библиотека: glog)
- Найден Protobuf: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/bin/protoc.exe (найдена версия "3.1.0")
- Найден компилятор PROTOBUF: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/bin/protoc.exe
- Найден LMDB: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Найден lmdb (включая: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, библиотека: lmdb)
- Найдено LevelDB: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Найден LevelDB (включая: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, библиотека: leveldb)
- Найдено ZLIB: оптимизировано; C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/lib/caffezlib.lib; отладка; C: /Users/NUC-Sonavex/.caffe/dependencies/_libraries_v1 .1.0 / библиотеки / lib / caffezlibd.lib (найдена версия "1.2.8")
- Найдено Snappy: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Найден Snappy (включая: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, библиотека: snappy_static; оптимизировано; C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_vibraries_v1 .1.0 / библиотеки / lib / caffezlib.lib; отладка; C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/lib/caffezlibd.lib)
- - CUDA отключен. Строительство без этого ...
- Найдено, что ViennaCL включает: C: / DL / viennacl
Ошибка CMake: в этом проекте используются следующие переменные, но для них установлено значение NOTFOUND.
Установите их или убедитесь, что они установлены и правильно протестированы в файлах CMake:
OPENCL_INCLUDE_DIRS
используется как подключаемый каталог в каталоге C: / DL / caffe / scripts / build / CMakeFiles / CMakeTmp
_OPENCL_64_LIBRARIES
связано целевой "cmTC_7259e" в каталоге C: / DL / caffe / scripts / build / CMakeFiles / CMakeTmp

Ошибка CMake в cmake / Modules / FindOpenCL. cmake: 106 (TRY_COMPILE):
Не удалось настроить систему сборки тестового проекта.
Стек вызовов (сначала последний вызов):
cmake / Модули / FindViennaCL. cmake: 37 (find_package)
cmake / Зависимости. cmake: 116 (find_package)
CMakeLists. txt: 127 (включая)

- Настройка не завершена, возникли ошибки!
См. Также «C: /DL/caffe/scripts/build/CMakeFiles/CMakeOutput.log».
См. Также «C: /DL/caffe/scripts/build/CMakeFiles/CMakeError.log».
ОШИБКА: не удалось выполнить настройку.

@ bxk-sonavex Как я уже упоминал выше, некоторые патчи Intel не были проверены и объединены, поэтому попробуйте ветку github.com/01org/caffe inference-optimize. Вы можете обратиться к следующей вики для получения подробных инструкций по платформе Intel:
https://github.com/01org/caffe/wiki/clCaffe

@gongzg Это может не помочь, учитывая, что некоторые части реализации Intel OpenCL не работают в Windows. Но работаю над этим, как известно :)

@ naibaf7 Означает ли это, что эта ветка вообще НЕ работает с Intel iCPU в Windows? Тогда где я могу найти версию Caffe, поддерживающую OpenCL в Windows с Intel iGPU?

@gongzg Вы предложили clCaffe для работы в Windows с Intel iGPU?

@ bxk-sonavex Он будет работать, но не со свертками Intel, поэтому производительность не оптимальная.
На данный момент я думаю, что вы не можете этого найти, но я работаю над решением.
Ваша проблема больше связана с отсутствием заголовков OpenCL. Какой OpenCL вы установили? Intel SDK?

@ naibaf7 Да, я использую Intel SDK v6.3. Я нашел здесь обходной путь (https://github.com/BVLC/caffe/issues/5575), и он работает для меня. Теперь я скомпилировал ветку opencl. Далее я протестировал свою сборку, используя пример mnist из папки примеров. При использовании ЦП (путем изменения lenet_solver.prototxt) train_lenet работал без каких-либо проблем, а конечная точность обучения составила 0,9902, что соответствует ожиданиям.

I1107 13: 53: 43.139747 3512 решатель. cpp: 421 ] Тестовый чистый вывод # 0: точность = 0,9902
I1107 13: 53: 43.139747 3512 решатель. cpp: 421 ] Тестовый чистый вывод №1: убыток = 0,0277191 (* 1 = 0,0277191 убыток)

Однако при использовании графического процессора у меня появилось окно с сообщением об ошибке «caffe.exe перестал работать», а точность составляет всего 0,1009.

I1107 14: 11: 15.651798 7872 решатель. cpp: 421 ] Тестовый чистый вывод # 0: точность = 0,1009
I1107 14: 11: 15.651798 7872 решатель. cpp: 421 ] Тестовый чистый вывод №1: убыток = 87,31 (* 1 = убыток 87,31)

Не могли бы вы рассказать мне о том, что произошло? Как это решить? Или это то, что упомянул @gongzg ?

Это может не помочь, учитывая, что некоторые части реализации Intel OpenCL не работают в Windows. Но работаю над этим, как известно :)

Места, которые я изменил со значения по умолчанию build_win.cmd :

set WITH_NINJA=1 
set CMAKE_BUILD_SHARED_LIBS=1 
set PYTHON_VERSION=3 
set RUN_INSTALL=1

Стоит ли устанавливать USE_INTEL_SPATIAL ?

Если установлено USE_INTEL_SPATIAL = 1, ветвь не может быть скомпилирована. Ошибка

ниндзя: сборка остановлена: подкоманда не удалась.

@ naibaf7 Версия 01org теперь отлично работает в Windows. Я все еще занят другими делами, поэтому у меня нет времени, чтобы отправить все исправления в эту ветку OpenCL. Сделаю это, когда у меня будет время, в ближайшем будущем. @ bxk-sonavex Вы можете попробовать версию 01org после вики-страницы, и если у вас возникнут какие-либо проблемы, сообщите мне.

@gongzg Спасибо! Следуя инструкциям на https://github.com/01org/caffe/wiki/clCaffe#windows -support-for-intel-gen-platform, я получил сообщение об ошибке:

fatal error C1083: Cannot open include file: 'caffe/proto/caffe.pb.h': No such file or directory

К вашему сведению:
https://github.com/ptillet/isaac.git совместим только с оборудованием NVIDIA и даже не может быть скомпилирован, поэтому я клонирую https://github.com/intel/isaac.

ОБНОВИТЬ:
Файлы сгенерированы вручную через

build\libraries\bin\protoc.exe src\caffe\proto\caffe.proto --cpp_out=.\

Предположительно, файлы должны создаваться автоматически.

Затем я получил следующую ошибку:

"C:\DL\clCaffe\build\src\caffe\test\runtest.vcxproj" (default target) (1) ->
(CustomBuild target) ->
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code -1073741515. [C:\DL\clCaffe\build\src\caffe\test\runtest.vc
xproj]

    2345 Warning(s)
    1 Error(s)

Time Elapsed 00:03:55.08
ERROR: Tests failed

Отключил RUN_TESTS и сборку третий раз ...

@ bxk-sonavex Похоже, он уже был успешно построен. Вам необходимо скопировать файлы dll в каталог исполняемых файлов:
"
Обратите внимание, что после успешного завершения сборки, прежде чем вы попытаетесь запустить приложение, вам необходимо скопировать dl.dll (dlfcn) и isaac.dll (isaac) в один и тот же каталог или поместить их в системный каталог.
"

@gongzg Добавил папки двух dll в системный путь вместо того, чтобы копировать их в тестовую папку. Теперь появилась еще одна ошибка, которая выглядит довольно серьезной ...

"C:\DL\clCaffe\build\src\caffe\test\runtest.vcxproj" (default target) (1) ->
(CustomBuild target) ->
  CUSTOMBUILD : Fatal error : Intel iGPU device found but doesn't support cl_intel_subgroups_short. [C:\DL\clCaffe\build\src\caffe\test\runtest.vcxproj]

    2333 Warning(s)
    1 Error(s)

Time Elapsed 00:05:41.97
ERROR: Tests failed

Я использую Intel Iris Plus Graphics 650 и intel_sdk_for_opencl_setup_6.3.0.1904. Есть мысли и решение?

@ bxk-sonavex Вам необходимо обновить драйвер графики Intel до последней версии.

@gongzg Спасибо, что решила ошибку компиляции. При запуске тестов у меня возникла куча ошибок типа (может не улавливать все)

C:\DL\clCaffe\src\caffe\test\test_argmax_layer.cpp(132): error : Expected: (bottom_data[i * dim + j]) <= (max_val), actual: -0.402832 vs -0

C:\DL\clCaffe\src\caffe\test\test_convolution_layer_spatial.cpp(735): error : The difference between top_data[i] and ref_top_data[i] is 1.8
077674604790599e+28, which exceeds delta, where [C:\DL\clCaffe\build\src\caffe\test\runtest.vcxproj]
  top_data[i] evaluates to -1.8077674604790599e+28,
  ref_top_data[i] evaluates to 7.1034564971923828, and
  delta evaluates to 9.9999997473787516e-05.

C:\DL\clCaffe\src\caffe\test\test_convolution_layer_spatial.cpp(735): error : The difference between top_data[i] and ref_top_data[i] is 1
.803808228419822e+28, which exceeds delta, where [C:\DL\clCaffe\build\src\caffe\test\runtest.vcxproj]

    2418 Warning(s)
    17672 Error(s)

Time Elapsed 00:10:25.65
ERROR: Tests failed

Стоит ли беспокоиться об этих ошибках?

Так или иначе, я тестирую сборку на примере mnist. Он очень медленный , даже намного медленнее, чем оригинальный Caffe, использующий CPU. И есть предупреждения (повторяются несколько раз)

warning: Linking two modules of different data layouts: '' is 'e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024' whereas '<origin>' is 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64-v96:128:128-v128:128:128-v192:256:256-v256:256:256-v512:512:512-v1024:1024:1024-n8:16:32:64'

warning: Linking two modules of different target triples: ' is 'spir64' whereas '<origin>' is 'vISA_64'

Любая идея?

@ bxk-sonavex

Почему вы пока не работаете с запущенным caffe в Linux? Разработчики, я думаю, больше сосредоточены на том, чтобы код FP16, INT8 и т. Д. Работал гладко, особенно naibaf7 (david).

Со временем придет надлежащая поддержка Windows.

Хотя это всего лишь предложение.

@atlury Я бы с удовольствием !!! Но наша система - Windows 10 + Intel Iris ... Есть идеи, когда появится поддержка Windows? Или работает любая другая платформа DL (с использованием GPU)?

@gongzg Просто хочу
ЦП: 7 минут 33 секунды, точность = 0,9914
GPU: 29 минут 34 секунды, точность = 0,8406

Интересно, какова производительность в Linux. Тогда я мог бы иметь общее представление о том, насколько ускорится использование Intel GPU (OpenCL) по сравнению с CPU. Спасибо!!

@ bxk-sonavex

Бен, вы включили ядра opencl? Вы пробовали использовать INTEL_SPATIAL?

@atlury Что значит «включить ядра opencl»? Да, я выполнил инструкции здесь (https://github.com/01org/caffe/wiki/clCaffe#how-to-build) и установил USE_INTEL_SPATIAL = 1 в командной строке (не изменяя напрямую файл build_win.cmd ).

ОБНОВИТЬ:
ИНФОРМАЦИЯ: ================================================== ============
ИНФОРМАЦИЯ: Резюме:
ИНФОРМАЦИЯ: ================================================== ============
ИНФОРМАЦИЯ: MSVC_VERSION = 14
ИНФОРМАЦИЯ: WITH_NINJA = 0
ИНФОРМАЦИЯ: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
ИНФОРМАЦИЯ: CPU_ONLY = 0
ИНФОРМАЦИЯ: USE_CUDA = 0
ИНФОРМАЦИЯ: USE_CUDNN = 0
ИНФОРМАЦИЯ: USE_GREENTEA = 1
ИНФОРМАЦИЯ: USE_LIBDNN = 1
ИНФОРМАЦИЯ: USE_OPENMP = 0
ИНФОРМАЦИЯ: USE_INDEX64 =
ИНФОРМАЦИЯ: USE_INTEL_SPATIAL = 1
ИНФОРМАЦИЯ: USE_ISAAC = 1
ИНФОРМАЦИЯ: CMAKE_CONFIG = Выпуск
ИНФОРМАЦИЯ: USE_NCCL = 0
ИНФОРМАЦИЯ: CMAKE_BUILD_SHARED_LIBS = 0
ИНФОРМАЦИЯ: PYTHON_VERSION = 2
ИНФОРМАЦИЯ: BUILD_PYTHON = 0
ИНФОРМАЦИЯ: BUILD_PYTHON_LAYER = 0
ИНФОРМАЦИЯ: BUILD_MATLAB = 0
ИНФОРМАЦИЯ: PYTHON_EXE = "python"
ИНФОРМАЦИЯ: RUN_TESTS = 1
ИНФОРМАЦИЯ: RUN_LINT = 0
ИНФОРМАЦИЯ: RUN_INSTALL = 1
ИНФОРМАЦИЯ: ================================================== ============

@ bxk-sonavex

Бен, вам нужно будет включить INTEL_SPATIAL для всех сверточных слоев в свой deploy.proto. Я лично тестировал это в реальном времени в Linux.

https://github.com/BVLC/caffe/pull/5165

«Я тестировал ТВ-стик Intel, веб-камеру с использованием ядер Intel Spatial и 19-слойной модели vgg. Я могу получать классификацию в реальном времени, и все это менее 3,5 Вт»

Windows тоже должна работать.

@ bxk-sonavex для проблемы с версией 01org, пожалуйста, откройте там вопрос. Есть некоторые сбои тестов из-за проблем с точностью FP16 в этих тестовых примерах градиента, что не является критичным. Производительность очень низкая, что должно быть вызвано автонастройкой. При повторном запуске он должен быть намного быстрее. Сначала вы можете попробовать использовать build / tools / caffe для измерения производительности AlexNet.

Кстати, я только что заметил, что @CNugteren несколько дней назад выпустил новую версию 1.2.0 своей автоматически настроенной библиотеки CLBlast. Я проверил его, и, похоже, он работает с Caffe на моем ноутбуке Lenovo с Windows 10 со старым графическим процессором Intel 4400 (а также в Linux) - так что это может быть хорошим дополнением к Caffe, поскольку предыдущая версия CLBlast имела сегментарный сбой в Windows!

Если вам интересно, вы можете проверить скорость Caffe с помощью LibDNN и CLBlast, например, на SqueezeDet, как показано ниже (такая же процедура для Windows и Linux):

$ pip install ck
$ ck pull repo --url=https://github.com/dividiti/ck-caffe
$ ck install package:lib-caffe-bvlc-opencl-libdnn-clblast-universal-20171015

Это займет некоторое время, поскольку CK попытается обнаружить вашу среду и компиляторы,
и затем восстановит все необходимые зависимости на вашем компьютере.

После этого вы можете просто установить SqueezeDet и запустить внутреннее время:

$ ck install package:caffemodel-deepscale-squeezenet-1.1
$ ck run program:caffe --cmd_key=time_gpu

Первый запуск может быть немного медленным из-за компиляции и кеширования ядра, поэтому второй запуск будет намного быстрее!

Вы также можете сравнить классификацию изображений:

$ ck pull repo:ctuning-datasets-min
$ ck run program:caffe --cmd_key=classify

Не имеет отношения к Intel, но просто замечание о том, что при компиляции Caffe с CLBlast 1.2.0 для Android ARM64 с использованием Android GCC 4.9.x, похоже, есть небольшая ошибка («to_string» не найдена в классе std):

$ ck install package:lib-caffe-bvlc-opencl-libdnn-clblast-universal-20171015 --target_os=android21-arm64 --env.DISABLE_DEVICE_HOST_UNIFIED_MEMORY=ON
$ ck compile program:caffe-time-opencl --target_os=android21-arm64
$ ck run program:caffe-time-opencl --target_os=android21-arm64

Было бы неплохо исправить это, так как CLBlast 1.1.0 отлично работает на Android ... В таком случае он будет работать с Caffe на всех платформах.

Надеюсь, это поможет и хороших выходных!

кажется, есть небольшая ошибка при компиляции Caffe с CLBlast 1.2.0 для Android ARM64 с использованием Android GCC 4.9.x ("to_string" не найден в классе std):

Не уверены, имеете ли вы в виду, что это ошибка в CLBlast или в Caffe? В любом случае, в CLBlast это реализовано в специальном заголовке Android . Возможно, это можно было бы использовать и в Caffe?

@CNugteren - Я только что проверил, проблема не в CLBlast. Я просто забыл патч в CK, который исправлял LibDNN для Android (по моей вине). Я добавил его (https://github.com/dividiti/ck-caffe/blob/master/package/lib-caffe-bvlc-opencl-clblast-universal/patch.android/android.fgg.patch3), и теперь это возможно скомпилировать Caffe с CLBlast и libDNN. Я проверил классификацию и примеры тестов на своем Samsung S7 - работает нормально. Прошу прощения за эту ложную тревогу и спасибо за выпуск нового CLBlast - теперь я могу использовать его в Caffe на Linux, Windows и Android.

@gfursin Это версия, использующая CPU или GPU (OpenCL)? Я думал, что это говорит о том, что OpenCL еще не работает в Windows (или, по крайней мере, еще не работает с Intel iGPU). Что вы используете в Windows?

@ bxk-sonavex

Бен извини за задержку с ответом. Меня не было на месте.

Процитировать @ naibaf7
«Альтернативно, метод свертки (« движок ») может быть выбран / перезаписан в сетевом файле prototxt»

Таким образом, добавьте запись "engine: INTEL_SPATIAL" во все спецификации сверточного уровня.

Возьмите AlexNet в качестве примера, отредактируйте файл, скажем, $ CAFFE_ROOT / models / bvlc_alexnet / train_val.prototxt, и добавьте следующую строку, чтобы вычислить слой conv1 с использованием пространственной свертки. Аналогичным образом измените другие слои

 layer {
   name: "conv1"
   type: "Convolution"
   bottom: "data"
   top: "conv1"
   param {
     lr_mult: 1
     decay_mult: 1
   }
   param {
     lr_mult: 2
     decay_mult: 0
   }
   convolution_param {
     num_output: 96
     kernel_size: 11
     stride: 4
     engine: INTEL_SPATIAL      <-------------------------- this line!
     weight_filler {
       type: "gaussian"
       std: 0.01
     }
     bias_filler {
       type: "constant"
       value: 0
     }
   }
 }

Изменить: плохо, я вижу, что вы открыли еще один поток и, похоже, немного продвинулись.

@ bxk-sonavex - я использую версию Caffe OpenCL (с libDNN и CLBlast) в Windows со старым графическим процессором Intel 4400 БЕЗ Intel Spatial - похоже, он работает нормально, но может быть неоптимальным. Вот список устройств Caffe («ck run program: caffe --cmd_key = query_gpu_opencl»):
output_caffe_opencl_devices.txt

Вот результат классификации изображений в Windows с указанной выше версией Caffe OpenCL и GoogleNet:
output_caffe_opencl_image_classification.txt

Я в основном проверяю логический вывод / обнаружение объектов на этом этапе (мы пытаемся унифицировать установку DNN, тестирование и оптимизацию для всех возможных платформ), поэтому я особо не подчеркивал другие возможности и модели Caffe в Windows с OpenCL ...

Я также только что попытался скомпилировать Caffe OpenCL с Intel Spatial ON ("ck install package: lib-caffe-bvlc-opencl-libdnn-clblast-universal --env.USE_INTEL_SPATIAL = ON"), и я наблюдаю те же 2 ошибки сборки, что и сообщалось ранее @atlury):
output_caffe_build_error_with_intel_spatial.txt

Есть ли сценарий сборки для Linux (Ubuntu 16.04)? Я получаю ошибки при попытке скомпилировать

@rachithayp Тщательно следуйте инструкциям, он будет работать даже на серии 18.0x. Мы это проверили.

Привет @rachithayp . Обратите внимание, что вам, вероятно, потребуется исправить ядро, чтобы Intel OpenCL работал в Ubuntu 16.04: https://github.com/dividiti/ck-caffe/wiki/Installation#Intel_CPUGPU_Linux .

Несколько недель назад мне удалось собрать OpenCL-ветвь Caffe на моем Ubuntu 18.04 (ноутбук Lenovo T470p с Intel GPU) без патчей ядра и с последней версией Intel OpenCL через CK:

$ sudo pip install ck

$ ck pull repo --url=https://github.com/ctuning/ck-caffe

$ ck install package:lib-caffe-bvlc-opencl-viennacl-universal --env.USE_INTEL_SPATIAL=ON --env.CAFFE_BUILD_PYTHON=ON

CK попытается обнаружить ваши доступные компиляторы, библиотеки OpenCL и другие зависимости и вызовет cmake для Caffe. Если сборка прошла успешно, вы можете проверить установку с помощью виртуального окружения CK:

$ ck show env
$ ck virtual env --tags=lib,caffe
> python
import caffe

Вы также можете попробовать классификацию изображений следующим образом:

$ ck compile program:caffe-classification-opencl --speed
$ ck run program:caffe-classification-opencl

Удачи.

cc @ ens-lg4 и @psyhtest ...

@atlury Я смог скомпилировать, используя приведенный ниже cmake:
cmake .. -DUSE_CUDA = ВЫКЛ -DBUILD_docs = 0 -DOPENCL_LIBRARIES = <> -DOPENCL_INCLUDE_DIRS = <>

Но попытка компиляции с INTEL_SPATIAL_ON дает следующие ошибки:
cmake .. -DUSE_GREENTEA = ON -DUSE_CUDA = OFF -DUSE_INTEL_SPATIAL = ON -DBUILD_docs = 0 -DOPENCL_LIBRARIES = <> -DOPENCL_INCLUDE_DIRS = <>

/ главная / Intel / Документы / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 19 : 1: ошибка: 'LibDNNConvSpatial' не называет тип
LibDNNConvSpatial:: LibDNNConvSpatial (конфигурация LibDNNConvConfig) {
^
/ главная / Intel / Документы / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 117 : 25: ошибка: ожидаемый инициализатор перед токеном '<'
строка LibDNNConvSpatial:: generate_fw_defs () {

Есть идеи, что может быть не так ?. Также в ветке opencl нет папки include / caffe / greentea, поэтому я скопировал ее с https://github.com/01org/caffe .

@rachithayp
Можете попробовать инструкцию из главы ниже? Это черновой вариант главы, посвященной установке, из нашей будущей книги по opencl caffe. Спасибо @ naibaf7

Я надеюсь, что это прольет свет и поможет вам в ваших начинаниях с opencl caffe.

Python-глубокое обучение-установка-глава.pdf

@ bxk-sonavex - я использую версию Caffe OpenCL (с libDNN и CLBlast) в Windows со старым графическим процессором Intel 4400 БЕЗ Intel Spatial - похоже, он работает нормально, но может быть неоптимальным. Вот список устройств Caffe («ck run program: caffe --cmd_key = query_gpu_opencl»):
output_caffe_opencl_devices.txt

Вот результат классификации изображений в Windows с указанной выше версией Caffe OpenCL и GoogleNet:
output_caffe_opencl_image_classification.txt

Я в основном проверяю логический вывод / обнаружение объектов на этом этапе (мы пытаемся унифицировать установку DNN, тестирование и оптимизацию для всех возможных платформ), поэтому я особо не подчеркивал другие возможности и модели Caffe в Windows с OpenCL ...

Я также только что попытался скомпилировать Caffe OpenCL с Intel Spatial ON ("ck install package: lib-caffe-bvlc-opencl-libdnn-clblast-universal --env.USE_INTEL_SPATIAL = ON"), и я наблюдаю те же 2 ошибки сборки, что и сообщалось ранее @atlury):
output_caffe_build_error_with_intel_spatial.txt

ваш HD 4400 работает быстрее с кофе, чем с процессором?
Я скомпилировал clCaffe и запустил его на своем HD 5500, но он в 5 раз медленнее, чем CPU (i3 5005U)
Не знаю почему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

lixin7895123 picture lixin7895123  ·  3Комментарии

dfotland picture dfotland  ·  3Комментарии

shiorioxy picture shiorioxy  ·  3Комментарии

prathmeshrmadhu picture prathmeshrmadhu  ·  3Комментарии

hawklucky picture hawklucky  ·  3Комментарии