Presented by Mikael Lepisto, Vincit
WebCL is OpenCL brought to web sites. Since the code is downloaded from untrusted source level of protection is needed. Protection guarantees that kernels will not have uninitialised data which could leak sensitive information and that kernel cannot read/write memory that is not allocated for them.
Work done is the reference implementation of the kernel side memory protection of WebCL for Khronos Group. The protection uses untraditional protection method, which exploits certain restrictions of OpenCL C language to make it low overhead. Used method does not require any kind of tracking of valid areas of single pointer which allows using all OpenCL C features including calculations with pointer values. e.g. more traditional fat-pointer approach would apply limits to pointer arithmetics and casting.
Protection was implemented as source to source transformation, but the same method can be implemented also on SPIR level.