-
Notifications
You must be signed in to change notification settings - Fork 81
Limitations
doe300 edited this page Dec 18, 2019
·
6 revisions
- Supports only the
EMBEDDED_PROFILE
of the OpenCL 1.2 standard (no 64-bit arithmetic, no denormalfloat
numbers, etc.) - Due to the constraints of the hardware, the maximum work-group size is 12 work-items!
See also hardware limitations and performance limitations and unsupported libraries.
Using VC4CL in combination with other applications using the VideoCore IV GPU (e.g. the V3D Mesa driver) is untested and can cause issues on both sides!
- The maximum buffer-size which can be allocated (in a single allocation) is set to half of the available video memory (set via
/boot/config.txt
) - See the page about the runtime-library for limits specific to some API-functions
- The data-types
double
(cl_khr_fp64
),half
(cl_khr_fp16
) andlong
are unsupported, since the VideoCore IV GPU only provides 32-bit instructions. - Most of the mathematical functions are untested, have bad performance or wrong edge-case behavior
- The data-types
double
(cl_khr_fp64
),half
(cl_khr_fp16
) andlong
are unsupported, since the VideoCore IV GPU only provides 32-bit instructions. - if the CLang used is updated, the PCH and modules file (target
vc4cl-stdlib
) need to be rebuilt (see here).
- Supports modules (compilation units) with up to 1024 kernels, 8 MB of global data and 512 kB maximum stack-frame
- Kernels support names with up to 1024 characters, 32 MB of code size and a maximum code offset of 128 MB (e.g. the last kernel starting at position 128 MB)
- Parameters support a maximum of 4k characters for both parameter-name and type-name
- Parameters support types (i.e. structs) with up to 4KB of size