sumatra, graal, etc.
I didn't really wanna get stuck building stuff all day but that seems to have happened.
Sumatra uses auto* so it built easily no problem. Bummer there's no javafx but hopefully that isn't far off.
graal is a bit of a pain because it uses a completely custom build/update/everything mega-tool written in a single 4KLOC piece of python. Ok when it works but a meaningless backtrace if it doesn't. Well it is early alpha software I guess. Still ... why?
Anyway ... I tried building against 'make install' from sumatra but that doesn't work, you need to point your JAVA_HOME at the Sumatra tree as the docs tell you to. My mistake there.
So it turns out getting the hsail tools to build had some point after-all. The hsailasm downloaded by the "build" tool (in lib/okra-1.8-with-sim.jar) wont work against the libelf 0.x included in slackware (might be easier just building libelf 1.x). So I added the path to the hsailasm I built myself ... and ...
export PATH=/home/notzed/hsa/HSAIL-Instruction-Set-Simulator/build/HSAIL-Tools:$PATH ./mx.sh --vm server unittest -XX:+TraceGPUInteraction \ -XX:+GPUOffload -G:Log=CodeGen hsail.test.IntAddTest [HSAIL] library is libokra_x86_64.so [HSAIL] using _OKRA_SIM_LIB_PATH_=/tmp/okraresource.dir_7081062365578722856/libokra_x86_64.so [GPU] registered initialization of Okra (total initialized: 1) JUnit version 4.8 .[thread:1] scope: [thread:1] scope: GraalCompiler [thread:1] scope: GraalCompiler.CodeGen Nothing to do here Nothing to do here Nothing to do here version 0:95: $full : $large; // static method HotSpotMethodkernel &run ( align 8 kernarg_u64 %_arg0, align 8 kernarg_u64 %_arg1, align 8 kernarg_u64 %_arg2 ) { ld_kernarg_u64 $d0, [%_arg0]; ld_kernarg_u64 $d1, [%_arg1]; ld_kernarg_u64 $d2, [%_arg2]; workitemabsid_u32 $s0, 0; @L0: cmp_eq_b1_u64 $c0, $d0, 0; // null test cbr $c0, @L1; @L2: ld_global_s32 $s1, [$d0 + 12]; cmp_ge_b1_u32 $c0, $s0, $s1; cbr $c0, @L12; @L3: cmp_eq_b1_u64 $c0, $d2, 0; // null test cbr $c0, @L4; @L5: ld_global_s32 $s1, [$d2 + 12]; cmp_ge_b1_u32 $c0, $s0, $s1; cbr $c0, @L11; @L6: cmp_eq_b1_u64 $c0, $d1, 0; // null test cbr $c0, @L7; @L8: ld_global_s32 $s1, [$d1 + 12]; cmp_ge_b1_u32 $c0, $s0, $s1; cbr $c0, @L10; @L9: cvt_s64_s32 $d3, $s0; mul_s64 $d3, $d3, 4; add_u64 $d1, $d1, $d3; ld_global_s32 $s1, [$d1 + 16]; cvt_s64_s32 $d1, $s0; mul_s64 $d1, $d1, 4; add_u64 $d2, $d2, $d1; ld_global_s32 $s2, [$d2 + 16]; add_s32 $s2, $s2, $s1; cvt_s64_s32 $d1, $s0; mul_s64 $d1, $d1, 4; add_u64 $d0, $d0, $d1; st_global_s32 $s2, [$d0 + 16]; ret; @L1: mov_b32 $s0, -7691; @L13: ret; @L4: mov_b32 $s0, -6411; brn @L13; @L10: mov_b32 $s0, -5403; brn @L13; @L7: mov_b32 $s0, -4875; brn @L13; @L12: mov_b32 $s0, -8219; brn @L13; @L11: mov_b32 $s0, -6939; brn @L13; }; [HSAIL] heap=0x00007f47a8017a40 [HSAIL] base=0x95400000, capacity=108527616 External method:com.oracle.graal.compiler.hsail.test.IntAddTest.run([I[I[II)V installCode0: ExternalCompilationResult [HSAIL] sig:([I[I[II)V args length=3, _parameter_count=4 [HSAIL] static method [HSAIL] HSAILKernelArguments::do_array, _index=0, 0xdd563828, is a [I [HSAIL] HSAILKernelArguments::do_array, _index=1, 0xdd581718, is a [I [HSAIL] HSAILKernelArguments::do_array, _index=2, 0xdd581778, is a [I [HSAIL] HSAILKernelArguments::not pushing trailing int Time: 0.213 OK (1 test)
Yay? I think?
Maybe not ... it seems that it's only using the simulator. I tried using LD_LIBRARY_PATH and -Djava.library.path to redirect to the libokra from the Okra-Interface-to-HSA-Device library but that just hangs after the "base=0x95..." line after dumping the hsail. strace isn't showing anything obvious so i'm not sure what's going on. Might've hit some ubuntu compatibility issue at last or just a mismatch in versions of libokra.
On the other hand ... it was noticeable that something was happening with the gpu as the mouse started to judder, yet a simple ctrl-c killed it cleanly. Just that alone once it makes it into OpenCL will be worth it's weight in cocky shit rather than just hard locking X as is does with catalyst.
Having just typed that ... one test too many and it decides to crash into an unkillable process and do weird stuff (and not long after I had to reboot the system). But at least that is to be expected for alpha software and i've been pretty surprised by the overall system stability all things considered.
I think next time I'll just have a closer look at aparapi because at least I have that working with the APU and i'm a bit sick of compiling other peoples code and their strange build systems. Sumatra and graal are very large and complex projects and a bit more involved than I'm really interested in right now. I haven't used aparapi before anyway so I should have a look.
If the slackware vs ubuntu thing becomes too much of a hassle I might just go and buy another hdd and dual-boot; I already have to multi-boot to switch between opencl+accelerated javafx vs apu.
Update: Actually there may be something more to it. I just tried creating my own aparapi thing and it crashed in the same way so maybe i was missing some env variable or it was due to a suspend/resume cycle.
So I just had another go at getting the graal test running on hsail and I think it worked:
export JAVA_HOME=/home/notzed/hsa/sumatra-dev/build/linux-x86_64-normal-server-release/images/j2sdk-image export PATH=${JAVA_HOME}/bin:${PATH} export LD_LIBRARY_PATH=/home/notzed/hsa/Okra-Interface-to-HSA-Device/okra/dist/bin ./mx.sh --vm server unittest -XX:+TraceGPUInteraction -XX:+GPUOffload -G:Log=CodeGen hsail.test.IntAddTest [HSAIL] library is libokra_x86_64.so [GPU] registered initialization of Okra (total initialized: 1) JUnit version 4.8 ... Time: 0.198 OK (1 test)
Still, i'm not sure what to do with it yet ...
I was going to have a play today but I just got the word on work starting again (I can probably push it out to Monday) so I might just go to the pub or just for a ride - way too nice to be inside getting monitor burn. I foolishly decided to walk into the city yesterday for lunch with a mate I haven't seen for years (and did a few pubs on the way home - i was in no rush!) but just ended up with a nice big blister and sore feet for my troubles. It's about a 45 minute walk into the city but I don't do much walking.
I want see if anything interesting comes out of the Sony's GDC talk first though (the vr one? - yes the VR one, it's just started).
And ... done. Interesting, but still early days. Even if they release a model for the public at a mass-market price it's still going to have to be a long term project. Likely the first 5-10 years will just be experimentation and getting the technology the point where it is good and cheap enough.
Update: Yep, i'm pretty sure it's just a problem with suspend/resume. I just tried running it after a resume and it panicked the kernel.