2015-06-30 17 views
5

Bir kullanıcı tarafından SoC prototipleme kartında tasarlanan bir sistemde OpenCL çalıştırılabilir mi? Daha spesifik olmak gerekirse, Dual ARM çekirdeklerine ve Programlanabilir Mantık (PL) Alanına sahip bir ZedBoard (Xilinx Zynq) var. Mantık alanında, ARM çekirdeğinde ve AXI ara bağlantısında uygulanan bir video işleme hızlandırıcısı olan kendi kendime ait basit bir sistem tasarlarsam, bu basit sistem için OpenCL desteği sağlamak için ne yapmam gerekir? (Bu basit sistemde, ARM çekirdeği "Ana Makine" olabilir ve video işlem hızlandırıcı "cihaz" olabilir).SoC prototip kurulu üzerindeki özel sistemler için OpenCL

Ben bir öğrenciyim ve OpenCL hakkında sadece bazı temel bilgilere sahibim. Sorumu araştırdım ve kendimi karıştırmaya başladım. Bir SoC için OpenCL desteği sağlamak için yapılması gerekenler nelerdir? Bunun büyük bir proje olabileceğini anlıyorum, ancak nereden başlayacağımı ve nasıl devam edeceğimi gösteren bir kılavuza ihtiyacım var.

+0

Yardımcı olup olmadığından emin değil, ancak en azından * OpenCL uygulamalarının olduğu ARM tabanlı işlemciler var: http://www.ziilabs.com/products/software/opencl.php – Marco13

cevap

1

Bu basit sistem için OpenCL desteği sağlamak için ne yapmam gerekir?

ARM işlemcinizi veya FPGA'yı (veya her ikisini birden) kullanan bir OpenCL platformunu uygulayın. Bunun senin için neredeyse imkansız olduğunu söyleyebilirim; Kolay bir şekilde (ve kesinlikle yetenekli mühendis/bilgisayar bilimcileri istihdam etmek için mali araçlara sahipler) ve bir FPGA üzerinde hızlandırıcıları uygulamak, ARM'nin, FPGA geliştirmesinin yanı sıra derleyici teorisi ve sistem tasarımında deneyim. Kulağa hoş gelmek istemiyorum, ama bu üçten hiçbirine sahip değilsiniz.

'u nereden buldunuz; Sadece ilk hızlandırıcı yazmayı tavsiye ederim, ör. sayılardan oluşan bir vektör ekler; Buna sahip olduğunuz anda, göreviniz hakkında daha net bir fikre sahip olacaksınız.

Referansa göz atmak isterseniz: Ettus USRP E310, bir zynq tabanlı SDR aygıtıdır. Ettus'un allows users to write their own blocks to push data through numaralı RFNoC adlı bir teknolojisi var. Bunun çok az sayıda mühendis ve işe başlamak için epey zaman aldığı dikkat edin. Ayrıca OpenCL'yi FPGA uygulamalarına dönüştüren bir şeyin uygulanmasından çok daha kolay olduğuna dikkat edin.

+0

Yanıtınız için teşekkür ederiz. Haklısın, çok az bilgiye sahibim, bir lisans öğrencisiyim ve sadece başlamak istiyorum. "Bir OpenCL platformu uygula" dedin; pocl (www.portablecl.org) gibi bir şey yardımcı olur mu? – Haq100

+0

Bu daha az bir bilgi sorunudur, insan gücünden daha azdır - çalışan bir açıkCL uygulamasına sahip olmak geliştiricilerin çoğunu alır. Elbette, pocl gibi genel amaçlı CPU OpenCL platformlarını kullanabilirsiniz, ancak OpenCL algoritmalarınız bu platformların özellikleriyle çok uyumlu olmadıkça size gerçekten önemli bir hızlanma sunmaz. Genel olarak, ARM'nin üzerinde çalışmak istediğiniz şey olmadığını söylediğimde bana inanın - akıllı telefonlarda aldığınızdan daha katı bir faktörle daha yavaş. –

+0

Xilinx'in ayrıca Zynq için bir OpenCL uygulaması olduğunu eklemek isterim. –

0

ARM OpenCL SDK'sini deneyin. Zedboard bir ARM A9 işlemciye sahip, bu OpenCL çalıştırabilirsiniz bir NEON SIMD vektör ünitesi http://www.arm.com/products/processors/technologies/neon.php olmalıdır. Bakınız http://www.arm.com/products/multimedia/mali-technologies/opencl-for-neon.php.

Zedboard, OpenCL uyumlu bir platform olarak listelenmiyor https://www.khronos.org/conformance/adopters/conformant-products#opencl. Yani, ARM sürücüsünün çalışmayacağı bir şans var.

İyi şanslar!

+1

A9'un kapsanmasının farkında değildim! Güzel. Ancak, eğer bir zynq varsa ve numaranızı ARM üzerinde çırpıyorsanız, yanlış bir şey yapıyorsunuz demektir ... –

+2

Xilinx, Zynq için bir OpenCL uygulaması sağlar. –

+0

@buttifulbuttefly bu harika, ama ne işe yarıyor? FPGA üzerinde belirli bir vektör proc uygulamak? –

1

Xilinx araçlarına erişiminiz varsa: Vivado HLS 15.1 Sistem Sürümü, OpenCL kernellerini derlemelidir. Bu ayrıca SDAccel araç takımında yer alacaktır.

Kaynak: UG973: Vivado Design Suite User Guide Release Notes, Installation,and Licensing

alternatif Altera geçiş olabilir. Onlar Xilinx Zynq cihazlara karşılaştırılabilir Altera Cyclone V SoC için bazı iyi örnekler sunmak (aynı zamanda ARM Cortex-A9 içerir): Ben de öğrenciyim AlteraSDK for OpenCL

1

ve benim mevcut proje de aynı yönde oluyor, Ben zedboard üzerinde POCL denilen opencl bir sürümünü başarıyla yükledim, başarıyla zedboard kol cpu algılar. Pocl kurmak için, llvm ve başka şeylerin de bir boynuzuna ihtiyacınız var.ama temel adımlar aşağıda verilmiştir zedboard üzerinde POCl kalkmaya: -

  1. takma POCl:

http://www.hosseinabady.com/install-pocl-opencl

  1. çalışan örnek: http://www.hosseinabady.com/embedded-system-by-examples/opencl_embedded_system/opencl-vector-addition

  2. Çok fazla bağımlılık: kolayca çözümlenebilir

ama LLVM sen POCb 3.4 sürümünü yüklemek emin olun 0.9

  1. Adımlar

https://github.com/pacs-course/pacs/wiki/Instructions-to-install-clang-3.1-on-ubuntu-12.04.1-and-12.10

POCl 0.9 başarıyla için çalıştığını LLVM yüklemeye Ben kurulum olarak, sen hwloc, mesa kütüphaneleri, açık gl/cl üstbilgileri icd yükleyiciler gibi birçok eksik bağımlılıklarla karşılaşacağız, umarım bunları yığın taşmasına koymak için çok büyük bir liste olarak çözebilirsiniz.

açık cl cihazı olarak FPGA algılamak amacıyla

, yapılacak önemsiz bir şey olacak thats, i github üzerinde de

https://github.com/pocl/pocl/issues/285

ve yayınlanan bu bağlantıyı soruya başvurabilirsiniz yayınlarda bulunan hosseinbady tarafından yayınlanan araştırma kağıt POCl web sitesinde

http://pocl.sourceforge.net/publications.html

umut bağlamak bu size

yardımcı olur