Aparapi on HSA on Slackware on Kavaeri on ASROCK
Although i've been waiting with bated breath for HSA to arrive ... the last I heard about a month ago via the aparapi mailing list was that the drivers weren't quite ready yet. So I was content to wait patiently a bit longer. Then somehow the first I heard that the alpha became available from one of the few comments on this blog and apparently it's been out for a few weeks. I couldn't find any announcement about it?
So yesterday before I went out and this morning I followed Linux-HSA-Drivers-And-Images-AMD and SettingUpLinuxHSAMachineForAparapi trying to get something working. As i'm using a different motherboard and OS it was a little more involved although I made it more involved than it should've been by making a complete pigs breakfast out of every step along the way due to being a bit out of practice.
But after getting a working kernel built and X sorted I just ran the test example a few seconds ago:
$ ./runSquares.sh using source from Squares.hsail 0->0, 1->1, 2->4, 3->9, 4->16, 5->25, 6->36, ;7->49, 8->64, 9->81, 10->100, 11->121, ;12->144, 13->169, 14->196, 15->225, 16->256, ;17->289, 18->324, 19->361, 20->400, 21->441, ;22->484, 23->529, 24->576, 25->625, 26->676, ;27->729, 28->784, 29->841, 30->900, 31->961, ;32->1024, 33->1089, 34->1156, 35->1225, 36->1296, ;37->1369, 38->1444, 39->1521, PASSED $
I'm presuming 'PASSED' means it worked.
I'm not sure how much i'll do today but i'll next look at the hsa branch of aparapi, sumatra?, and then I want to look a bit closer. I haven't been able find much detailed technical documentation yet but there is the kernel driver at least now and hopefully it's coming soon.
On Slackware
I'm using the ASROCK FM2A88X-ITX+ motherboard with Slackware64 14.1 and using the DVI and HDMI outputs in a dual-head configuration. Just getting Slackware 14.1 working on it reliably required a BIOS upgrade but i'm not sure what version it is right now.
To compile a fresh checkout of the correct kernel I tried the supplied kernel config file 3.13.0-config
at first but that didn't work it just hung on the loading kernel line from elilo. After a couple of aborted attempts I managed to get a working kernel by starting with /boot/config-generic-3.10.17
as the .config
file, running make oldconfig
and holding down return until it finished to accept all the defaults, then using make xconfig
to make sure my filesystem driver wasn't a module (which i of course forgot the first time).
Getting dual-screen X was a bit confusing - searches for xorg.conf configuration is pretty much a waste of time I think mostly because every config file is filled with non-important junk. But I finally managed to get it going even if for whatever reason it comes up in cloned mode but I can fix it manually running xrandr after i login. Because I'm not ready to make this permanent is good enough for me. As I was previously using the fglrx driver I had initially forgotten to de-blacklist the radeon kernel module but that was an easy fix.
This is how I set up the screen config.
$ xrandr --output HDMI-0 --right-of DVI-0
I'm not ready to make this my system yet because afaik OpenCL isn't available for this driver interface yet. Although the Okra stuff includes libamdhsacl64.so
so presumably it isn't too far away.
Aparapi
I got aparapi going quite easily.
But beware, don't run '. ./env.sh' directly to start with - any error and it just closes your shell window! So test with 'sh ./env.sh' until it passes it's checks.
I used the ant that comes with netbeans and I already had AMD APP SDK 2.9 and Java 8 installed.
Not sure if it's needed but I noticed a couple of variables were blank so I set them in env.sh.
export APARAPI_JNI_HOME=${APARAPI_HOME}/com.amd.aparapi.jni export APARAPI_JAR_HOME=${APARAPI_HOME}/com.amd.aparapi
Once env.sh was sorted it built in a few seconds and the mandelbrot demo ran in suitably impressive fashion.
Well this should all keep me busy for a while ...