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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
Things To Do:
Roadmap
=======
1. Resync with git.ti.com/opencl.
Update to latest common code from the TI repo.
2. Merge TI OpenCL DSP Device support from git.ti.com/opencl.
Get the CPU and DSP device support to act as plugins to a common
framework, so that they may coexist.
3. Validate CPU Device for ARMv8, x86_64
Ensure same tests that pass on ARM also work on x86.
4. Update to OpenCL v 1.2
5. Move to SPIR.
Once a SPIR to ARM backend becomes available, move to SPIR as a more
standard IR.
Issues:
=======
1. Khronos tests:
The majority of Khronos basic tests pass, proving that MCJIT is working
pretty well for ARM.
The remaining Khronos 'basic' test failures (ARM only), documented here:
tests/basic_test_failures.lst
Some of the other Khronos tests behond "basic" have been run on ARM,
but the failures have yet to be analysed.
computeinfo: PASS
api: 55/61 PASS
basic: 87/95 PASS
buffers: 78/81 PASS
commonfns: 17/17 PASS
2. Builtins:
atomic builtins not yet implemented.
math builtins implemented (using libm or builtins), but not all pass the
Khronos criteria for accuracy.
The current clc.h has its roots in LLVM libclc, but has diverged. It
may be interesting to resync with that project, if those builtins
actually pass the Khronos tests.
3. DSP Device support:
This requires extra TI DSP compiler, DSP side files and builtin library
support which is released by TI as part of its Keystone II MCSDK-HPC product.
Though the CMake files allow building for TI devices, all the DSP side files
are not in opensource, so the build defaults to SHAMROCK build type,
building for CPU Device only.
|