Caffe: إرشادات التثبيت المناسبة لفرع Caffe opencl لوحدة معالجة رسومات Intel GPU

تم إنشاؤها على ١٦ ديسمبر ٢٠١٦  ·  87تعليقات  ·  مصدر: BVLC/caffe

يؤسفني أنه لا بد لي من فتح هذا ولكن في كل من فرع opencl github ومنتديات google ليس لديهما أي نوع (محدث) إرشادات التثبيت خطوة بخطوة لتثبيت Caffe Opencl على Intel GPU مع برامج تشغيل Intel Opencl خاصة لشخص جديد.

(أ) هل ما زالت هذه التعليمات تعمل؟
cmake -DUSE_GREENTEA = تشغيل -DUSE_INTEL_SPATIAL = تشغيل -DUSE_ISAAC = تشغيل path_to_caffe_source
جعل -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 -DBUILD_python = OFF -DBUILD_python = OFF -DBUILD_python = OFF -DBUILD_python

(ب) هل لا تزال هناك حاجة إلى atlaspack لتجميع opencl-caffe عندما يكون clblas موجود ؟؟؟ يستمر السؤال عن أطلسباك ؟؟؟

(ج) ماذا عن Vienna CL؟ هل هذا الفرع لا يزال يعتمد عليهم؟ هل هناك حاجة؟

(د) ما هو لبنان؟ بدلا من؟

(هـ) ماذا عن ISAAC؟

(و) يتحدث فرع windows على سبيل المثال "إذا لم يتم تثبيت CUDA ، فسيتم استخدام Caffe افتراضيًا إلى إنشاء CPU_ONLY" هل هذا يعني أنه لن يعمل في وضع Opencl في الإصدارات غير cuda ؟؟

يرجى التحديث وتقديم التعليمات خطوة بخطوة
شكرا لك

OpenCL question windows

التعليق الأكثر فائدة

تضمين التغريدة
يوجد قسم Windows في الملف التمهيدي يوجه كيفية التحويل البرمجي والتثبيت على Windows.
الخطوة الوحيدة المفقودة في هذا الوصف هي تنزيل ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

يمكن وضعه في أي من المسارات حيث سيجده CMake ، مثل بجوار المجلد الذي نسخت فيه Caffe.

تختلف تعليمات الإنشاء عن تعليمات Linux ، نظرًا لأنه برنامج نصي يعتني تلقائيًا بتكوين CMake وتنزيل التبعيات.

عادة لا داعي للقلق بشأن التكوين على Windows ، لأنه مصمم للعمل فقط. ومع ذلك سأقدم لك شرحًا سريعًا:
(أ) لا ولا. استخدم scripts/build_win.cmd كما هو موضح في الملف التمهيدي.
(ب) نعم ، بغض النظر عن كيفية تجميعها ، هناك حاجة دائمًا إلى CPU BLAS. لكن build_win.cmd سيهتم بذلك نيابة عنك ، والتكوين الافتراضي هو استخدام OpenBLAS.
(ج) نعم ، يلزم ViennaCL ، استنساخ من هنا: https://github.com/viennacl/viennacl-dev
(د) LibDNN هو المحرك الافتراضي لمحرك الالتفاف لوحدات معالجة الرسومات OpenCL ، وهو بديل لـ cuDNN.
تتوفر أيضًا نواة Intel إضافية لوحدات معالجة الرسومات Intel وتمكينها افتراضيًا.
(هـ) تعتبر ISAAC و clBLAS و CLBlast اختيارية تمامًا. تحتاج إلى تجميع هذه بشكل منفصل على Windows وإضافتها إلى التبعيات إذا كنت تريد استخدامها. أنا لا أضمن أو أدعم تجميع أي من هذه المكتبات ، فهي مدعومة من قبل المشرفين على المشروع المعنيين.
(و) لا ، في فرع OpenCL ، هذا ليس صحيحًا. الافتراضي هنا هو USE_GREENTEA = ON ، USE_CUDA = OFF ، CPU_ONLY = OFF.

سوف أقوم بتحديث الملف التمهيدي بعد عيد الميلاد عندما يكون لدي عطلة. للأسف ليس لدي الوقت الآن للحصول على تفاصيل تفصيلية خطوة بخطوة.
CC: willyd

ال 87 كومينتر

تضمين التغريدة
يوجد قسم Windows في الملف التمهيدي يوجه كيفية التحويل البرمجي والتثبيت على Windows.
الخطوة الوحيدة المفقودة في هذا الوصف هي تنزيل ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

يمكن وضعه في أي من المسارات حيث سيجده CMake ، مثل بجوار المجلد الذي نسخت فيه Caffe.

تختلف تعليمات الإنشاء عن تعليمات Linux ، نظرًا لأنه برنامج نصي يعتني تلقائيًا بتكوين CMake وتنزيل التبعيات.

عادة لا داعي للقلق بشأن التكوين على Windows ، لأنه مصمم للعمل فقط. ومع ذلك سأقدم لك شرحًا سريعًا:
(أ) لا ولا. استخدم scripts/build_win.cmd كما هو موضح في الملف التمهيدي.
(ب) نعم ، بغض النظر عن كيفية تجميعها ، هناك حاجة دائمًا إلى CPU BLAS. لكن build_win.cmd سيهتم بذلك نيابة عنك ، والتكوين الافتراضي هو استخدام OpenBLAS.
(ج) نعم ، يلزم ViennaCL ، استنساخ من هنا: https://github.com/viennacl/viennacl-dev
(د) LibDNN هو المحرك الافتراضي لمحرك الالتفاف لوحدات معالجة الرسومات OpenCL ، وهو بديل لـ cuDNN.
تتوفر أيضًا نواة Intel إضافية لوحدات معالجة الرسومات Intel وتمكينها افتراضيًا.
(هـ) تعتبر ISAAC و clBLAS و CLBlast اختيارية تمامًا. تحتاج إلى تجميع هذه بشكل منفصل على Windows وإضافتها إلى التبعيات إذا كنت تريد استخدامها. أنا لا أضمن أو أدعم تجميع أي من هذه المكتبات ، فهي مدعومة من قبل المشرفين على المشروع المعنيين.
(و) لا ، في فرع OpenCL ، هذا ليس صحيحًا. الافتراضي هنا هو USE_GREENTEA = ON ، USE_CUDA = OFF ، CPU_ONLY = OFF.

سوف أقوم بتحديث الملف التمهيدي بعد عيد الميلاد عندما يكون لدي عطلة. للأسف ليس لدي الوقت الآن للحصول على تفاصيل تفصيلية خطوة بخطوة.
CC: willyd

@ naibaf7
شكرا على الاستجابة السريعة. ماذا عن تعليمات Linux؟

هل ما زالت هناك حاجة إلى OpenCL BLAS و ISAAC ؟؟
https://github.com/01org/caffe/wiki/clCaffe

تضمين التغريدة
طريقتان على 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
  • كودا

شكرا @ naibaf7
وأيضًا بالنسبة إلى Linux ، فإن LIBDNN لمعظم رقائق nVidia و AMD فقط؟ وهل يجب علينا استخدام Intel المكاني لـ Intel iGPUs؟

تضمين التغريدة
لا يدعم Intel المكاني الانتشار الخلفي الفعال وليس كل أشكال التلافيف ، ولكن نعم ، إنه أسرع انتشار للأمام على Intel iGPUs.
لكني أقترح عليك تجربة كليهما والتحقق من أفضل ما يناسب شبكاتك وأجهزتك.

@ naibaf7

فابيان ، سوف تقوم النوافذ ببناء دعم الترجمة باستخدام Mingw-64. لطفا دعني اعرف. إذا كانت هناك تعليمات خاصة به؟ استوديو Mocosoft منتفخ للغاية ..

atlury حاليًا لا ، ليس هذا ما willyd هو المساهم الرئيسي
على الرغم من أن Microsoft studio قد يكون منتفخًا بعض الشيء ، إلا أنه مناسب تمامًا لأن willyd قام مسبقًا

ليس لدي أي نية لدعم mingw-64 لأن CUDA لا يدعم mingw كمترجم مضيف على windows. ومع ذلك ، أرحب بأي علاقات عامة تتعلق بدعم mingw64 إذا لم تضيف الكثير من التعقيد إلى البنية.

تضمين التغريدة
رائع ، ما اعتقدته. أنا في هذه الحالة أؤيد البساطة ، لأن دعم Windows بدون MinGW64 لا يبدو مشكلة كبيرة بالنسبة لي. من الأفضل إلى حد ما استخدام المترجم القياسي مع كل نظام تشغيل خاص به.
أنا قلق في الغالب بشأن الدعم الزائد عندما يستخدم الأشخاص تكوينات بناء صعبة.

@ naibaf7

هل يتضمن بناء windows opencl دعمًا للمحرك: مكاني؟ عندما أقوم بتضمين المحرك: SPATIAL أو المحرك: INTEL_SPATIAL ، فإنه يحصل على أحد الأخطاء التالية

_Layer conv1 لها محرك غير معروف.
_خطأ في تحليل تنسيق النص caffe.NetParameter: 18: 3: قيمة تعداد غير معروفة لـ "SPATIAL" للحقل "المحرك" ._

الويكي مربك read.me https://github.com/BVLC/caffe/tree/opencl

يذكر كلا من _إضافة محرك الإدخال: SPATIAL_ لجميع مواصفات طبقة الالتفاف. بالإضافة إلى _ "المحرك: INTEL_SPATIAL <-------------------------- هذا الخط!" _

أي واحد؟

وهو يعمل بشكل جيد بدون المحرك: مكاني في prototxt.

_opencl-caffe-test.exe imagenet_deploy.prototxt bvlc_reference_caffenet.caffemodel imagenet_mean.binaryproto synset_words.txt truck.jpg
استخدم GPU مع معرف الجهاز 0
---------- التنبؤ بالشاحنة. jpg ----------
0.9872 - "n03417042 شاحنة لجمع القمامة ، عربة الغبار"
0.0110 - "n04467665 شاحنة مقطورة ، مقطورة جرار ، منصة شاحنات ، منصة حفر ، شاحنة مفصلية ، نصف"
0.0013 - "n03496892 حصادة ، آلة حصادة"
0.0002 - "n04428191 الدراس ، الدراس ، آلة الدرس"
0.0001 - "n04461696 شاحنة سحب ، عربة سحب ، حطام" _

هنا أيضًا بعض الملاحظات "الأخرى"
أ) يعمل بشكل أفضل عند تجميعه كـ DLL بدلاً من ثابت. يحل الخطأ بشكل خاص _ "فشل التحقق: Registry.count (النوع) == 1 (0 مقابل 1) نوع الطبقة غير معروف" _ (visual studio 2015)
ب) لا يبدو أنه يلتقط OpenCL.lib ، لذا فإن الحل البديل هو نسخه يدويًا من مجلد opencl-sdk إلى مجلد الإنشاء (ماذا يتوقع أن يكون اسم متغير المسار؟)
ج) يمكن تجميع المكتبات المستخرجة في مجلد الإنشاء إلى الأحدث (على سبيل المثال ، 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)
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)
I0108 12: 35: 04.902592 19872 مشترك. cpp: 416 ] الاسم: Intel (R) Core (TM) i5-4210U CPU @ 1.70GHz
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)
I0108 12: 35: 04.911598 19872 مشترك. cpp: 416 ] الاسم: Intel (R) Core (TM) i5-4210U CPU @ 1.70GHz
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)

ومع ذلك ، لم يتم اختبار نواة إنتل المكانية بشكل كامل على 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 (للأسف ، يكون وقت الكافيين أبطأ بمقدار 2x تقريبًا من تشغيل caffe-cpu على 2-core i5-4210U ، ما لم أفعل شيئًا خاطئًا). ومع ذلك ، عند التحويل باستخدام USE_INTEL_SPATIAL = 1 ، أحصل أيضًا على نفس الخطأ مثل atlury (وأعتقد أن لدي نفس الجهاز على جهاز Lenovo X240). لدي فضول لمعرفة ما إذا كان استخدام INTEL_SPATIAL سيساعد في جعل تشغيل caffe-opencl أسرع على وحدة معالجة الرسومات هذه مقارنة بوحدة المعالجة المركزية ...

gfursin يجب أن يكون بهامش كبير. تتوقع LibDNN أن يكون لوحدة معالجة الرسومات بنية ذاكرة مختلفة عن تلك التي تمتلكها رقائق Intel ، لذا فهي لا تعمل بالشكل الأمثل في الوقت الحالي.
نحن نحقق حاليًا في كيفية إصلاح نواة Intel بحيث تعمل على Windows أيضًا.

ممتاز! شكرا جزيلا!

بالمناسبة ، atlury ، عند اختيار الجهاز 1 و 2 ، تعطل "Caffe time" في كل مرة بعد حوالي 10 ثوانٍ - هل كان لديك نفس السلوك؟ شكرا!

gfursin لا لم https://github.com/BVLC/caffe/pull/5165

هناك ورقة إنتل منشورة هنا (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 أيضًا للعمل مع dnn الصغير وهو أمر مثير (على الرغم من عدم وجود العديد من الطرز المدربة مسبقًا هناك). أريد أيضًا اختبار التكميم ومعرفة كيف يمكن أن يساعد opencl هناك (8 بت ، XNOR ، إلخ). أخيرًا ، سيكون اكتشاف الكائن في opencl في الوقت الفعلي رائعًا !!! آمل أن يتم طرح @ naibaf7 في بعض الضوء.

atlury سأعود إليك الأسبوع المقبل بخصوص الأسئلة الأكثر صعوبة.
يتم استخدام Intel المكاني تلقائيًا عندما تقوم بالتجميع مع تمكين الخيار.
لتجزئة الكائن واكتشافه ، أقترح عليك قراءة ورقة ISBI 2016 والتقرير الفني. لدي معماريات SK-Net و U-Net موصوفة هناك يمكنها القيام بذلك بسرعة كبيرة. يمكن تحويل AlexNet إلى مثل SK-Net.
تحتاج إلى استخدام LibDNN على الرغم من الحفاظ على انخفاض استخدام الذاكرة في SK / U-Net.

واو لقد قرأت للتو مقالتك ... يبدو أن مفهوم حبات Strided مثير للإعجاب للغاية. لا تخطف هذا الخيط ولكن كل هذه الأشياء ستحتاج في النهاية إلى اختبارها في Opencl تحت النوافذ ولكن قبل ذلك ...

هل هذا تطبيق بيثون فقط؟ لا c ++؟ هل هناك نماذج مدربة مسبقًا؟ هل هذا هو مكان الريبو https://github.com/naibaf7/PyGreentea/tree/master/examples ؟ نعم سأستخدم LibDNN ...

atlury نعم ، كانت الواجهة الأصلية هي C ++ لكننا انتقلنا إلى Python. ومع ذلك ، إذا كنت ترغب في تقديم البيانات من خلال HDF5 أو واجهة C ++ الخاصة بك ، فستعمل أيضًا. ما عليك سوى استخدام رموز مولد الشبكة التي أقدمها في python لمساعدتك في إنشاء prototxt الصحيح لشبكات SK / U-type.
إليك تقرير تقني أقدم قليلًا ولكنه كامل: https://arxiv.org/abs/1509.03371 ، وهو يتضمن أرقام الأداء قبل برمجة LibDNN.
لا نقدم نماذج مُدربة مسبقًا في هذه المرحلة نظرًا لأن مجموعات البيانات (تصنيف EM) التي نستخدمها في ولم يتم نشر نتائجنا بعد.

atlury يتم قياس بعض البيانات المعيارية باستخدام معايير convnet ويمكنك إعادة إنتاجها في النظام الأساسي الخاص بك. ليس لدينا أمثلة أخرى لمشاركتها علنًا حاليًا.

atlury - شكرًا جزيلاً على المراجع! واجهت العديد من المشاكل في تثبيت OpenCL for Intel GPU واستخدامه على Ubuntu في الماضي (اضطررت إلى إعادة تجميع Linux kernel) ، ولكن ربما تعمل أحدث برامج التشغيل بشكل جيد - تحتاج إلى التحقق من ذلك. بالمناسبة ، في # 5165 لديك لقطة لتصنيف كاميرا الويب + Caffe مع قياسات FPS - هل لي أن أسألك عن البرنامج الذي استخدمته لذلك؟ شكرا جزيلا!!!

تضمين التغريدة

الرجاء القيام بما يلي.

  1. استخدم http://cdimage.ubuntu.com/daily-live/current/

  2. تثبيت opencl SDK و opencl Run time من (تصحيح kernel غير مطلوب)
    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
    (أ) يرجى التجميع مع تمكين Viennacl و libdnn و intel spatial و opencv وما إلى ذلك. الرجاء إنشاء مكتبة مشتركة. لا أقوم بتمكين البايثون لأنني لا أستخدمه كثيرًا.

  4. نموذج القهوة VGG ، 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 لجميع الطبقات التلافيفية في ملف النشر

احصل على synset_words.txt

  1. اختبر باستخدام هذا البرنامج
    https://gist.github.com/atlury/f65fd41eb805cc5f77f666a59e71eae2

فقط تأكد من أن input_dim هو 1 (في proto الخاص بك) وليس 10 (أنت تعطيه صورة واحدة فقط في كل مرة) مع 3 قنوات وتغيير الحجم تلقائيًا.
input_dim: 1
input_dim: 3
input_dim: 224
input_dim: 224

أي مساعدة إضافية على سكايب: atlury أو gtalk: atlury

يرجى ملاحظة أن هذا سيعمل فقط في لينكس ولا يزال دعم opencl للنوافذ قيد العمل بواسطة @ naibaf7

شكرًا جزيلاً atlury على جميع التفاصيل - أقدر ذلك كثيرًا - 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 الخاصة بك غير صالحة ، وأنها تفتقر إلى بعض الرموز. هل يمكنك إخبارنا بالأجهزة التي لديك وما هي حزم OpenCL SDK التي قمت بتثبيتها؟
تأتي هذه المشكلة عادةً مع OpenCL SDKs القادمة من nVidia داخل CUDA. يجب أن تكون حزم SDK من Intel و AMD OpenCL مناسبة للإصدار 1.2 و 2.0.

@ naibaf7 شكرا جزيلا على الرد.

أقوم ببناء المكتبة على Windows 8 Pro 64 بت Dell مع Intel HD Graphics 4000 و NVIDIA NVS 5200M. وقم فقط بتثبيت أحدث إصدار من

لذلك في محاولة لاستخدام Intel OpenCL SDK في البناء ، قمت بإزالة CUDA وقمت ببعض التعديلات الأولية إلى

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 دون إعادة بناء kernel - شكرًا! لقد قمت أيضًا بتثبيت Caffe-OpenCL.

لا تزال هناك مشكلة في التخزين المؤقت لـ kernel ، لذا فإن تكلفة بدء التشغيل مرتفعة للغاية ، ولكن @ naibaf7 و psyhtest يحاولان تحسينها. الحل المؤقت لتسريع التخزين المؤقت للنواة بشكل طفيف هو اللعب بمتغيرات البيئة VIENNACL_CACHE_PATH و CUDA_CACHE_DISABLE (انظر https://github.com/dividiti/ck-caffe/issues/44#issuecomment-277205871).

لدي سؤال بالرغم من ذلك: لم أفهم كيفية إضافة محرك: INTEL_SPATIAL لجميع الطبقات التلافيفية في النشر. ما زلت مستخدمًا مبتدئًا (أنا في جانب المترجم أحاول تحسين المكتبات الفرعية). هل تمانع في أن ترسل لي عينة ، من فضلك - سيكون موضع تقدير كبير!

ملاحظة أخرى: إذا كان هناك أي اهتمام ، فقد أضفت دعمًا لتجميع 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 ما هو وضع دعم الويندوز الآن؟ أتساءل ما إذا كنت قد بدأت بالفعل في العمل على تمكين محرك إنتل المكاني للنوافذ أيضًا.

gongzg لقد بدأت في إعداد بيئة Windows على كمبيوتر Intel المحمول من أجل اختبار ذلك ، لكنني لم

@ naibaf7 شكرا على التحديث. بعد ذلك ، سوف أتحقق مما إذا كان لدينا بعض الموارد الداخلية لحل مشكلات المحرك المكاني البيني على Windows.

هل هذا الفرع يعمل مع windows و amd gpu؟

نعم إنه كذلك. يتم دعم وحدات معالجة الرسومات AMD بشكل كامل مع LibDNN في نظامي Windows و Linux. سيتبع دعم Intel GPU الكامل في 28 أبريل.

@ naibaf7
ديفيد ، هل يمكنك إخباري عندما يكون دعم Windows OpenCL جاهزًا مع Python لوحدة معالجة الرسومات Intel؟ لدي بعض الأشياء لاختبارها والإبلاغ عنها.

@ hillarycanas - أؤكد أيضًا أنني تمكنت من تجميع وتشغيل إصدار OpenCL من Caffe مع libDNN على AMD مع Windows 10 قبل بضعة أيام (استخدمت AMD E1-2500 APU القديم جدًا مع 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

تضمين التغريدة
هذا عظيم :)
يمكن أن ينتشر Caffe بسهولة مثل هذا :)

أهلا،

حاولت تشغيل فرع OpenCL الرسمي للكافيه الموجود في:
https://github.com/BVLC/caffe/tree/opencl على جهاز Mac الخاص بي مع تفاصيل الأجهزة التالية:
اسم الموديل: MacBook Pro
محدّد الطراز: MacBookPro12،1
اسم المعالج: Intel Core i5
سرعة المعالج: 2.7 جيجاهرتز
عدد المعالجات: 1
إجمالي عدد النوى: 2
ذاكرة التخزين المؤقت L2 (لكل مركز): 256 كيلو بايت
L3 Cache: 3 ميجا بايت
الذاكرة: 8 جيجا بايت
الرسومات: Intel Iris Graphics 6100 1536 ميجابايت

يمكنني تشغيل البرنامج التعليمي للتصنيف دون أي مشكلة. ومع ذلك ، عند التبديل إلى وضع GPU ، ومحاولة تشغيل net.forward () ، تموت النواة في كل مرة. هل هذا يعني أن هذا الفرع من OpenCL caffe لا يدعم بطاقة الرسومات المتكاملة من Intel؟

شكرا،

سال

saliltambe فرع OpenCL يدعم Intel iGPU. على الرغم من أن معظم الاختبارات تتم على نظام Linux ، إلا أنه يجب أن يعمل على نظام Mac أيضًا. ما هو الخطأ المحدد الذي واجهته عند تشغيل net.forward ()؟

gongzg شكرا جزيلا على الرد. تلقيت رسالة الخطأ التالية عند التشغيل في دفتر jupyter: "يبدو أن النواة قد ماتت. ستتم إعادة تشغيلها تلقائيًا." أقوم بتشغيل حجم دفعة صغير جدًا لذا لا أعتقد أن النواة تموت بسبب نفاد الذاكرة. علاوة على ذلك ، لا أحصل على خطأ عند التبديل إلى وضع GPU باستخدام: caffe.set_mode_gpu (). لا أحصل على الخطأ إلا عند تشغيل net.forward ().

تضمين التغريدة
نحتاج إلى مزيد من المعلومات: كيف جمعته (إصدار المترجم ، إعدادات 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-Compar -Wno-uninitialized

- علامات تصحيح أخطاء CXX: -g -fPIC -Wall -std = c ++ 11 -DCMAKE_BUILD -Wno-Sign-Compar -Wno-uninitialized

  • - نوع البناء: الإصدار
  • - BUILD_SHARED_LIBS: تشغيل
  • - BUILD_python: تشغيل
  • - BUILD_matlab: إيقاف
  • - BUILD_docs: تشغيل
  • - CPU_ONLY: متوقف
  • - USE_OPENCV: تشغيل
  • - USE_FFT: إيقاف
  • - USE_LEVELDB: تشغيل
  • - USE_LMDB: تشغيل
  • - USE_NCCL: إيقاف
  • - ALLOW_LMDB_NOLOCK: إيقاف
  • - USE_HDF5: تشغيل



    • - التبعيات:

  • - بلاس: نعم (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)
  • - كودا: لا



    • - بايثون:

  • - مترجم: /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)

  • - التوثيق:
  • - دوكسجين: لا
  • -- ملف التكوين :

  • -- تثبيت:
  • - مسار التثبيت: / Users / stambe / Programs / caffe-opencl / build / install

  • - تم التهيئة

CMake Warning (dev) في src / caffe / CMakeLists.txt:

لم يتم تعيين السياسة CMP0022: يحدد INTERFACE_LINK_LIBRARIES واجهة الارتباط. قم بتشغيل "cmake --help-policy CMP0022" للحصول على تفاصيل السياسة. استخدم الأمر cmake_policy لتعيين السياسة وقمع هذا التحذير.
الهدف "caffe" له خاصية 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 . 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 / lib / 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. lcblas ؛ -تسريع إطار العمل ؛ /usr/local/lib/libboost_python-mt.dylib

عند تشغيل make runtest -j8 ، يظهر لي الخطأ التالي:
stambe- osx: build stambe $ make runtest -j8
[1٪] الهدف المدمج gtest
[2٪] بنيت الهدف caffeproto
[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
/ Users / Stambe / Programs / caffe-opencl / src / caffe / test / test_db. cpp: 23 : 27: خطأ: استخدام غير معلن
المعرف "EXAMPLES_SOURCE_DIR"
root_images_ (سلسلة (EXAMPLES_SOURCE_DIR) + سلسلة ("صور /")) {}

هل هناك مشكلة في التثبيت الخاص بي؟ يرجى ملاحظة أنني لا أواجه مشكلة في تشغيل caffe على وحدة المعالجة المركزية.

شكرا،
سال

بفضل المؤشرات والخيوط المحددة ، تمكنت من إنشاء Caffe OpenCL وتشغيله بنجاح على جهازين منفصلين بالمواصفات التالية:

(أ)

  • وحدة المعالجة المركزية: Intel i7-7567U 3.5 جيجا هرتز
  • معالج الجرافيكس: 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 هناك بعض الأخطاء في محرك الالتواء المكاني الحالي وليس لدي وقت لإرسال تلك العلاقات العامة إلى فرع OpenCL المنبع حتى الآن. جزء من السبب هو أن كل أعمالي الحالية تعتمد على FP16 PR لذلك أريد الانتظار حتى تتم مراجعة تصحيح FP16 ودمجه. في الوقت الحالي ، أود أن أوصي jstumpin بتجربة فرع تحسين الاستدلال Intel OpenCL caffe wiki

jstumpin من الأفضل تطبيق انصهار الطبقة لـ resnet ، وسترى مكسبًا ملحوظًا في الأداء.

مؤشرات رائعة (وأخبار أيضًا) في كل مكان. سمعت عن github.com/01org/caffe من قبل ولكن لم أكن حريصًا جدًا على ذلك لأنني مضطر للذهاب لنشر Windows. أحصل على [المواصفات المعطاة في (أ)]:

  1. AlexNet

    • 110 صورة / ثانية ، 164 صورة / ثانية (الدفعة = 15)

  2. ResNet50

    • 11 صورة / ثانية ، 14 صورة / ثانية (الدفعة = 5)

  3. ريسنت 152

    • 5 صور / ثانية ، 6 صور / ثانية (دفعة = 2)

فيما يلي يحرم إنتل المكاني:

  1. AlexNet

    • 113 صورة / ثانية ، 114 صورة / ثانية (الدفعة = 15)

  2. ResNet50

    • 9 صور / ثانية ، 14 صورة / ثانية (الدفعة = 5)

  3. ريسنت 152

    • 5 صور / ثانية ، 6 صور / ثانية (دفعة = 2)

من أجل الاكتمال ، قمت أيضًا بقياس الأداء مقابل OpenCV 3.3.0 و Caffe's CPU-only (مع Intel MKL ، كلهم ​​كذلك). يكفي القول ، إن وحدة المعالجة المركزية فقط هي أمر محظور ، بغض النظر عن هيكل الشبكة. أقوم بتقليل حجم الدُفعة مع نمو تعقيد الشبكة ليكون عادلاً مع النظام (B) نظرًا لأن ذاكرة وحدة معالجة الرسومات محدودة. علاوة على ذلك ، لم ألاحظ أي مكاسب تتجاوز أحجام الدُفعات التي تم تجربتها. راجع للشغل ، (B) مجهز بالفعل بـ NVIDIA Quadro K4200 ، وليس Geforce كما تم الإعلان عنه في البداية (إنه غير ذي صلة على أي حال لأننا نستهدف (B) للنشر).

لكى يفعل:
[1] أعد بناء Caffe من فرع الاستدلال الأمثل
[2] تطبيق اندماج الطبقة وإعادة تقييم الأداء

شكرا!

jstumpin ، يدعم فرع الاستدلال الأمثل النوافذ أيضًا ، عند استنساخ الكود ، يرجى مراجعة README للحصول على إرشادات للبناء على Windows. إذا وجدت أي مشكلة ، فقط افتح تذكرة هناك.

gongzg جاري مراجعة وإعادة تصنيع FP16.

على الرغم من أن التسمية صحيحة ، فلماذا تتجاوز قيمة التنبؤ 1؟ هذا صحيح عند استخدام OpenCL مع أو بدون Intel المكاني (وحدة المعالجة المركزية فقط جيدة). ألا يجب أن يكون إخراج softmax احتماليًا؟

أحاول أحدث فرع OpenCL على Intel NUC الخاص بي. الجهاز

  • Intel Core i7-7567U CPU @ 3.5 جيجا هرتز
  • انتل ايريس بلس جرافيكس 650
  • نظام التشغيل Windows 10 Pro
  • استوديو مرئي 14 2015 Win64

لقد قمت باستنساخ أحدث viennacl في مجلد موازٍ لمجلد Caffe. بعد ذلك ، قمت بتشغيل scripts/build_win.cmd بدون تعديله (حيث لم أر أي حاجة لتعديله). لكن احصل على خطأ غريب لم يتم العثور عليه في كل المناقشة أعلاه. يرجى الاطلاع على الإخراج أدناه. قبل الذهاب إلى هناك ، هناك معلومة أخرى وهي أنني قمت ببناء فرع windows بنجاح.

هنا ناتج build_win.cmd . نقدر حقًا ما إذا كان بإمكان أي شخص مساعدتي في هذا الأمر!

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

ج: \ DL \ caffe \ scripts> build_win.cmd
لا يمكن للنظام العثور على محرك الأقراص المحدد.
لا يمكن للنظام العثور على محرك الأقراص المحدد.
المعلومات: ================================================= ============
INFO: ملخص:
المعلومات: ================================================= ============
المعلومات: MSVC_VERSION = 14
INFO: WITH_NINJA = 0
معلومات: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
المعلومات: CPU_ONLY = 0
INFO: USE_CUDA = 0
INFO: CUDA_ARCH_NAME = تلقائي
INFO: USE_CUDNN = 0
المعلومات: USE_GREENTEA = 1
المعلومات: USE_LIBDNN = 1
INFO: USE_OPENMP = 0
المعلومات: USE_INDEX64 =
المعلومات: USE_INTEL_SPATIAL = 0
المعلومات: DISABLE_DEVICE_HOST_UNIFIED_MEMORY = 0
INFO: 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"
INFO: RUN_TESTS = 0
INFO: RUN_LINT = 0
INFO: 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 - يعمل
- الكشف عن معلومات المترجم C ABI
- الكشف عن معلومات المترجم C ABI - تم
- تحقق من عمل مترجم 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 - يعمل
- كشف معلومات المترجم CXX ABI
- كشف معلومات 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 - غير موجود
- تم العثور على المواضيع: TRUE
- نسخة التعزيز: 1.61.0
- تم العثور على مكتبات Boost التالية:
-- النظام
-- مسلك
-- نظام الملفات
- كرونو
- تاريخ_وقت
- ذري
- تم العثور على 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؛ debug؛ C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_1 .1.0 / libraries / 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: / المستخدمون / NUC-Sonavex/.caffe/dependencies/libraries_v140_1 .1.0 / libraries / lib / caffezlib.lib؛ debug؛ 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. سمكي: 106 (TRY_COMPILE):
فشل تكوين نظام بناء مشروع الاختبار.
Call Stack (أحدث مكالمة أولاً):
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. يمكنك الرجوع إلى wiki التالي للحصول على إرشادات تفصيلية حول منصة 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 قمت بتثبيته؟ إنتل 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 خسارة)

ومع ذلك ، عند استخدام GPU ، حصلت على نافذة رسالة الخطأ "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 أضاف مجلدي dlls في مسار النظام بدلاً من

"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 Graphics إلى أحدث إصدار.

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 الأصلي الذي يستخدم وحدة المعالجة المركزية. وهناك بعض التحذيرات (تتكرر عدة مرات).

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 في لينكس في الوقت الحالي؟ أعتقد أن المطورين يركزون أكثر على الحصول على كود FP16 و INT8 وما إلى ذلك بسلاسة خاصةً naibaf7 (ديفيد).

سوف يأتي دعم النوافذ المناسبة في نهاية المطاف.

مجرد اقتراح بالرغم من ذلك.

تضمين التغريدة لكن نظامنا هو Windows 10 + Intel Iris ... هل لديك أي فكرة عن موعد دعم Windows؟ أو أي منصة DL أخرى تعمل (باستخدام GPU)؟

gongzg فقط أريد أن
وحدة المعالجة المركزية: 7 دقائق و 33 ثانية ، الدقة = 0.9914
وحدة معالجة الرسومات: 29 دقيقة و 34 ثانية ، الدقة = 0.8406

أتساءل ما هو الأداء على لينكس. بعد ذلك ، يمكن أن يكون لدي فكرة أساسية عن مقدار السرعة باستخدام Intel GPU (OpenCL) مقابل وحدة المعالجة المركزية. شكرا!!

@ bxk-sonavex

بن هل قمت بتمكين حبات opencl؟ هل حاولت استخدام INTEL_SPATIAL؟

atlury ماذا تقصد "تمكين

تحديث:
المعلومات: ================================================= ============
INFO: ملخص:
المعلومات: ================================================= ============
المعلومات: MSVC_VERSION = 14
INFO: WITH_NINJA = 0
معلومات: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
المعلومات: CPU_ONLY = 0
INFO: USE_CUDA = 0
INFO: USE_CUDNN = 0
المعلومات: USE_GREENTEA = 1
المعلومات: USE_LIBDNN = 1
INFO: USE_OPENMP = 0
المعلومات: USE_INDEX64 =
المعلومات: USE_INTEL_SPATIAL = 1
INFO: USE_ISAAC = 1
INFO: 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
INFO: RUN_LINT = 0
المعلومات: RUN_INSTALL = 1
المعلومات: ================================================= ============

@ bxk-sonavex

بن سوف تحتاج إلى تضمين INTEL_SPATIAL لجميع الطبقات التلافيفية في النشر الخاص بك. لقد اختبرته شخصيًا في الوقت الفعلي في لينكس.

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

"لقد اختبرت على عصا تلفاز Intel وكاميرا ويب باستخدام نواة Intel Spatial وباستخدام نموذج vgg ذو 19 طبقة. يمكنني الحصول على تصنيف في الوقت الفعلي وكل ذلك أقل من 3.5 واط"

يجب أن يعمل Windows أيضًا.

@ bxk-sonavex للمشكلة في إصدار 01org ، يرجى فتح مشكلة هناك. هناك بعض حالات فشل الاختبار بسبب مشكلة دقة FP16 في حالات اختبار التدرج هذه والتي ليست حرجة. الأداء بطيء للغاية والذي يجب أن يكون بسبب الضبط التلقائي. يجب أن يكون أسرع بكثير عند تشغيله مرة أخرى. يمكنك أولاً محاولة استخدام الإنشاء / الأدوات / الكافيين لقياس الأداء المتقدم لـ AlexNet.

بالمناسبة ، لقد لاحظت للتو أن CNugteren أصدر

إذا كنت مهتمًا ، يمكنك التحقق من سرعة 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 هل هذا إصدار يستخدم وحدة المعالجة المركزية أو GPU (OpenCL)؟ اعتقدت أنه يقول أن OpenCL لا يعمل على Windows حتى الآن (أو على الأقل ليس مع Intel iGPU حتى الآن). ماذا تستخدم على الويندوز؟

@ bxk-sonavex

بن آسف للتأخير في الرد. لقد كنت بعيدا.

اقتبس من naibaf7
"طريقة الالتفاف (" المحرك ") يمكن بدلاً من ذلك تحديدها / الكتابة فوقها في ملف prototxt الخاص بالشبكة"

وبالتالي أضف الإدخال "المحرك: 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: 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 . مجرد ملاحظة أنك ربما تحتاج إلى تصحيح kernel لجعل 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 = OFF -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 = <>

/ home / intel / Documents / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 19 : 1: خطأ: "LibDNNConvSpatial" لا يسمي نوعًا
LibDNNConvSpatial:: LibDNNConvSpatial (تكوين LibDNNConvConfig) {
^
/ home / intel / Documents / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 117 : 25: خطأ: المُهيئ المتوقع قبل الرمز المميز '<'
سلسلة LibDNNConvSpatial:: create_fw_defs () {

أي فكرة عما يمكن أن يكون الخطأ؟. أيضًا لا يوجد مجلد include / caffe / greentea في فرع opencl ، لذلك قمت بنسخه من " https://github.com/01org/caffe ".

تضمين التغريدة
هل يمكنك تجربة التعليمات الواردة في الفصل أدناه؟ إنه جزء تقريبي من فصل التثبيت من كتابنا القادم عن opencl caffe. شكرا لك @ naibaf7

آمل أن يلقي بعض الضوء ويساعدك في مساعيك المفتوحة.

python-deep-learning-Installation-chap.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: 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 الخاص بي ، لكنه أبطأ بخمس مرات من وحدة المعالجة المركزية (i3 5005U)
لا اعرف لماذا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات