aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 6a0f39947231343bf8873de2ebfc2caa8021e64e (plain)
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.