Caffe: Petunjuk penginstalan cabang pembuka Caffe yang tepat untuk GPU Intel

Dibuat pada 16 Des 2016  ·  87Komentar  ·  Sumber: BVLC/caffe

Saya minta maaf bahwa saya harus membuka ini tetapi baik di cabang github opencl dan forum google tidak memiliki petunjuk instalasi langkah demi langkah apa pun (diperbarui) untuk menginstal Caffe Opencl pada Intel GPU dengan driver Intel Opencl terutama untuk seseorang yang baru.

(a) Apakah instruksi ini masih berfungsi?
cmake -DUSE_GREENTEA = ON -DUSE_INTEL_SPATIAL = ON -DUSE_ISAAC = ON path_to_caffe_source
make -jn
make -jn runtest

di cabang ini https://github.com/BVLC/caffe/tree/opencl? atau

Bagaimana dengan?
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_matlab = OFF / root / caffe-opencl

(b) Apakah atlaspack masih diperlukan untuk kompilasi opencl-caffe saat clblas ada ??? Itu terus meminta atlaspack ???

(c) bagaimana dengan CL Wina? Apakah cabang itu masih bergantung pada mereka? Apakah itu dibutuhkan?

(D) Untuk apa libdnn? di tempat ?

(e) Bagaimana dengan ISAAC?

(f) Cabang windows misalnya berbicara "Jika CUDA tidak diinstal Caffe akan default ke CPU_ONLY build" Apakah ini berarti ia tidak akan berfungsi dalam Mode Terbuka di build non-cuda ??

Mohon perbarui dan berikan petunjuk langkah demi langkah
Terima kasih

OpenCL question windows

Komentar yang paling membantu

@bayu_joo
Ada bagian Windows di Readme yang memandu cara mengkompilasi dan menginstal di Windows.
Satu-satunya langkah yang hilang dalam deskripsi itu adalah mengunduh ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

Itu dapat diletakkan di salah satu jalur di mana CMake akan menemukannya, seperti di sebelah folder tempat Anda mengkloning Caffe.

Instruksi build berbeda dengan instruksi Linux, karena ini adalah skrip yang secara otomatis menangani konfigurasi CMake dan dependensi pengunduhan.

Biasanya tidak ada kebutuhan besar untuk mengkhawatirkan konfigurasi pada Windows, karena ini dirancang untuk berfungsi. Namun saya akan memberikan penjelasan singkat kepada Anda:
(a) Tidak dan tidak. Gunakan scripts/build_win.cmd seperti yang dijelaskan di Readme.
(b) Ya tidak peduli bagaimana Anda mengkompilasinya, CPU BLAS selalu dibutuhkan. Tetapi build_win.cmd akan mengurusnya untuk Anda, dan konfigurasi defaultnya adalah menggunakan OpenBLAS.
(c) Ya, ViennaCL diperlukan, klon dari sini: https://github.com/viennacl/viennacl-dev
(d) LibDNN adalah mesin konvolusi default untuk OpenCL GPU, pengganti cuDNN.
Ada juga kernel Intel tambahan untuk GPU Intel yang tersedia dan diaktifkan secara default.
(e) ISAAC, clBLAS dan CLBlast sepenuhnya opsional. Anda perlu mengkompilasi ini secara terpisah di Windows dan menambahkannya ke dependensi jika Anda ingin menggunakannya. Saya tidak menjamin atau mendukung kompilasi salah satu pustaka ini, mereka didukung oleh pengelola proyek masing-masing.
(f) Tidak, di cabang OpenCL, ini tidak benar. Default di sini adalah USE_GREENTEA = ON, USE_CUDA = OFF, CPU_ONLY = OFF.

Saya akan memperbarui Readme setelah Natal ketika saya memiliki liburan. Sayangnya saya tidak punya waktu untuk menjelaskan langkah demi langkah secara mendetail sekarang.
CC: @willyd

Semua 87 komentar

@bayu_joo
Ada bagian Windows di Readme yang memandu cara mengkompilasi dan menginstal di Windows.
Satu-satunya langkah yang hilang dalam deskripsi itu adalah mengunduh ViennaCL-DEV:
https://github.com/viennacl/viennacl-dev

Itu dapat diletakkan di salah satu jalur di mana CMake akan menemukannya, seperti di sebelah folder tempat Anda mengkloning Caffe.

Instruksi build berbeda dengan instruksi Linux, karena ini adalah skrip yang secara otomatis menangani konfigurasi CMake dan dependensi pengunduhan.

Biasanya tidak ada kebutuhan besar untuk mengkhawatirkan konfigurasi pada Windows, karena ini dirancang untuk berfungsi. Namun saya akan memberikan penjelasan singkat kepada Anda:
(a) Tidak dan tidak. Gunakan scripts/build_win.cmd seperti yang dijelaskan di Readme.
(b) Ya tidak peduli bagaimana Anda mengkompilasinya, CPU BLAS selalu dibutuhkan. Tetapi build_win.cmd akan mengurusnya untuk Anda, dan konfigurasi defaultnya adalah menggunakan OpenBLAS.
(c) Ya, ViennaCL diperlukan, klon dari sini: https://github.com/viennacl/viennacl-dev
(d) LibDNN adalah mesin konvolusi default untuk OpenCL GPU, pengganti cuDNN.
Ada juga kernel Intel tambahan untuk GPU Intel yang tersedia dan diaktifkan secara default.
(e) ISAAC, clBLAS dan CLBlast sepenuhnya opsional. Anda perlu mengkompilasi ini secara terpisah di Windows dan menambahkannya ke dependensi jika Anda ingin menggunakannya. Saya tidak menjamin atau mendukung kompilasi salah satu pustaka ini, mereka didukung oleh pengelola proyek masing-masing.
(f) Tidak, di cabang OpenCL, ini tidak benar. Default di sini adalah USE_GREENTEA = ON, USE_CUDA = OFF, CPU_ONLY = OFF.

Saya akan memperbarui Readme setelah Natal ketika saya memiliki liburan. Sayangnya saya tidak punya waktu untuk menjelaskan langkah demi langkah secara mendetail sekarang.
CC: @willyd

@ naib
Terima kasih atas tanggapan yang cepat. Bagaimana dengan Instruksi Linux?

Apakah OpenCL BLAS dan ISAAC masih dibutuhkan ??
https://github.com/01org/caffe/wiki/clCaffe

@bayu_joo
Dua cara di Linux: Gunakan CMAKE dan gunakan 'make all -j8' atau salin makefile.config.example ke makefile.config dan kompilasi menggunakan make all -j8; make pycaffe -j8; make runtest -j8 .
Perhatikan bahwa hasil kompilasi dari Makefile dan CMAKE sedikit berbeda di Linux. Makefile lebih tua, tetapi lebih mudah, dan CMAKE lebih kompleks.

Cabang ini tidak sama dengan https://github.com/01org/caffe/wiki/clCaffe
oleh karena itu memiliki persyaratan yang berbeda. Namun kernel spasial Intel dari sana telah digabungkan ke dalam cabang ini.

Persyaratan yang ketat:

  • Persyaratan ViennaCL, OpenCL dan Caffe normal seperti Gflags, HDF5, dll.
  • Anda bisa mendapatkan OpenCL SDK dengan CUDA, AMD APP SDK atau Intel OpenCL SDK. Ini berlaku untuk Windows dan Linux. Mac OS X harus menyediakan implementasi OpenCL-nya sendiri.

Persyaratan opsional:

  • clBLAS (dari AMD)
  • CLBlast (dari @cnugteren)
  • ISAAC
  • cuDNN
  • CUDA

Terima kasih @ naibaf7
Dan juga untuk linux, LIBDNN hanya untuk sebagian besar chip nVidia dan AMD? Dan kita harus menggunakan Intel spasial untuk Intel iGPU?

@bayu_joo
Intel spasial tidak mendukung propagasi mundur yang efisien dan tidak semua bentuk konvolusi, tetapi ya, ini adalah propagasi maju tercepat pada iGPU Intel.
Tetapi saya sarankan Anda mencoba keduanya dan memeriksa mana yang terbaik untuk jaringan dan perangkat Anda.

@ naib

Fabian, akankah windows membangun dukungan kompilasi dengan Mingw-64. Mohon beritahu saya. Jika ada instruksi khusus untuk itu? Studio Mocosoft terlalu besar ..

@atlury Saat ini tidak, saya tidak menyadarinya. @willyd adalah kontributor dan pemelihara utama windows building, jadi mungkin dia bisa menjawabnya.
Meskipun microsoft studio mungkin sedikit membengkak, itu cukup nyaman dengannya karena @willyd mengkompilasi semua dependensi dari VS2015 dan VS2013. Jadi saya membayangkan menggunakan mingw-64 lebih banyak pekerjaan.

Saya tidak berniat untuk mendukung mingw-64 karena CUDA tidak mendukung mingw sebagai kompiler host di windows. Karena itu, saya menyambut semua PR yang terkait dengan mendukung mingw64 jika mereka tidak menambahkan terlalu banyak kerumitan pada build.

@billysanjar
Keren, apa yang saya pikirkan. Dalam hal ini, saya mendukung kesederhanaan, karena dukungan Windows tanpa MinGW64 tidak terlihat seperti jebakan besar bagi saya. Lebih baik menggunakan kompilator standar dengan masing-masing sistem operasi.
Saya sangat khawatir tentang overhead dukungan ketika orang menggunakan konfigurasi build yang rumit.

@ naib

Apakah windows opencl build menyertakan dukungan untuk engine: SPATIAL? Ketika saya menyertakan mesin: SPATIAL atau mesin: INTEL_SPATIAL, itu mendapatkan salah satu kesalahan berikut

_Layer konv1 memiliki mesin yang tidak diketahui._
_Error penguraian format teks caffe.NetParameter: 18: 3: Nilai pencacahan "SPATIAL" yang tidak diketahui untuk bidang "mesin" ._

Wiki membingungkan read.me https://github.com/BVLC/caffe/tree/opencl

Ini menyebutkan mesin entri _add: SPATIAL_ ke semua spesifikasi lapisan konvolusi. serta _ "mesin: INTEL_SPATIAL <-------------------------- baris ini!" _

Yang mana?

Dan itu berjalan dengan baik tanpa mesin: spasial dalam prototxt.

_opencl-caffe-test.exe imagenet_deploy.prototxt bvlc_reference_caffenet.caffemodel imagenet_mean.binaryproto synset_words.txt truck.jpg
Gunakan GPU dengan ID perangkat 0
---------- Prediksi untuk truck.jpg ----------
0,9872 - "n03417042 truk sampah, gerobak sampah"
0,0110 - "n04467665 truk trailer, trailer traktor, rig truk, rig, truk gandeng, semi"
0,0013 - "n03496892 pemanen, mesin penuai"
0.0002 - "n04428191 perontok, mesin perontok, mesin perontok"
0,0001 - "n04461696 truk derek, mobil derek, penghancur" _

Juga di sini ada beberapa pengamatan "lainnya"
a) Bekerja lebih baik saat dikompilasi sebagai DLL daripada statis. Terutama mengatasi kesalahan _ "Pemeriksaan gagal: registry.count (type) == 1 (0 vs. 1) Jenis lapisan tidak diketahui" _ (visual studio 2015)
b) Sepertinya OpenCL.lib tidak diambil, jadi solusinya adalah menyalinnya secara manual dari folder opencl-sdk ke dalam folder build (apa yang diharapkan dari nama variabel jalur?)
c) Pustaka yang diekstrak dalam folder build dapat dikompilasi ke yang terbaru (katakanlah misalnya opencv 3.2 dll)

Lebih lanjut

C: \ Downloads \ xxx.caffe-opencl-build \ bin> caffe device_query
I0108 12: 35: 04.885713 19872 umum. cpp: 382 ] Total perangkat: 3

I0108 12: 35: 04.888244 19872 umum. cpp: 383 ] perangkat CUDA: 0
I0108 12: 35: 04.889102 19872 umum. cpp: 384 ] Perangkat OpenCL: 3

I0108 12: 35: 04.889681 19872 umum. cpp: 408 ] ID Perangkat: 0

I0108 12: 35: 04.890744 19872 umum. cpp: 410 ] Backend perangkat: OpenCL
I0108 12: 35: 04.891839 19872 umum. cpp: 412 ] Detail backend: Intel (R) Corporation: OpenCL 1.2
I0108 12: 35: 04.893450 19872 umum. cpp: 414 ] Vendor perangkat: Intel (R) Corporation
I0108 12: 35: 04.894731 19872 umum. cpp: 416 ] Nama: Intel (R) HD Graphics 4400
I0108 12: 35: 04.895730 19872 umum. cpp: 418 ] Total memori global: 1708759450

I0108 12: 35: 04.897233 19872 umum. cpp: 408 ] ID Perangkat: 1
I0108 12: 35: 04.898505 19872 umum. cpp: 410 ] Backend perangkat: OpenCL
I0108 12: 35: 04.899590 19872 umum. cpp: 412 ] Detail backend: Intel (R) Corporation: OpenCL 1.2
I0108 12: 35: 04.901091 19872 umum. cpp: 414 ] Vendor perangkat: Intel (R) Corporation
I0108 12: 35: 04.902592 19872 umum. cpp: 416 ] Nama: Intel (R) Core (TM) i5-4210U CPU @ 1.70GHz
I0108 12: 35: 04.904093 19872 umum. cpp: 418 ] Total memori global: 8513761280

I0108 12: 35: 04.905594 19872 umum. cpp: 408 ] ID Perangkat: 2
I0108 12: 35: 04.907114 19872 umum. cpp: 410 ] Backend perangkat: OpenCL
I0108 12: 35: 04.908617 19872 umum. cpp: 412 ] Detail backend: Intel (R) Corporation: OpenCL 2.1
I0108 12: 35: 04.910100 19872 umum. cpp: 414 ] Vendor perangkat: Intel (R) Corporation
I0108 12: 35: 04.911598 19872 umum. cpp: 416 ] Nama: Intel (R) Core (TM) i5-4210U CPU @ 1.70GHz
I0108 12: 35: 04.913100 19872 umum. cpp: 418 ] Total memori global: 8513761280

Kelihatannya bagus bagi saya, meskipun tampaknya Anda memiliki OpenCL 2.1 yang lebih baru dan OpenCL 1.2 yang lebih lama diinstal. Karena ini masih merupakan CPU Haswell, saya tidak yakin apakah Intel sudah memiliki driver 2.1 / 2.0 untuk chip Anda. Tetapi Anda harus mencoba memperbarui OpenCL SDK untuk GPU Anda.

Bagaimanapun, jika Anda ingin menggunakan INTEL_SPATIAL Anda juga perlu mengaktifkannya pada waktu kompilasi. Setelah itu menjadi mesin standar pada perangkat GPU Intel.
Anda dapat melakukannya di sini:
https://github.com/BVLC/caffe/blob/opencl/scripts/build_win.cmd#L82
(scripts / build_win.cmd, baris 82)

namun kernel spasial Intel belum sepenuhnya diuji pada Windows.

Saya akan mencoba memperbarui opencl sdk dan saya baru saja melihat komit Anda, akan mencoba mengaktifkannya, mengkompilasi ulang dan mengujinya dan melaporkannya kembali.
Terima kasih

Oke dengan jika TIDAK DITETAPKAN USE_INTEL_SPATIAL set USE_INTEL_SPATIAL = 1

Build_win.cmd menampilkan kesalahan berikut.

C: \ Downloads \ caffe-opencl \ buildALL_BUILD.vcxproj "(target default) (1) ->
C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj "(target default) (3) ->

(Target ClCompile) -> C: \ Downloads \ caffe-opencl \ src \ caffe \ layers \ conv_layer_spatial.cpp (1453): kesalahan C2572: 'caffe :: ConvolutionLayerSpatial:: swizzleWeights ': definisi ulang argumen default: parameter 1 [C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj]

C: \ Downloads \ caffe-opencl \ src \ caffe \ layers \ conv_layer_spatial.cpp (1458): kesalahan C2572: 'caffe :: ConvolutionLayerSpatial:: swizzleWeights ': definisi ulang argumen default: parameter 1 [C: \ Downloads \ caffe-opencl \ build \ src \ caffe \ caffe.vcxproj]

Oke, saya akan memeriksanya.
@gongzg untuk referensi.

Halo semua,
Terima kasih atas kerja bagusnya!
Saya berhasil mengkompilasi dan menjalankan caffe-opencl pada Windows dan Intel HD 4400 dengan USE_INTEL_SPATIAL = 0 (sayangnya waktu caffe sekitar 2x lebih lambat daripada menjalankan caffe-cpu pada 2-core i5-4210U, kecuali saya melakukan sesuatu yang salah). Namun, ketika mengkompilasi dengan USE_INTEL_SPATIAL = 1, saya juga mendapatkan kesalahan yang sama dengan @atlury (dan saya yakin saya memiliki perangkat keras yang sama di Lenovo X240 saya). Saya ingin tahu apakah menggunakan INTEL_SPATIAL akan membantu menjalankan caffe-opencl lebih cepat di GPU ini daripada di CPU ...

@gfursin Seharusnya, dengan margin yang besar. LibDNN mengharapkan GPU memiliki arsitektur memori yang berbeda dari chip Intel, sehingga saat ini tidak berjalan optimal.
Saat ini kami sedang menyelidiki cara memperbaiki kernel Intel agar dapat berfungsi di Windows juga.

Super! Terima kasih banyak!

Ngomong-ngomong, @atlury , saat memilih perangkat 1 dan 2, "waktu caffe" error setiap kali setelah sekitar 10 detik - apakah Anda memiliki perilaku yang sama? Terima kasih!

@gfursin Tidak, saya tidak menjalankan waktu caffe run (saya akan mencoba dan melaporkan). Saya frustrasi dengan windows dan kemudian beralih ke Ubuntu 17.04. Lihat komentar saya di sini di linux. Ia bekerja dengan spasial dan saya mendapatkan lebih dari 30 fps (VGG) di linux. https://github.com/BVLC/caffe/pull/5165

Ada makalah Intel yang diterbitkan di sini (clcaffe)
http://www.slideshare.net/IntelSoftware/clcaffe-unleashing-the-power-of-intel-graphics-for-deep-learning-acceleration

Di mana tolok ukur berikut (halaman 28 GPU GT3) didukung menggunakan INTEL SPATIAL di lapisan konvolusi.
Alexnet - 290 Gambar / Detik
GoogleNet - 77 Gambar / Detik
VGGA - 55 Gambar / Detik
Overfeat - 91 Gambar / Detik

Saya benar-benar ingin menguji Deteksi Objek (bukan hanya klasifikasi) juga menggunakan INTEL SPATIAL tetapi tidak ada contoh seperti itu di mana pun. Saya ragu apakah Caffe Layers sudah siap? @ naib77 ?

@gongzg adakah kode sumber untuk tes di atas yang dapat kita coba?

LiDNN lebih lanjut telah dibuat untuk bekerja dengan tiny-dnn yang menarik (meskipun tidak banyak model terlatih di sana). Saya juga ingin menguji kuantisasi dan melihat bagaimana OpenCL dapat membantu di sana (8-bit, XNOR dll). Akhirnya deteksi objek di buka secara real time akan luar biasa !!! Saya berharap @ naibaf7 dapat menjelaskan.

@atlury Saya akan menghubungi Anda minggu depan mengenai pertanyaan yang lebih sulit.
Intel spasial secara otomatis digunakan ketika Anda mengkompilasi dengan opsi diaktifkan.
Untuk segmentasi dan deteksi objek, saya sarankan Anda membaca makalah ISBI 2016 dan laporan teknis saya. Saya memiliki arsitektur SK-Net dan U-Net yang dijelaskan di sana yang dapat melakukan ini dengan sangat cepat. AlexNet dapat diubah menjadi SK-Net semacam itu.
Anda perlu menggunakan LibDNN untuk menjaga penggunaan memori tetap rendah di SK / U-Net.

Wow, saya baru saja membaca makalah Anda ... konsep Strided kernel sepertinya sangat mengesankan. Tidak membajak utas ini tetapi semua ini pada akhirnya perlu diuji di Opencl di bawah windows tetapi sebelum itu ....

Apakah ini hanya implementasi python? Tidak ada c ++? Apakah ada model terlatih? Apakah ini tempat repo https://github.com/naibaf7/PyGreentea/tree/master/examples ? Ya, saya akan menggunakan LibDNN ...

@atlury Ya, antarmuka aslinya adalah C ++ tetapi kami beralih ke python. Namun jika Anda ingin memberikan data melalui HDF5 atau antarmuka C ++ Anda sendiri, itu juga akan berfungsi. Cukup gunakan kode generator jaringan yang saya berikan dengan python untuk membantu Anda membuat prototxt yang benar untuk jaringan tipe SK / U.
Berikut adalah laporan teknis lengkap yang sedikit lebih lama: https://arxiv.org/abs/1509.03371 , ini menyertakan nomor kinerja sebelum LibDNN diprogram.
Saat ini kami tidak menyediakan model terlatih karena kumpulan data (klasifikasi EM) yang kami gunakan di & hasil kami belum dipublikasikan.

@atlury Beberapa data benchmark diukur dengan menggunakan convnet-benchmark dan Anda dapat mereproduksinya di platform Anda. Kami tidak memiliki contoh lain untuk dibagikan secara publik saat ini.

@atlury - terima kasih banyak atas referensi! Saya mengalami banyak masalah dalam menginstal dan menggunakan OpenCL untuk Intel GPU di Ubuntu di masa lalu (harus mengkompilasi ulang kernel Linux), tetapi mungkin driver terbaru akan berfungsi dengan baik - perlu memeriksanya. Ngomong-ngomong, di # 5165 Anda memiliki cuplikan dari webcam + klasifikasi Caffe dengan pengukuran FPS - bolehkah saya bertanya program mana yang Anda gunakan untuk itu? Terima kasih banyak!!!

@bayu_joo

Silakan lakukan hal berikut.

  1. Gunakan http://cdimage.ubuntu.com/daily-live/current/

  2. Instal SDK terbuka dan buka Jalankan waktu dari (patch kernel tidak diperlukan)
    https://software.intel.com/en-us/intel-opencl/download
    https://software.intel.com/en-us/articles/opencl-drivers

  3. Unduh https://github.com/BVLC/caffe/tree/opencl
    (a) Harap kompilasi dengan mengaktifkan Viennacl, libdnn, intel spatial, opencv, dll. Harap buat perpustakaan bersama. Saya tidak mengaktifkan python karena saya tidak sering menggunakannya.

  4. Caffemodel VGG, prototxt
    Unduh
    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

sertakan mesin: INTEL_SPATIAL untuk semua lapisan konvolusional di deploy.proto Anda

Dapatkan synset_words.txt tersebut

  1. Uji menggunakan program ini
    https://gist.github.com/atlury/f65fd41eb805cc5f77f666a59e71eae2

Pastikan input_dim adalah 1 (dalam proto Anda) dan bukan 10 (Anda hanya memberikannya satu gambar pada satu waktu) dengan 3 saluran dan pengubahan ukurannya otomatis.
input_dim: 1
input_dim: 3
input_dim: 224
input_dim: 224

Bantuan tambahan memberi tahu saya di skype: atlury atau gtalk: atlury

Harap dicatat bahwa ini hanya akan bekerja di linux dan dukungan opencl untuk windows masih dikerjakan oleh @ naibaf7

Terima kasih banyak @atlury untuk semua detailnya - sangat kami hargai - saya akan segera mengujinya! Ngomong-ngomong, saya mulai mengotomatiskan penginstalan Caffe di Windows (mode CPU dan OpenCL) menggunakan Kerangka Pengetahuan Kolektif, tetapi masih perlu pengujian lebih lanjut: https://github.com/dividiti/ck-caffe
Saya menunggu umpan balik dari kolega saya dan jika berfungsi dengan baik, kami akan membuat rilis resmi dalam beberapa minggu (mungkin dengan dukungan untuk perangkat Android juga) ...

Halo semua. Terima kasih banyak atas perpustakaannya dan juga pembahasannya di atas.

Saat ini saya mencoba untuk membangun komit terbaru yang memperbaiki Windows OpenCL membangun dengan USE_GREENTEA = 1, USE_LIBDNN = 1 dan USE_INTEL_SPATIAL = 1, bersama dengan membangun file header untuk ViennaCL. Build_win.cmd saya terpasang di sini: build_win.txt

Namun, setengah pembangunan perpustakaan selalu berakhir dengan kesalahan berikut:
ninja: build stopped: subcommand failed.
ERROR: Build failed
Secara terperinci:
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
Mohon maaf jika kesalahan ini sama dengan yang disebutkan di atas.

Mencoba dengan USE_INTEL_SPATIAL = 0 juga tetapi dengan kesalahan berikut:
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

Mohon nasihatnya tentang hal ini. Sangat menghargai.

@ yshen92 Kesalahan pertama diketahui dan sedang dikerjakan.
Kesalahan kedua yang Anda dapatkan biasanya berarti OpenCL DLL Anda tidak valid, ia tidak memiliki beberapa simbol. Dapatkah Anda memberi tahu kami perangkat keras apa yang Anda miliki dan OpenCL SDK mana yang telah Anda instal?
Masalah ini biasanya muncul dengan OpenCL SDK yang berasal dari nVidia dalam CUDA. Intel dan AMD OpenCL SDK seharusnya baik-baik saja dengan versi 1.2 dan 2.0.

@ naibaf7 Terima kasih banyak atas jawabannya.

Saya membangun perpustakaan di Windows 8 Pro 64-bit Dell dengan Intel HD Graphics 4000 dan NVIDIA NVS 5200M. Dan baru saja menginstal Intel OpenCL SDK v6.3 terbaru . Tampaknya direktori OpenCL mengarah ke direktori yang disertakan dengan CUDA.

Jadi dalam upaya untuk menggunakan Intel OpenCL SDK di build, saya menghapus CUDA dan melakukan beberapa modifikasi yang agak kasar ke FindOpenCL.cmake di baris 46, 48, 52, dan 53 sebagai berikut:

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")
Pada dasarnya ini hanya untuk menambahkan jalur SDK Intel. Tidak yakin apakah saya melakukannya dengan benar. Tanpa ini, skrip gagal menemukan SDK.

Namun, saya masih mendapatkan error yang sama seperti di atas (membangun tanpa Intel Spatial).
Dan ini file konfigurasi saya yang diambil langsung dari script untuk referensi Anda.
ConfigInfo.txt
Tahu apa yang saya lakukan salah?

Hai @atlury - Saya akhirnya menemukan sedikit waktu untuk menginstal Ubuntu 17.04 dan menginstal driver GPU Intel tanpa kernel apapun - terima kasih! Saya juga menginstal Caffe-OpenCL.

Masih ada masalah dengan kernel caching jadi biaya start up sangat tinggi, tapi @ naibaf7 dan @psyhtest mencoba memperbaikinya. Solusi sementara untuk sedikit mempercepat cache kernel adalah bermain dengan variabel lingkungan VIENNACL_CACHE_PATH dan CUDA_CACHE_DISABLE (lihat https://github.com/dividiti/ck-caffe/issues/44#issuecomment-277205871).

Saya punya pertanyaan: Saya tidak mengerti cara menambahkan mesin: INTEL_SPATIAL untuk semua lapisan konvolusional di deploy.proto? Saya masih pengguna pemula (saya lebih di sisi kompiler mencoba mengoptimalkan sub-perpustakaan). Apakah Anda keberatan untuk mengirimkan saya sampel, tolong - akan sangat dihargai!

Catatan lain: jika menarik, saya menambahkan dukungan untuk merakit Caffe dengan OpenCL, ViennaCL dan USE_INTEL_SPATIAL melalui kerangka CK (yaitu membangun kembali satu klik):

ck menginstal paket: lib-caffe-bvlc-opencl-libdnn-clblast-universal --env.USE_INTEL_SPATIAL = ON

Anda dapat menemukan detailnya di sini: https://github.com/dividiti/ck-caffe/wiki/Installation

Saat ini saya sedang membuat profil cache ViennaCL pada beberapa platform. Saya menduga ini mungkin bekerja cukup memuaskan setelah beberapa perubahan.

@gfursin : CUDA_CACHE_DISABLE memiliki efek menonaktifkan mekanisme cache NVIDIA sendiri untuk kernel, jadi hanya akan memperlambat segalanya (tentu saja pada platform yang didukung NVIDIA). Namun, saya membutuhkannya untuk profil cache.

@psyhtest - terima kasih atas catatan Anda karena saya salah paham - saya pikir itu bug aneh dan solusi sementara;) ...

@ naibaf7 apa status dukungan windows sekarang? Saya ingin tahu apakah Anda sudah mulai mengerjakan pengaktifan mesin spasial intel untuk windows juga.

@gongzg Saya mulai menyiapkan lingkungan Windows di laptop Intel untuk menguji ini, tetapi belum melangkah lebih jauh dari itu. Jadi mesin spasial Intel masih memiliki masalah kompilasi pada Windows, tetapi sisanya berfungsi.

@ naibaf7 Terima kasih atas pembaruannya. Kemudian, saya akan memeriksa apakah kami memiliki beberapa sumber daya internal untuk menyelesaikan masalah mesin spasial antar pada Windows.

Apakah cabang ini berfungsi untuk windows dan amd gpu?

Ya itu. GPU AMD didukung penuh dengan LibDNN di bawah Windows dan Linux. Dukungan penuh Intel GPU akan menyusul pada 28 April.

@ naib
David, dapatkah Anda memberi tahu saya jika dukungan untuk windows OpenCL sudah siap dengan python untuk GPU Intel? Saya memiliki beberapa hal untuk diuji dan dilaporkan.

@ Hillarycanas - Saya juga mengonfirmasi bahwa saya berhasil mengkompilasi dan menjalankan versi OpenCL dari Caffe dengan libDNN pada AMD dengan Windows 10 beberapa hari yang lalu (Saya menggunakan AMD E1-2500 APU yang cukup lama dengan Radeon HD Graphics hanya untuk tes). Anda dapat melihat hasil performanya di http://tinyurl.com/k3dhsc2 (cari AMD).
Saya menggunakan paket CK "lib-caffe-bvlc-opencl-libdnn-viennacl-universal" untuk mengkompilasi dan menjalankan Caffe di Windows (lihat https://github.com/dividiti/ck-caffe/wiki/Installation#AMD_GPU).

Maaf sudah mengganggu lagi. Setelah umpan balik pengguna, kami menambahkan dukungan untuk secara otomatis mengemas pustaka dan binari Caffe untuk Windows di CK, dan sekarang dimungkinkan untuk menginstal dan membandingkan versi CPU Caffe dan OpenCL pada mesin Windows yang berbeda dengan instalasi minimal:

$ 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

@bayu_joo
Ini bagus :)
Caffe dapat dengan mudah menjadi mainstream seperti ini :)

Hai,

Saya mencoba menjalankan cabang resmi OpenCL caffe yang terletak di:
https://github.com/BVLC/caffe/tree/opencl di Mac saya dengan detail perangkat keras berikut:
Nama Model: MacBook Pro
Pengidentifikasi Model: MacBookPro12,1
Nama Prosesor: Intel Core i5
Kecepatan Prosesor: 2,7 GHz
Jumlah Prosesor: 1
Jumlah Total Inti: 2
L2 Cache (per Core): 256 KB
Cache L3: 3 MB
Memori: 8 GB
Gambar: Intel Iris Graphics 6100 1536 MB

Saya dapat menjalankan tutorial Klasifikasi tanpa masalah. Namun, ketika saya beralih ke mode GPU, dan mencoba menjalankan net.forward (), kernel mati setiap saat. Apakah ini berarti cabang OpenCL caffe ini tidak mendukung kartu grafis terintegrasi intel?

Terima kasih,

Sal

@saliltambe Cabang OpenCL mendukung intel iGPU. Meskipun sebagian besar pengujian dilakukan pada sistem Linux, pengujian ini juga dapat dilakukan di Mac. Apa kesalahan spesifik yang Anda temui saat menjalankan net.forward ()?

@gongzg Terima kasih banyak atas jawabannya. Saya mendapatkan pesan kesalahan berikut saat menjalankan di notebook jupyter: "Kernel tampaknya telah mati. Ini akan restart secara otomatis." Saya menjalankan ukuran batch yang sangat kecil jadi menurut saya kernel tidak mati karena kehabisan memori. Selain itu, saya tidak mendapatkan kesalahan saat beralih ke mode GPU menggunakan: caffe.set_mode_gpu (). Saya hanya mendapatkan kesalahan saat menjalankan net.forward ().

@salilt_jkt
Kami membutuhkan lebih banyak informasi: Bagaimana Anda mengkompilasinya (versi kompiler, pengaturan Caffe, perpustakaan BLAS mana yang Anda aktifkan)?
Dapatkah Anda menjalankan ./build/test/test_all.testbin atau menjalankan make runtest (jika Anda menggunakan Makefiles)?

@ naib
Hai Fabian, ini detailnya:
- Umum:
- Versi: 1.0.0.0
- Git: tidak diketahui
- Sistem: Darwin
- Kompiler C ++: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++

- Rilis flag CXX: -O3 -DNDEBUG -fPIC -Wall -std = c ++ 11 -DCMAKE_BUILD -Tidak ada tanda-bandingkan -Tidak diinisialisasi

- Men-debug flag CXX: -g -fPIC -Wall -std = c ++ 11 -DCMAKE_BUILD -Wno-sign-bandingkan -Tidak diinisialisasi

  • - Jenis build: Rilis
  • - BUILD_SHARED_LIBS: AKTIF
  • - BUILD_python: AKTIF
  • - BUILD_matlab: MATI
  • - BUILD_docs: AKTIF
  • - CPU_ONLY: OFF
  • - USE_OPENCV: AKTIF
  • - USE_FFT: NONAKTIF
  • - USE_LEVELDB: AKTIF
  • - USE_LMDB: AKTIF
  • - USE_NCCL: NONAKTIF
  • - ALLOW_LMDB_NOLOCK: MATI
  • - USE_HDF5: AKTIF



    • - Dependensi:

  • - BLAS: Ya (vecLib)
  • - Boost: Ya (ver. 1.64)
  • - glog: Ya
  • - gflags: Ya
  • - protobuf: Ya ​​(ver. 3.3.0)
  • - lmdb: Ya (ver. 0.9.19)
  • - LevelDB: Ya (ver. 1.20)
  • - Tajam: Ya (ver.1.1.4)
  • - OpenCV: Ya (ver. 2.4.13.2)
  • - CUDA: Tidak



    • - Python:

  • - Penerjemah: /Users/stambe/anaconda/bin/python2.7 (ver. 2.7.13)
  • - Perpustakaan: /Users/stambe/anaconda/lib/libpython2.7.dylib (ver 2.7.13)
  • - NumPy: /Users/stambe/anaconda/lib/python2.7/site-packages/numpy/core/include (ver 1.12.1)

  • - Dokumentasi:
  • - Doxygen: Tidak
  • - config_file:

  • -- Install:
  • - Jalur pemasangan: / Users / stambe / Programs / caffe-opencl / build / install

  • - Konfigurasi selesai

Peringatan CMake (dev) di src / caffe / CMakeLists.txt:

Kebijakan CMP0022 tidak disetel: INTERFACE_LINK_LIBRARY mendefinisikan antarmuka tautan. Jalankan "cmake --help-policy CMP0022" untuk mengetahui detail kebijakan. Gunakan perintah cmake_policy untuk menyetel kebijakan dan menyembunyikan peringatan ini.
Target "caffe" memiliki properti INTERFACE_LINK_LIBRARY yang berbeda dari properti LINK_INTERFACE_LIBRARY-nya.

INTERFACE_LINK_LIBRARY:
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; / Aplikasi / Xcode. app / Isi / Pengembang / Platform / MacOSX.platform / Pengembang / SDK / MacOSX10.12.sdk / Sistem / Library / Frameworks / OpenCL.framework; opencv_core; opencv_highgui; opencv_imgproc; -lcblas; -framework Accelerate; / usr / local / lib / libboost_python-mt.dylib

LINK_INTERFACE_LIBRARY:

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_highgui; opproencv_img lcblas; -framework Accelerate; /usr/local/lib/libboost_python-mt.dylib

Ketika saya menjalankan make runtest -j8, saya mendapatkan error berikut:
stambe- osx: build stambe $ make runtest -j8
[1%] Membangun target paling besar
[2%] Membuat caffeproto target
[71%] Membuat kafein target
[71%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_deconvolution_layer.cpp.o
[72%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_db.cpp.o
[73%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_eltwise_layer.cpp.o
[73%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_dummy_data_layer.cpp.o
[73%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_embed_layer.cpp.o
[73%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_euclidean_loss_layer.cpp.o
[73%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_filter_layer.cpp.o
[75%] Membuat objek CXX src / caffe / test / CMakeFiles / test.testbin.dir / test_filler.cpp.o
/ Users / stambe / Program / caffe-opencl / src / caffe / test / test_db. cpp: 23 : 27: error: penggunaan tidak dideklarasikan
pengenal 'EXAMPLES_SOURCE_DIR'
root_images_ (string (EXAMPLES_SOURCE_DIR) + string ("gambar /")) {}

Apakah ada masalah dengan penginstalan saya? Harap perhatikan bahwa saya tidak mengalami masalah dalam menjalankan caffe di CPU.

Terima kasih,
Sal

Berkat petunjuk dan arahan yang diberikan, saya telah berhasil membangun dan menjalankan Caffe OpenCL dengan sukses di dua mesin terpisah dengan spesifikasi berikut:

(SEBUAH)

  • CPU: Intel i7-7567U 3.5GHz
  • iGPU: Intel Iris Plus 650
    (B)
  • CPU: Intel i7-4930K 3.4GHz
  • GPU: NVIDIA Geforce GTX 650

Saya dapat menjalankan AlexNet, ResNet50 & ResNet152 pada keduanya (A) & (B) tanpa hambatan. Satu-satunya masalah yang saya miliki adalah pemrosesan batch di ResNets di (A) - kelas yang diprediksi tidak pernah benar. Karena masalah hanya muncul di (A) DAN hanya proses batch ResNets, saya rasa akar penyebabnya dapat berasal dari LibDNN dan lebih khusus lagi kernel spasial Intel. Saya dapat menonaktifkan mesin Intel tetapi kemudian itu tidak akan mencapai kecepatan yang saya terlalu puas sekarang.

Ada lagi petunjuk dan petunjuk untuk yang satu ini? Terima kasih sebelumnya.

@gongzg Adakah petunjuk tentang mengapa kernel spasial dapat mengalami masalah dengan pemrosesan batch?

@ naibaf7 Ada beberapa bug di mesin konvolusi spasial saat ini dan saya belum punya waktu untuk mengirimkan PR tersebut ke cabang OpenCL hulu. Sebagian alasannya adalah bahwa semua pekerjaan saya saat ini bergantung pada PR FP16 jadi saya ingin menunggu patch FP16 ditinjau dan digabungkan. Untuk saat ini, saya ingin merekomendasikan @jstumpin untuk mencoba cabang inferensi-optimasi github.com/01org/caffe untuk memeriksa apakah masalah telah hilang. Halaman wiki terkait ada di Intel OpenCL caffe wiki

@jstumpin Lebih baik menerapkan fusi lapisan untuk resnet, dan Anda akan melihat peningkatan kinerja yang nyata.

Petunjuk bagus (dan berita juga) di sekitar. Telah mendengar tentang github.com/01org/caffe sebelumnya, tetapi tidak terlalu tertarik karena saya harus menggunakan penerapan Windows. Saya mendapatkan [spesifikasi tertentu dalam (A)]:

  1. AlexNet

    • 110 gambar / detik, 164 gambar / detik (batch = 15)

  2. ResNet50

    • 11 gambar / detik, 14 gambar / detik (batch = 5)

  3. ResNet 152

    • 5 gambar / detik, 6 gambar / detik (batch = 2)

Berikut ini adalah kehilangan Intel spasial:

  1. AlexNet

    • 113 gambar / detik, 114 gambar / detik (batch = 15)

  2. ResNet50

    • 9 gambar / detik, 14 gambar / detik (batch = 5)

  3. ResNet 152

    • 5 gambar / detik, 6 gambar / detik (batch = 2)

Untuk kelengkapan, saya juga melakukan benchmark terhadap OpenCV 3.3.0 dan hanya CPU Caffe (dengan Intel MKL, semuanya). Cukuplah untuk mengatakan, CPU-only tidak dapat digunakan, apa pun topologi jaringannya. Saya mengurangi ukuran batch karena kompleksitas jaringan tumbuh menjadi adil dengan sistem (B) karena memori GPU terbatas. Selain itu, saya tidak mengamati keuntungan apa pun di luar ukuran batch percobaan tersebut. BTW, (B) sebenarnya dilengkapi dengan NVIDIA Quadro K4200, bukan Geforce seperti yang diiklankan pada awalnya (toh tidak relevan karena kami menargetkan (B) untuk penerapan).

Melakukan:
[1] Membangun kembali Caffe dari cabang pengoptimalan inferensi
[2] Terapkan fusi lapisan dan evaluasi ulang kinerja

Terima kasih!

@jstumpin , cabang inference-optimzie juga mendukung windows, ketika Anda mengkloning kode, silakan periksa README untuk instruksi membangun di Windows. Jika Anda menemukan masalah apa pun, cukup buka tiket di sana.

@gongzg Ya review & refactor FP16 sedang berlangsung.

Meskipun labelnya benar, mengapa nilai prediksi melebihi 1? Ini berlaku saat menggunakan OpenCL dengan atau tanpa Intel spasial (hanya CPU baik-baik saja). Bukankah seharusnya keluaran softmax bersifat probabilistik?

Saya mencoba cabang OpenCL terbaru di Intel NUC saya. Perangkat kerasnya

  • Intel Core i7-7567U CPU @ 3.5GHz
  • Intel Iris Plus Graphics 650
  • Windows 10 Pro
  • Visual Studio 14 2015 Win64

Saya mengkloning viennacl terbaru di folder yang sejajar dengan folder Caffe. Kemudian, saya menjalankan scripts/build_win.cmd tanpa memodifikasinya (karena saya tidak melihat kebutuhan untuk memodifikasinya). Tapi dapatkan kesalahan aneh yang tidak ditemukan di semua diskusi di atas. Silakan lihat pada output di bawah ini. Sebelum pergi ke sana, satu info lagi adalah saya berhasil membangun windows branch.

Berikut adalah keluaran dari build_win.cmd . Sangat menghargai jika ada yang bisa membantu saya dalam hal ini!

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

c: \ DL \ caffe \ scripts> build_win.cmd
Sistem tidak dapat menemukan drive yang ditentukan.
Sistem tidak dapat menemukan drive yang ditentukan.
INFO: ================================================ ============
INFO: Ringkasan:
INFO: ================================================ ============
INFO: MSVC_VERSION = 14
INFO: WITH_NINJA = 0
INFO: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
INFO: CPU_ONLY = 0
INFO: USE_CUDA = 0
INFO: CUDA_ARCH_NAME = Otomatis
INFO: USE_CUDNN = 0
INFO: USE_GREENTEA = 1
INFO: USE_LIBDNN = 1
INFO: USE_OPENMP = 0
INFO: USE_INDEX64 =
INFO: USE_INTEL_SPATIAL = 0
INFO: DISABLE_DEVICE_HOST_UNIFIED_MEMORY = 0
INFO: CMAKE_CONFIG = Rilis
INFO: USE_NCCL = 0
INFO: CMAKE_BUILD_SHARED_LIBS = 0
INFO: PYTHON_VERSION = 2
INFO: BUILD_PYTHON = 1
INFO: BUILD_PYTHON_LAYER = 1
INFO: BUILD_MATLAB = 0
INFO: PYTHON_EXE = "python"
INFO: RUN_TESTS = 0
INFO: RUN_LINT = 0
INFO: RUN_INSTALL = 0
INFO: ================================================ ============
- Memilih versi SDK Windows untuk menargetkan Windows 10.0.15063.
- Identifikasi penyusun C adalah MSVC 19.0.24215.1
- Identifikasi penyusun CXX adalah MSVC 19.0.24215.1
- Periksa kompiler C yang berfungsi: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe
- Periksa kompiler C yang berfungsi: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe - berfungsi
- Mendeteksi info ABI compiler C
- Mendeteksi info ABI compiler C - selesai
- Periksa kompiler CXX yang berfungsi: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe
- Periksa kompiler CXX yang berfungsi: C: / Program Files (x86) / Microsoft Visual Studio 14.0 / VC / bin / x86_amd64 / cl.exe - berfungsi
- Mendeteksi info ABI compiler CXX
- Mendeteksi info ABI compiler CXX - selesai
- Mendeteksi fitur kompilasi CXX
- Mendeteksi fitur kompilasi CXX - selesai
- Ditemukan PythonInterp: C: /Users/NUC-Sonavex/AppData/Local/Programs/Python/Python35/python.exe (ditemukan versi yang sesuai "3.5.3", minimum yang dibutuhkan adalah "2.7")
- Mencari pthread.h
- Mencari pthread.h - tidak ditemukan
- Thread yang Ditemukan: BENAR
- Versi peningkatan: 1.61.0
- Menemukan pustaka Boost berikut:
- sistem
- benang
-- berkas sistem
- chrono
-- tanggal Waktu
- atom
- GFlag yang ditemukan: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Ditemukan gflag (termasuk: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, library: gflags_shared)
- Ditemukan Glog: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Found glog (termasuk: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, library: glog)
- Ditemukan Protobuf: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/bin/protoc.exe (versi yang ditemukan "3.1.0")
- Ditemukan PROTOBUF Compiler: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/bin/protoc.exe
- Ditemukan LMDB: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Ditemukan lmdb (termasuk: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, library: lmdb)
- Ditemukan LevelDB: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Ditemukan LevelDB (termasuk: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, library: leveldb)
- Ditemukan ZLIB: dioptimalkan; 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 (versi yang ditemukan "1.2.8")
- Ditemukan Snappy: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include
- Ditemukan Snappy (termasuk: C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py35_1.1.0/libraries/include, library: snappy_static; dioptimalkan; C: /Users/NUC-Sonavex/.caffe/dependencies/libraries_v140_x64_py .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 dinonaktifkan. Membangun tanpa itu ...
- Ditemukan ViennaCL meliputi: C: / DL / viennacl
Kesalahan CMake: Variabel berikut digunakan dalam proyek ini, tetapi mereka disetel ke NOTFOUND.
Harap setel atau pastikan sudah disetel dan diuji dengan benar di file CMake:
OPENCL_INCLUDE_DIRS
digunakan sebagai direktori include di direktori C: / DL / caffe / scripts / build / CMakeFiles / CMakeTmp
_OPENCL_64_LIBRARY
ditautkan oleh target "cmTC_7259e" di direktori C: / DL / caffe / scripts / build / CMakeFiles / CMakeTmp

Kesalahan CMake di cmake / Modules / FindOpenCL. cmake: 106 (TRY_COMPILE):
Gagal mengonfigurasi sistem pembangunan proyek uji.
Call Stack (panggilan terbaru lebih dulu):
cmake / Modules / FindViennaCL. cmake: 37 (temukan_paket)
cmake / Ketergantungan. cmake: 116 (temukan_paket)
CMakeLists. txt: 127 (termasuk)

- Konfigurasi tidak lengkap, terjadi kesalahan!
Lihat juga "C: /DL/caffe/scripts/build/CMakeFiles/CMakeOutput.log".
Lihat juga "C: /DL/caffe/scripts/build/CMakeFiles/CMakeError.log".
KESALAHAN: Konfigurasi gagal

@ bxk-sonavex Seperti yang saya sebutkan di atas, beberapa tambalan khusus Intel belum ditinjau dan digabungkan, jadi silakan coba github.com/01org/caffe cabang inferensi-optimasi. Anda dapat merujuk ke wiki berikut untuk instruksi detail pada platform Intel:
https://github.com/01org/caffe/wiki/clCaffe

@gongzg Itu mungkin tidak membantu mengingat bahwa beberapa bagian dari implementasi Intel OpenCL tidak berfungsi di Windows. Tapi mengerjakannya, seperti yang Anda tahu :)

@ naibaf7 Apakah itu berarti bahwa cabang ini TIDAK bekerja sama sekali dengan Intel iCPU di Windows? Lalu, di mana saya dapat menemukan versi Caffe yang mendukung OpenCL di Windows dengan Intel iGPU?

@gongzg Apakah clCaffe yang Anda sarankan bekerja pada Windows dengan Intel iGPU?

@ bxk-sonavex Ini akan bekerja, tetapi tidak dengan konvolusi Intel, oleh karena itu kinerja tidak optimal.
Saat ini saya pikir Anda tidak dapat menemukannya, tetapi saya sedang mengerjakan solusinya.
Masalah Anda lebih berkaitan dengan header OpenCL yang hilang. OpenCL apa yang sudah Anda instal? SDK Intel?

@ naibaf7 Ya, saya menggunakan Intel SDK v6.3. Saya menemukan solusi di sini (https://github.com/BVLC/caffe/issues/5575) dan berhasil untuk saya. Sekarang saya mendapatkan cabang opencl yang dikompilasi. Selanjutnya, saya menguji build saya menggunakan contoh mnist yang disediakan di folder contoh. Saat menggunakan CPU (dengan memodifikasi lenet_solver.prototxt), train_lenet berjalan tanpa masalah dan akurasi pelatihan terakhir adalah 0,9902, seperti yang diharapkan.

I1107 13: 53: 43.139747 3512 pemecah. cpp: 421 ] Uji keluaran bersih # 0: akurasi = 0,9902
I1107 13: 53: 43.139747 3512 pemecah. cpp: 421 ] Uji output bersih # 1: kerugian = 0,0277191 (* 1 = 0,0277191 kerugian)

Namun, saat menggunakan GPU, saya mendapat jendela pesan kesalahan "caffe.exe telah berhenti bekerja" dan akurasinya hanya 0,1009.

I1107 14: 11: 15.651798 7872 pemecah. cpp: 421 ] Uji keluaran bersih # 0: akurasi = 0.1009
I1107 14: 11: 15.651798 7872 pemecah. cpp: 421 ] Uji output bersih # 1: loss = 87.31 (* 1 = 87.31 loss)

Bisakah Anda memberi saya petunjuk tentang apa yang terjadi? Bagaimana cara mengatasinya? Atau apakah ini yang disebut @gongzg ?

Itu mungkin tidak membantu mengingat bahwa beberapa bagian dari implementasi Intel OpenCL tidak berfungsi di Windows. Tapi mengerjakannya, seperti yang Anda tahu :)

Tempat yang saya modifikasi dari default build_win.cmd adalah

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

Haruskah saya menyetel USE_INTEL_SPATIAL ?

Ketika mengatur USE_INTEL_SPATIAL = 1, cabang tidak dapat dikompilasi. Kesalahannya adalah

ninja: build stop: subcommand gagal.

@ naibaf7 Versi 01org bekerja dengan baik pada Windows sekarang. Saya masih sibuk dengan hal lain jadi saya tidak punya cukup waktu untuk mengirimkan semua perbaikan ke cabang OpenCL ini. Akan melakukan itu ketika saya punya waktu dalam waktu dekat. @ bxk-sonavex Anda dapat mencoba versi 01org mengikuti halaman wiki, dan jika Anda menemui masalah dengan itu, tolong beritahu saya.

@gongzg Terima kasih! Mengikuti instruksi di https://github.com/01org/caffe/wiki/clCaffe#windows -support-for-intel-gen-platform, saya mendapat pesan kesalahan:

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

FYI:
https://github.com/ptillet/isaac.git hanya kompatibel dengan perangkat keras NVIDIA dan bahkan tidak dapat dikompilasi, jadi saya mengkloning https://github.com/intel/isaac.

MEMPERBARUI:
Membuat file secara manual melalui

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

Seharusnya, file harus dibuat secara otomatis.

Lalu saya mendapat kesalahan berikut:

"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

Menonaktifkan RUN_TESTS dan membangun untuk ketiga kalinya ...

@ bxk-sonavex Tampaknya itu sudah berhasil dibangun. Anda perlu menyalin file dll ke direktori file yang dapat dieksekusi:
"
Harap dicatat bahwa, setelah bangunan selesai dengan sukses, sebelum Anda mencoba menjalankan aplikasi, Anda perlu menyalin dl.dll (dlfcn) dan isaac.dll (isaac) ke dalam direktori yang sama atau memasukkannya ke dalam direktori sistem.
"

@gongzg Menambahkan folder dari dua dll di jalur sistem alih-alih menyalinnya ke folder uji. Sekarang mendapat kesalahan lain, yang terlihat cukup serius ...

"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

Saya menggunakan Intel Iris Plus Graphics 650 dan intel_sdk_for_opencl_setup_6.3.0.1904. Ada pemikiran dan solusi?

@ bxk-sonavex Anda perlu memperbarui driver Intel Graphics Anda ke versi terbaru.

@gongzg Terima kasih, itu memecahkan kesalahan kompilasi. Saat menjalankan tes, saya mendapat banyak kesalahan seperti (mungkin tidak menangkap semuanya)

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

Haruskah kesalahan ini diperhatikan?

Bagaimanapun, saya menguji build menggunakan contoh mnist. Ini sangat lambat , bahkan jauh lebih lambat daripada Caffe asli yang menggunakan CPU. Dan ada beberapa peringatan (diulang beberapa kali)

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'

Ada ide?

@ bx-sonavex

Mengapa Anda tidak bekerja dengan menjalankan caffe di linux untuk saat ini? Pengembang saya kira lebih fokus untuk mendapatkan kode FP16, INT8 dll berjalan dengan lancar terutama naibaf7 (david).

Dukungan jendela yang tepat pada akhirnya akan datang.

Hanya sebuah saran.

@atlury Saya ingin !!! Tetapi sistem kami adalah Windows 10 + Intel Iris ... Punya ide kapan dukungan Windows akan datang? Atau, platform DL lainnya berfungsi (menggunakan GPU)?

@gongzg Hanya ingin memperbarui kinerja Anda
CPU: 7 menit 33 detik, akurasi = 0.9914
GPU: 29 menit 34 detik, akurasi = 0.8406

Ingin tahu apa kinerja di Linux. Kemudian, saya dapat memiliki ide dasar tentang seberapa cepat menggunakan Intel GPU (OpenCL) vs CPU. Terima kasih!!

@ bx-sonavex

Ben apakah Anda mengaktifkan kernel opencl? Apakah Anda mencoba menggunakan INTEL_SPATIAL?

@atlury Apa maksud Anda "aktifkan kernel opencl"? Ya, saya mengikuti instruksi di sini (https://github.com/01org/caffe/wiki/clCaffe#how-to-build) dan melakukan "set USE_INTEL_SPATIAL = 1" di baris perintah (tidak langsung memodifikasi file build_win.cmd ).

MEMPERBARUI:
INFO: ================================================ ============
INFO: Ringkasan:
INFO: ================================================ ============
INFO: MSVC_VERSION = 14
INFO: WITH_NINJA = 0
INFO: CMAKE_GENERATOR = "Visual Studio 14 2015 Win64"
INFO: CPU_ONLY = 0
INFO: USE_CUDA = 0
INFO: USE_CUDNN = 0
INFO: USE_GREENTEA = 1
INFO: USE_LIBDNN = 1
INFO: USE_OPENMP = 0
INFO: USE_INDEX64 =
INFO: USE_INTEL_SPATIAL = 1
INFO: USE_ISAAC = 1
INFO: CMAKE_CONFIG = Rilis
INFO: USE_NCCL = 0
INFO: CMAKE_BUILD_SHARED_LIBS = 0
INFO: PYTHON_VERSION = 2
INFO: BUILD_PYTHON = 0
INFO: BUILD_PYTHON_LAYER = 0
INFO: BUILD_MATLAB = 0
INFO: PYTHON_EXE = "python"
INFO: RUN_TESTS = 1
INFO: RUN_LINT = 0
INFO: RUN_INSTALL = 1
INFO: ================================================ ============

@ bx-sonavex

Ben, Anda perlu menyertakan INTEL_SPATIAL untuk semua lapisan konvolusional di deploy.proto Anda. Saya pribadi telah mengujinya secara real time di linux.

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

"Saya telah menguji pada stik TV Intel, webcam menggunakan kernel Intel Spatial dan menggunakan model vgg 19 lapisan. Saya bisa mendapatkan klasifikasi waktu nyata dan semuanya di bawah 3,5 watt"

Windows juga harus berfungsi.

@ bxk-sonavex untuk masalah pada versi 01org, buka masalah di sana. Ada beberapa kegagalan pengujian karena masalah presisi FP16 pada kasus uji gradien yang tidak kritis tersebut. Performanya sangat lambat yang seharusnya disebabkan oleh penyetelan otomatis. Seharusnya jauh lebih cepat saat Anda menjalankannya lagi. Pertama-tama Anda dapat mencoba menggunakan build / tools / caffe untuk mengukur kinerja maju AlexNet.

Ngomong-ngomong, saya baru saja mengetahui bahwa @CNugteren merilis versi 1.2.0 baru dari pustaka CLBlast yang disetel secara otomatis beberapa hari yang lalu. Saya memeriksanya dan tampaknya berfungsi dengan Caffe di Laptop Lenovo Windows 10 saya dengan Intel 4400 GPU lama (serta di Linux) - jadi ini bisa menjadi tambahan yang bagus untuk Caffe karena versi CLBlast sebelumnya seg-faulting di Windows!

Jika Anda tertarik, Anda dapat memeriksa kecepatan Caffe dengan LibDNN dan CLBlast misalnya di SqueezeDet sebagai berikut (prosedur yang sama di Windows dan 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

Ini akan memakan waktu karena CK akan mencoba mendeteksi lingkungan dan kompiler Anda,
dan kemudian akan membangun kembali semua dependensi yang diperlukan pada mesin Anda.

Setelah itu Anda tinggal menginstal SqueezeDet dan menjalankan waktu internal:

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

Proses pertama bisa agak lambat karena kompilasi kernel dan caching sehingga proses kedua akan jauh lebih cepat!

Anda juga dapat mengukur klasifikasi gambar:

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

Tidak terkait dengan Intel tetapi hanya catatan bahwa tampaknya ada bug kecil saat mengompilasi Caffe dengan CLBlast 1.2.0 untuk Android ARM64 menggunakan Android GCC 4.9.x ("to_string" tidak ditemukan di kelas 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

Akan lebih baik untuk memperbaikinya karena CLBlast 1.1.0 berfungsi dengan baik di Android ... Dalam kasus seperti itu, ini akan bekerja dengan Caffe di semua platform.

Semoga bisa membantu dan semoga akhir pekan Anda menyenangkan!

sepertinya ada bug minor saat mengompilasi Caffe dengan CLBlast 1.2.0 untuk Android ARM64 menggunakan Android GCC 4.9.x ("to_string" tidak ditemukan di kelas std):

Tidak yakin apakah yang Anda maksud ini adalah bug di CLBlast atau di Caffe? Bagaimanapun, CLBlast telah menerapkan ini di header Android khusus. Mungkin itu bisa digunakan dalam Caffe juga?

@CNugteren - Saya baru saja memeriksa dan masalahnya bukan di CLBlast. Saya baru saja lupa tambalan di CK yang memperbaiki LibDNN untuk Android (jadi salah saya). Saya telah menambahkannya (https://github.com/dividiti/ck-caffe/blob/master/package/lib-caffe-bvlc-opencl-clblast-universal/patch.android/android.fgg.patch3) dan sekarang mungkin untuk mengkompilasi Caffe dengan CLBlast dan libDNN. Saya memeriksa contoh klasifikasi dan pembandingan pada Samsung S7 saya - berfungsi dengan baik. Mohon maaf atas alarm palsu ini dan terima kasih telah merilis CLBlast baru - Saya sekarang dapat menggunakannya di Caffe di Linux, Windows dan Android.

@gfursin Apakah ini versi yang menggunakan CPU atau GPU (OpenCL)? Saya pikir itu mengatakan bahwa OpenCL belum berfungsi pada Windows (atau setidaknya belum dengan Intel iGPU). Apa yang Anda gunakan di Windows?

@ bx-sonavex

Ben menyesal atas keterlambatan membalasnya. Tadi aku pergi.

Mengutip @ naibaf7
"Metode konvolusi (" mesin ") dapat dipilih / ditimpa secara alternatif dalam file prototxt jaringan"

Jadi tambahkan entri "mesin: INTEL_SPATIAL" ke semua spesifikasi lapisan konvolusi.

Ambil AlexNet sebagai contoh, edit file mengatakan $ CAFFE_ROOT / models / bvlc_alexnet / train_val.prototxt, dan tambahkan baris berikut untuk membuat lapisan konv1 dihitung menggunakan konvolusi spasial. Begitu juga mengubah lapisan lainnya

 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
     }
   }
 }

Sunting: Saya buruk, saya melihat Anda telah membuka utas lain dan tampaknya telah berkembang sedikit lebih.

@ bxk-sonavex - Saya menggunakan versi Caffe OpenCL (dengan libDNN dan CLBlast) pada Windows dengan GPU Intel 4400 lama TANPA Intel Spatial - tampaknya berfungsi dengan baik tetapi mungkin kurang optimal. Berikut adalah daftar perangkat Caffe ("ck run program: caffe --cmd_key = query_gpu_opencl"):
output_caffe_opencl_devices.txt

Berikut adalah output dari klasifikasi gambar pada Windows dengan versi OpenCL Caffe di atas dan GoogleNet:
output_caffe_opencl_image_classification.txt

Saya kebanyakan memeriksa inferensi / deteksi objek pada tahap ini (kami mencoba menyatukan instalasi DNN, pembandingan, dan pengoptimalan di semua platform yang memungkinkan) jadi saya tidak benar-benar menekankan kapabilitas dan model Caffe lainnya di Windows dengan OpenCL ...

Saya juga baru saja mencoba mengompilasi Caffe OpenCL dengan Intel Spasial ON ("ck install package: lib-caffe-bvlc-opencl-libdnn-clblast-universal --env.USE_INTEL_SPATIAL = ON") dan saya melihat 2 kesalahan build yang sama seperti sebelumnya dilaporkan sebelumnya oleh @atlury):
output_caffe_build_error_with_intel_spatial.txt

Apakah ada skrip build yang tersedia untuk Linux (Ubuntu 16.04) juga ?. Saya mendapatkan kesalahan saat mencoba mengkompilasi

@rachithayp Ikuti instruksi dengan seksama, ini akan bekerja bahkan pada seri 18.0x. Kami telah mengujinya.

Hai @rachp . Sebagai catatan, Anda mungkin perlu menambal kernel agar Intel OpenCL berfungsi di Ubuntu 16.04: https://github.com/dividiti/ck-caffe/wiki/Installation#Intel_CPUGPU_Linux .

Saya berhasil membangun cabang OpenCL Caffe di Ubuntu 18.04 saya (laptop Lenovo T470p dengan Intel GPU) tanpa menambal kernel dan dengan Intel OpenCL terbaru melalui CK beberapa minggu yang lalu:

$ 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 akan mencoba mendeteksi kompiler Anda yang tersedia, pustaka OpenCL dan dependensi lainnya, dan akan memanggil cmake untuk Caffe. Jika build berhasil, Anda dapat memeriksa penginstalan menggunakan CK virtual env:

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

Anda juga dapat mencoba klasifikasi gambar contoh sebagai berikut:

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

Semoga berhasil.

cc @ ens-lg4 dan @psyhtest ...

@atlury Saya dapat mengkompilasi menggunakan cmake di bawah ini:
cmake .. -DUSE_CUDA = OFF -DBUILD_docs = 0 -DOPENCL_LIBRARY = <> -DOPENCL_INCLUDE_DIRS = <>

Tetapi mencoba mengkompilasi dengan INTEL_SPATIAL_ON memberikan kesalahan di bawah ini:
cmake .. -DUSE_GREENTEA = ON -DUSE_CUDA = OFF -DUSE_INTEL_SPATIAL = ON -DBUILD_docs = 0 -DOPENCL_LIBRARY = <> -DOPENCL_INCLUDE_DIRS = <>

/ home / intel / Documents / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 19 : 1: error: 'LibDNNConvSpatial' tidak menyebutkan jenis
LibDNNConvSpatial:: LibDNNConvSpatial (konfigurasi LibDNNConvConfig) {
^
/ home / intel / Documents / caffe_src / opencl_caffe / src / caffe / libdnn / libdnn_conv_spatial. cpp: 117 : 25: error: penginisialisasi yang diharapkan sebelum token '<'
string LibDNNConvSpatial:: generate_fw_defs () {

Tahu apa yang salah ?. Juga tidak ada folder include / caffe / greentea di cabang opencl, jadi saya menyalinnya dari " https://github.com/01org/caffe ".

@tokopedia
Bisakah Anda mencoba instruksi dari bab di bawah ini? Ini adalah potongan kasar dari bab instalasi dari buku kami yang akan datang tentang opencl caffe. Terima kasih @ naibaf7

Saya harap ini akan menjelaskan dan membantu Anda dalam usaha pembukaan kafe Anda.

python-deep-learning-installation-chap.pdf

@ bxk-sonavex - Saya menggunakan versi Caffe OpenCL (dengan libDNN dan CLBlast) pada Windows dengan GPU Intel 4400 lama TANPA Intel Spatial - tampaknya berfungsi dengan baik tetapi mungkin kurang optimal. Berikut adalah daftar perangkat Caffe ("ck run program: caffe --cmd_key = query_gpu_opencl"):
output_caffe_opencl_devices.txt

Berikut adalah output dari klasifikasi gambar pada Windows dengan versi OpenCL Caffe di atas dan GoogleNet:
output_caffe_opencl_image_classification.txt

Saya kebanyakan memeriksa inferensi / deteksi objek pada tahap ini (kami mencoba menyatukan instalasi DNN, pembandingan, dan pengoptimalan di semua platform yang memungkinkan) jadi saya tidak benar-benar menekankan kapabilitas dan model Caffe lainnya di Windows dengan OpenCL ...

Saya juga baru saja mencoba mengompilasi Caffe OpenCL dengan Intel Spasial ON ("ck install package: lib-caffe-bvlc-opencl-libdnn-clblast-universal --env.USE_INTEL_SPATIAL = ON") dan saya melihat 2 kesalahan build yang sama seperti sebelumnya dilaporkan sebelumnya oleh @atlury):
output_caffe_build_error_with_intel_spatial.txt

apakah HD 4400 Anda bekerja lebih cepat dengan caffe daripada CPU?
Saya mengkompilasi clCaffe, dan menjalankannya di HD 5500 saya, tetapi ini 5 kali lebih lambat dari CPU (i3 5005U)
Saya tidak tahu kenapa.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat