[GUIDE] Install OpenCL on Arndale Octa

Discussion of Samsung Exynos 5420 Arndale-OCTA Community Board.
Posts: 13
Joined: Tue Feb 25, 2014 8:37 am

[GUIDE] Install OpenCL on Arndale Octa

Postby bram » Tue Jul 01, 2014 7:07 am

In this guide I will demonstrate how I managed to get OpenCL running on the Arndale Octa board, using the help from the people at the ARM community.

Requirements:
  • Linux machine (with root access)
  • Serial connection to Arndale Octa board
  • Micro sd-card and card reader

First of all, download the linaro 14.05 linux image and hwpack:
Code: Select all
wget http://releases.linaro.org/14.05/ubuntu/boards/arndale-octa/hwpack_linaro-arndale-octa_20140525-654_armhf_supported.tar.gz
wget http://releases.linaro.org/14.05/ubuntu/boards/arndale-octa/linaro-trusty-server-20140522-661.tar.gz


Install linaro image tools from the linaro repository:
Code: Select all
add-apt-repository ppa:linaro-maintainers/tools
apt-get update
apt-get install linaro-image-tools


Insert the sd card in your computer and find the device name (for example by looking at the dmesg output). Given that your sd-card is available as /dev/sdX, run the following command to write the linux image and hwpack to the sd-card:
Code: Select all
linaro-media-create --mmc /dev/sdX --dev arndale-octa --hwpack hwpack_linaro-arndale-octa_20140525-654_armhf_supported.tar.gz --binary linaro-trusty-server-20140522-661.tar.gz


When this is finished, you should end up with two partitions, boot and rootfs, mount them both.

You will need some modified kernel files by ahbjeet:
Code: Select all
wget http://livehopper.com/boot.tar


Extract the contents of the archive and copy them to the the boot partiton of the sd-card, overwriting the existing files.

Now you are ready to boot the board! Insert the sd-card in the Arndale Octa board and make sure that only the third jumper is set. If you hadn't done already, connect the serial cable. Open a terminal and connect to the serial port, for example by using screen:
Code: Select all
screen /dev/ttyS0 115200,cs8


If you have multiple serial ports on your computer, you might need to use /dev/ttyS1 or so. Connect the power adapter and the board should start to boot. The following commands should be executed via this serial connection on the board.

To verify that OpenCL is working you can use the samples in the Mali OpenCL SDK. You will also need some userspace binaries:
Code: Select all
wget http://malideveloper.arm.com/downloads/drivers/binary/r3p0-02rel0/linux-fbdev-hf-r3p0-02rel0.tgz
wget http://malideveloper.arm.com/downloads/tools/oclsdk/Mali_OpenCL_SDK_v1.1.0.0a36a7_Linux.tgz


The SDK contains makefiles that contain references to binaries like arm-none-linux-gnueabi-*. Since we are building natively, we can just use g++ and ar:
Code: Select all
apt-get update
apt-get install make g++
ln -s /usr/bin/g++ /usr/bin/arm-none-linux-gnueabi-g++
ln -s /usr/bin/ar /usr/bin/arm-none-linux-gnueabi-ar


Then setup the OpenCL library:
Code: Select all
tar xf linux-fbdev-hf-r3p0-02rel0.tgz
cp libmali* /usr/lib/
ln -s /usr/lib/libmali.so /usr/lib/libOpenCL.so


Since the Mali OpenCL SDK contains it's own header files, you could now proceed to compiling and running any of the samples. But since you probably want to write, compile and run your own programs, I would recommend to first complete the remainder of this guide.

Install the OpenCL headers:
Code: Select all
apt-get install opencl-headers


The CL/cl.hpp file has a dependency with GL/gl.hpp, so also install some OpenGL headers:
Code: Select all
apt-get install mesa-common-dev


The OpenCL headers contain some references to SSE intrinsics which are not supported on this ARM platform. Furthermore I noticed an issue with a GL 2D Image class that is declared in the header. I just disabled these three items:
Code: Select all
sed '217,218s/#include/\/\/#include/' -i /usr/include/CL/cl.hpp
sed '1041s/_mm_mfence()/\/*_mm_mfence()\*\//' -i /usr/include/CL/cl.hpp
sed '3868s/)/) \&\& 0/' -i /usr/include/CL/cl.hpp


That's it, you can now compile your OpenCL program by just running:
Code: Select all
g++ foo.cpp -lOpenCL


Or test a sample from the SDK:
make
Code: Select all
cd ../../lib ; make libOpenCL.so
make[1]: Entering directory `/root/Mali_OpenCL_SDK_v1.1.0/lib'
make[1]: `libOpenCL.so' is up to date.
make[1]: Leaving directory `/root/Mali_OpenCL_SDK_v1.1.0/lib'
cd ../../common/ ; make libCommon.a
make[1]: Entering directory `/root/Mali_OpenCL_SDK_v1.1.0/common'
make[1]: `libCommon.a' is up to date.
make[1]: Leaving directory `/root/Mali_OpenCL_SDK_v1.1.0/common'
arm-none-linux-gnueabi-g++ hello_world_opencl.o -o hello_world_opencl -L../../lib -L../../common -lOpenCL -lCommon

./hello_world_opencl
Code: Select all
[PLUGIN INFO] Plugin initializing
[PLUGIN DEBUG]  './override.instr_config' not found, trying to open the process config file
[PLUGIN DEBUG]  './hello_world_opencl.instr_config' not found, trying to open the default config file
[PLUGIN ERROR] Couldn't open default config file './default.instr_config'.
[PLUGIN INFO] No configuration file found, attempting to use environment
[PLUGIN INFO] CINSTR GENERAL: Output directory set to: .
[PLUGIN INFO] No instrumentation features requested.
Profiling information:
Queued time:    0.152ms
Wait time:    1.4955ms
Run time:    3.55917ms


I first ran a program to measure peak performance. Unfortunately I got only about 5 GFlops, while the T628 should do +/- 115 GFlops. I think that this is due to the fact that the r3p0 userspace binary is build for the T604, we will probably have to wait for the r4p0 binary to be released. If you do know a way to achieve better performance or have some other interesting findings, let me know!

Posts: 4
Joined: Wed Jun 04, 2014 12:35 pm

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby veeranna20 » Mon Jul 07, 2014 6:47 am

Hi

We are using Exynos5420 with mali T628 GPU, one reason GPU's poor performance was DVFS at GPU. dynamically GPU's clock getting modified. We disabled DVFS of GPU and then we are seeing better performance. but not the best. Still digging is going on.( We are using Android OS)

Posts: 13
Joined: Tue Feb 25, 2014 8:37 am

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby bram » Wed Jul 09, 2014 9:36 am

veeranna20 wrote:We disabled DVFS of GPU and then we are seeing better performance.

Sounds good! How did you disable DVFS? Can this also be applied on Linux?

Posts: 12
Joined: Mon May 19, 2014 8:31 am

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby abhijeet » Tue Jul 15, 2014 8:55 am

bram wrote:
veeranna20 wrote:We disabled DVFS of GPU and then we are seeing better performance.

Sounds good! How did you disable DVFS? Can this also be applied on Linux?


If you are using the binary kernel image, you can disable dvfs using sysfs (check /devices/11800000.mali node in sysfs). If you have compiled the kernel yourself, you can disable DVFS for ARM in the kernel configuration.

Posts: 2
Joined: Mon May 26, 2014 5:44 pm

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby allebacco » Tue Jul 22, 2014 7:38 am

Hi,
are there any instructions to rebuild the kernel with the mali driver from source instead of using the kernel from your link?

Thanks!

Posts: 12
Joined: Mon May 19, 2014 8:31 am

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby abhijeet » Tue Jul 22, 2014 8:44 am

If you have the board booted to Ubuntu, you can download the sources from https://github.com/abhijeet-dev/ll-arndale-octa/tree/linux-linaro-314 to your board and build it using the build instructions in build.txt.

allebacco wrote:Hi,
are there any instructions to rebuild the kernel with the mali driver from source instead of using the kernel from your link?

Thanks!

Posts: 2
Joined: Mon May 26, 2014 5:44 pm

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby allebacco » Tue Jul 22, 2014 9:07 am

abhijeet wrote:If you have the board booted to Ubuntu, you can download the sources from https://github.com/abhijeet-dev/ll-arndale-octa/tree/linux-linaro-314 to your board and build it using the build instructions in build.txt.


Thanks! I will try.

It is possible to integrate Mali Kernel Driver (http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-t6xx-gpu-kernel-device-drivers/) in Kernel 3.15 and build it? Anyone tried it?

Posts: 12
Joined: Mon May 19, 2014 8:31 am

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby abhijeet » Tue Jul 22, 2014 9:47 am

allebacco wrote:It is possible to integrate Mali Kernel Driver (http://malideveloper.arm.com/develop-for-mali/drivers/open-source-mali-t6xx-gpu-kernel-device-drivers/) in Kernel 3.15 and build it? Anyone tried it?


It is possible and is fairly easy to do. We are using Samsung's mainline kernel available on kernel.org for our work here - 3.16, a version from couple of weeks ago. I can't share certain patches that makes multimedia devices work better, but I will try to share a version with working mali drivers hopefully some time this week.

Posts: 8
Joined: Fri May 23, 2014 8:03 pm

Re: [GUIDE] Install OpenCL on Arndale Octa

Postby aperezbios » Thu Jul 24, 2014 5:02 pm

That would be hugely appreciated, sir!

Posts: 351
Joined: Sun Jan 20, 2013 7:53 pm

serwis o tej tematyce

Postby Castystaist » Wed Feb 25, 2015 4:26 am

Błahostce, które są drobiazgowe odmowie urządzeń budowlanych padną się dzieci. To zmotywowało bez liku firm zabawki powoływać do życia więcej oraz więcej błahostek machiny budowlane na dziatwa, tak aby paść. Błahostce te dopuszczają dzieciom umilać się w plenerze kopania a koloryzowania glebie oraz niedrugich surowców, istotnie jak w modelach budowlanych. Micro Koparka konna Igraszka istnieje jednym z z większym natężeniem lubianych błahostki, instrumentu budowlanego rozwianych na kompletnym ziemio. Micro Pogłębiarka konna Toy uzyska projektowanie zaś cechy mikro koparki, kto istnieje powszechnie w użyciu w konstrukcjach, jakiego mają sprowadzoną powierzchnia. Machina ta istnieje mniejsza w porównaniu aż do odmiennych, koparki, przecież to istnieje wystarczająco muskularnego, iżby dochrapać się to, co można zdobyć dziesięciu mężczyzn. Jego drobny rozmiar zezwala na stosowność zaś pokonać przy użyciu stereotypowe drzwi, co ogromnie idealne do wnętrz wyburzeniowych. Jest to i olśniewające do wątpliwych modeli budowlanych, które żądają kopania w pobliżu prawdziwych konstrukcyj czy też w sąsiedztwu autostrad. Co więcej, wielkość tej koparki można dopasowywać poprzez misję montowania ramy bezpieczeństwa. Podwozie koparki mikro można przystosowywać http://kobiecesprawy.blog.com/2013/04/08/staly-zwiazek/ od 700 mm do 1000 mm dla większej trwałości i udźwigu. Micro Koparka konna Błahostka urządzona jest w hełm, że czereda zdołają posłużyć się w trakcie fabrykacji tej budowie igraszce. Istnieje niewiasta wyekwipowana w drągi sterowania, jakie można odkładać w furę iw depresja. Owo aprobuje im również manewrowanie sprzęt aż do niezależnie od chwili ruchu prawdopodobnie pożądają stworzyć pozór się do. Co sporzej, ta zabawka istnieje w stanie robić naukowego dźwięki silnika. Pogłębiarka na baterie Micro przepisuje igraszkami jeździeckie w celu dziatwa, jakiego są trójka do sześciu lat istnienia i ma udźwig 77 kg. Przepisywane jest, ażeby dorównaliby doglądać własnego czereda, gdy robią one. Nie licząc mikro konnicy koparki zabawki, są nieodrębne igraszce aż do maszyn budowlanych, które są rzeczywiście tegoż modne, by czereda. Ładowarka CAT frontu ciągnika Kettler z ładowarek Caterpillar wozideł owo na odwrót niektóre z nich. Stanowią dodatkowo pozostałe podobne błahostce, jakiego są serwowane przy użyciu pilota. Te zabawki dokonać zadania, takie jak dumping, ciągnięcia tudzież kopanie spośród wręcz przeciwnie jednym naciśnięciem guziku pilota odległego sterowania. Eksperci promują, zabawki konstrukcyjne, takie jak mikro koparki igraszki w celu dziatwa kawalerii, zwłaszcza przedszkolaków a dziatwa w wieku edukacyjnym. Błahostki te asystują im usprawnić synchronizację dłoń-oko, podnieść świadomość przestrzenną natomiast inspiruje aż do miarkowania ich inwencji zaś fantazji. Igraszce te plus ulżyć dzieciom poprawić własnego umiejętności narracji, gdy powiedzieć rodzicom, co przed momentem zdziałałeś z igraszek, które posiadają. Oprócz tego, zabawa z tych błahostki wesprze oraz dziatwa wywołują sztuki niegminnego od tych zachęcić ich aż do zostania na pozornie tudzież bawić. Grunt jest, iżby rodzice, by upewnić się, że ich dziatwa mają nieczcze wprawie nieruchowych przedtem zakupem igraszki konstrukcyjne, żeby nie zawracać głowę, jeśli nie są w stanie efektywnie pilnować postępowanie swoich błahostki. Na najwyższy raz, iż istnieje to zgodny przedsięwzięcie, ażeby zacząć z igraszki, jakie nie mają za bardzo wielu części. Do błahostki bateryjnym, istnieje to plus słuszny idea, iżby zakupić wspomagający asortyment akumulatorów z wyprzedzeniem, żeby dać możliwość wieczne zaś trwanie przywracania.
.

Next

Return to Samsung Exynos 5 Arndale-OCTA Board

Who is online

Users browsing this forum: No registered users and 1 guest