Following Monday&rsquo,s announcement of OpenGL ES Trio.1, Khronos is back again with a slate of fresh standards announcements. Unlike Monday&rsquo,s concentrate on OpenGL ES, the bulk of thesis announcements fall on the compute side of the spectrum, which for Khronos and its members is still a fresh and somewhat unpredictable market to participate te.
The headliner for today&rsquo,s specification releases is WebCL, Khronos&rsquo,s standard for permitting OpenCL within a web browser. Khronos has bot working on the standard for almost Two years te draft form, and spil of today the final specification is being released.
With WebCL Khronos and its members are looking to do for OpenCL what WebGL has done for OpenGL, which is to make a suitable subset of thesis APIs available ter browsers. With strong &ldquo,web application&rdquo, style websites continuing to grow ter popularity, the idea is to expose thesis APIs to programs running ter a web browser, to reap the many of the same benefits that native programs would have from using the full-fledged version of their respective API. WebGL has already seen some success te suggesting hardware accelerated 2D/3D graphics within browsers, and now Khronos has turned their eye towards high voorstelling heterogeneous computing with WebCL.
Fundamentally, WebCL is based on the OpenCL 1.1 Embedded Profile. OpenCL 1.1 Laagtij is a scaled down version of OpenCL that wasgoed originally designed to be a better gezond for embedded and other non-desktop devices, suggesting a relaxed set of OpenCL 1.1 features that are better matched to the more limited capabilities of hardware ter this class. This means that devices and web browsers that implement just the baseline WebCL specification won&rsquo,t have access to the utter capabilities of OpenCL, but many of the differences come down to just floating point precision and memory access modes. Not remarkably then this makes WebCL a lotsbestemming like WebGL: WebGL is based on OpenGL ES, Khronos&rsquo,s OpenGL standard for handheld/embedded devices, and now WebCL is based on Khronos&rsquo,s OpenCL standard for handheld/embedded devices.
Ultimately with WebCL Khronos is looking at solving the same general issues that led to OpenCL ter the very first place: the need for high vertoning computing, chiefly on non-CPU devices. On the consumer desktop OpenCL hasn&rsquo,t bot a massive success so far but it does have its niches, and those niches are expected to be similar for web based applications. This would mean pic manipulation would be a strong use case for WebCL, similar to how wij see OpenCL and OpenGL used together on the desktop, the API reflecting which style of programming is quicker for the algorithm at arm. Tho’ spil with WebCL, spil an open ended compute programming environment, it&rsquo,s up to programmers to figure out how to best getraind it ter to their workflows.
Te the meantime however, Khronos and its members have very first needed to address the potential security implications of WebCL, which is part of the reason it has bot ter development for so long. The release of WebGL brought to light the fact that GPU drivers weren&rsquo,t fully hardened against exploitation, due to the fact that until WebGL there wasgoed an implicit assumption that all code wasgoed trusted before it wasgoed being run ter the very first place, an assumption that is not true for web environments. WebCL ter turn has amplified thesis concerns due to the fact that it is a far more supple and powerful environment, and conceivably would be lighter to exploit.
The end result is that a number of steps have bot taken to secure WebCL against exploits. Chief among thesis steps, a collection of inherently risky OpenCL features have bot dropped, particularly pointers (pointers can be used securely, but often are not). At the same time the WebCL environment itself will undertake its own exploit mitigation efforts, the runtime dynamically checks for exploit behavior, and Khronos is providing a validation contraption for developers to do static kernel analysis to identify potential security problems ahead of time. Ultimately, driver vendors have played their own part te locking down WebCL (being the final failsafe), hardening their drivers against attacks and implementing better setting management to ensure that contexts stay separated (the WebCL omschrijving of preventing a XSS attack). Ultimately wij can only wait and see how well WebCL is going to be able to stand against attacks, but it&rsquo,s clear that Khronos and its members have waterput a lotsbestemming of thought and effort into the matter.
Khronos&rsquo,s 2nd announcement of the day is SYCL 1.Two SYCL (pronounced like sickle) is being released spil a provisional specification, and is designed to provide an abstraction layer for implementing C++ on OpenCL. SYCL te turn builds off of SPIR, the standard portable intermediate representation format for OpenCL.
With SYCL, Khronos is looking to solve one of the greatest programmer requests of OpenCL, which is to enable OpenCL programming te C++. OpenCL itself is based on C, and while the languages have similarities, at the end of the day C is functionally a lower level language than C++, both a bliss and a curse te the case of OpenCL. One of the reasons for the success of rivaling platforms such spil CUDA has bot their better support for high level languages like C++, so SYCL is Khronos&rsquo,s attempt to shove ahead ter that space. And unlike platforms like CUDA, the broader array of hardware OpenCL supports means that SYCL will be focusing on a few features that don&rsquo,t necessarily exist on alternative platforms, such spil single source C++ programming for OpenCL.
The consumer influence of SYCL is going to be minimal (at least at very first), but given SYCL&rsquo,s intended audience it&rsquo,s expected to be a very big overeenkomst for developers. AMD te particular has a very vested rente ter this, spil OpenCL is one of the chief platforms intended to expose their Heterogeneous System Architecture, so having C++ available to OpenCL ter turn makes it lighter to use C++ to access HSA. Tho’ similar principles apply to any program that wants to use C++ to access GPUs and other processors through OpenCL.
Ultimately, for the ogenblik SYCL is commencing out spil a provisional specification. Despite the 1.Two version number, this is the very first release of SYCL, with the version number indicating which version of OpenCL it&rsquo,s being designed against &ndash, te this case OpenCL 1.Two Future versions of SYCL will target OpenCL Two.0, which should prove to be interesting given OpenCL&rsquo,s virtual memory and dynamic parallelism improvements. However the multi-layered treatment of this setup &ndash, SYCL is built on SPIR is built upon OpenCL &ndash, means that SYCL itself will always trail OpenCL to some extent. SPIR 1.Two wasgoed only recently finalized, to give you an idea of where the various standards stand.
Khronos&rsquo,s final announcement of the day is that the EGL specification is now up to 1.Five. EGL is not a standard wij hear much about, spil it&rsquo,s primarily used by operating systems rather than applications. To that end, EGL te a nutshell is Khronos&rsquo,s standard for interfacing their other standards (OpenGL, OpenCL, etc) to the native verhoging windowing system of an OS.
EGL is used rather transparently te a number of operating systems, the most significant of which for the purposes of today&rsquo,s announcement is Android. Significant portions of the Android rendering system use EGL, which mean that certain aspects of Android&rsquo,s development track EGL and vice-versa. EGL 1.Five ter turn is introducing some fresh features and switches to keep up with Android, chief among thesis being enhanced support for 64bit platforms (to coincide with the 64bit Android transition). Also a highlight ter EGL 1.Five is the addition of support for sRGB color rendering, which will make it lighter for OS and application developers to decently manipulate pictures ter the sRGB color space, improving color accuracy te a class of products that until recently toevluchthaven&rsquo,t bot worried with such accuracy.
Eventually, EGL 1.Five also introduces some switches to better support WebGL and OpenCL. Thesis are fairly low level switches, but wij&rsquo,re looking at interoperability improvements to better permit OpenGL ES and OpenCL to work together when EGL is te use, and some fresh limitations on graphics setting creation to better trainen WebGL against attacks.