File: README.powerpc

package info (click to toggle)
pocl 0.13-8
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 18,452 kB
  • ctags: 13,529
  • sloc: lisp: 113,221; cpp: 57,376; ansic: 25,021; sh: 6,150; makefile: 2,067; python: 699; pascal: 98; java: 72; xml: 49
file content (34 lines) | stat: -rw-r--r-- 1,543 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
PPPC-32
-------

Most pocl basic tests run successfully in a PPC32 userland. When compiling 
in "LLVM API mode", i.e. with --enable-llvmapi passed to confiure (note, this
is the default now), an issue with linking occurred: LLVM assumes on PPC that
the linker is able to generate branch islands, so there is no support for them
in LLVM PPC codegen. GNU BFD ld does not support them on PPC32 (and GNU gold 
suffers from an internal error, at the time of writing this), so no linker is 
available on most linuxes for PPC32 that would work with pocl. The error shows
itself when loading the compiled kernel .so with "file not found" errors, which
when investigating turn out to be too long jumps from the kernel. When linking in
LLVM lib, libpocl grows just enough that this issue shows with some OCL programs.
Using the scripts to compile kernels (i.e. pass --disable-llvmapi) seems to be
more robust. 

LLVM 3.4 does not work on PowerPC, as the address space cast operation 
cannot be selected on the PPC backend. Use LLVM 3.3 instead.

status 2012-11-21
-----------------

All pocl basic tests run successfully on a Debian Sid with PowerPC 64 
in a 64 bit userland with LLVM 3.2. Tested using the Cell of PlayStation 3.

Did not yet test the external OpenCL project tests.

to do
-----

- The threshold for wirepl is too large. The PowerPC of the Cell PPU 
  supports AltiVec which is capable of 4-wide f32 vectorization only. 
  Thus, a sensible threshold is probably at most 8 or so. This should be
  sniffed from the device driver somehow.