Khronos Updates OpenCL and SYCL Specifications for Heterogeneous Parallel Programming

Integration of developer feedback for improved application portability;
Alignment with latest C++ developments

Novem­ber 18th, 2014, – The Khro­nos™ Group today announ­ced the rati­fi­ca­ti­on and public release of updated Open­CL™ 2.0 and Pro­vi­sio­nal SYCL™ 1.2 spe­ci­fi­ca­ti­ons. The new spe­ci­fi­ca­ti­ons inte­gra­te feed­back from the deve­lo­per com­mu­ni­ty, ali­gn with the latest C++ deve­lo­p­ments, and increase imple­men­ta­ti­on con­sis­ten­cy for impro­ved por­ta­bi­li­ty of hete­ro­ge­neous par­al­lel appli­ca­ti­ons. The latest Open­CL and SYCL spe­ci­fi­ca­ti­ons are open, royal­ty-free and available at www.khronos.org/opencl/ and www.khronos.org/opencl/sycl.

Khro­nos is con­stant­ly lis­tening to feed­back from the Open­CL deve­lo­per com­mu­ni­ty, and con­so­li­da­ting impro­ve­ments and cla­ri­fi­ca­ti­ons into our spe­ci­fi­ca­ti­ons to pro­vi­de the best pos­si­ble plat­form for por­ta­ble par­al­lel appli­ca­ti­ons,” said Neil Tre­vett, pre­si­dent of the Khro­nos Group, chair of the Open­CL working group and vice pre­si­dent of mobi­le eco­sys­tem at NVIDIA. “Open­CL con­ti­nues to deve­lop a rich eco­sys­tem for hete­ro­ge­neous par­al­lel pro­gramming across diver­se plat­forms. Pai­red with ongo­ing impro­ve­ments to the core Open­CL spe­ci­fi­ca­ti­on, SYCL adds rich sin­gle source C++ pro­gramming for Open­CL deve­lo­pers and the SPIR por­ta­ble bina­ry for­mat enables a wide ran­ge of pro­gramming models to be acce­le­ra­ted by diver­se Open­CL devices.

Updated SYCL 1.2 Provisional Specification

Imple­men­ta­ti­ons of SYCL for Open­CL enable deve­lo­pers to wri­te in a “sin­gle-source” C++ pro­gramming style. The evol­ving pro­vi­sio­nal spe­ci­fi­ca­ti­on has been updated based on feed­back from deve­lo­pers and to ali­gn with the latest direc­tions in modern C++ pro­gramming. SYCL enables powerful, modern C++ fea­tures, such as tem­pla­tes and lamb­da func­tions to acce­le­ra­te their soft­ware for the wide ran­ge of hete­ro­ge­neous devices that Open­CL sup­ports. The SYCL working group con­ti­nues to work with deve­lo­pers, see­king feed­back and refi­ning the pro­vi­sio­nal spe­ci­fi­ca­ti­on to deli­ver a final spe­ci­fi­ca­ti­on that will enable Open­CL devices to sup­port modern C++ in an open, stan­dard way. SYCL builds on the SPIR por­ta­ble bina­ry for­mat and is one way of brin­ging hig­her-level models to Open­CL, forming a valuable part of the pro­gramming model eco­sys­tem for Open­CL devices.

Updated OpenCL 2.0 Specification

The Open­CL working group has released an update to the Open­CL 2.0 spe­ci­fi­ca­ti­on, with cla­ri­fi­ca­ti­ons that impro­ve spe­ci­fi­ca­ti­on rea­da­bili­ty and redu­ce minor cross-ven­dor imple­men­ta­ti­on incon­sis­ten­ci­es, making it easier for deve­lo­pers to wri­te por­ta­ble Open­CL appli­ca­ti­ons that relia­bly work across mul­ti­ple devices. The chan­ges to the Open­CL 2.0 spe­ci­fi­ca­ti­on include:

  • Cla­ri­fi­ca­ti­ons around sup­port for Blocks in Open­CL C;
  • Refi­ne­ments to the pre­cis­i­on requi­re­ments for math func­tions in fast math mode;
  • Cla­ri­fi­ca­ti­on of flags that can be appli­ed to pipes;
  • A new exten­si­on, cl_khr_device_enqueue_local_arg_types, for enqueu­e­ing device ker­nels to use argu­ments that are a poin­ter to a user defi­ned type in local memory;
  • Cla­ri­fi­ca­ti­on of the CL_MEM_KERNEL_READ_AND_WRITE flag to enable fil­te­ring of image for­mats that can be pas­sed to a sin­gle ker­nel ins­tance as read_write.

Industry Support

We are see­ing a lot of deve­lo­pers want to acce­le­ra­te their soft­ware with a ran­ge of dif­fe­rent acce­le­ra­tor pro­ces­sors. Being an open stan­dard, Open­CL pro­vi­des deve­lo­pers the grea­test ran­ge of opti­ons for acce­le­ra­ti­on,” said Andrew Richards, CEO of Code­play. “At the same time, we are see­ing deve­lo­pers using a C++ sin­gle-source pro­gramming model, becau­se it is easy to use and easy to wri­te libra­ri­es for. SYCL enables deve­lo­pers to use a modern C++ deve­lo­p­ment style while still using royal­ty-free open stan­dards and levera­ge the wide adop­ti­on of Open­CL by acce­le­ra­tor ven­dors.

At Ima­gi­na­ti­on, we are com­mit­ted to hel­ping dri­ve stan­dards around hete­ro­ge­neous pro­ces­sing and GPU com­pu­te. It’s cri­ti­cal that the indus­try con­ti­nues to impro­ve the GPU com­pu­te pro­gramming model, and Khro­nos is play­ing a key role in the­se efforts. We’re deligh­ted to see con­tin­ued momen­tum with Open­CL 2.0 and SYCL,” said Peter McGuin­ness, direc­tor of Mul­ti­me­dia Tech­no­lo­gy Mar­ke­ting, Ima­gi­na­ti­on Technologies.

OpenCL at Supercomputing 2014

The­re are Open­CL-rela­ted pre­sen­ta­ti­ons and acti­vi­ties at Super­com­pu­ting 2014 in New Orleans on Novem­ber 16–21st:

Tuto­ri­al: Open­CL: A Hands-on Introduction
Mon­day, Nov 17 | 8:30am — 5:00pm | Room 395
Tim Matt­son, Ali­ce Koni­ges, and Simon McIntosh–Smith
The tuto­ri­al for­mat will be a 50/50 split bet­ween lec­tures and exer­ci­s­es. Stu­dents will use their own lap­tops (Win­dows, Linux or OS/X) and log into a remo­te ser­ver run­ning an Open­CL platform.
More infor­ma­ti­on and calen­dar links

Open­CL BOF: Open­CL Ver­si­on 2.0 and Beyond
Tues­day, Nov 18 | 5:30pm – 7:00pm | Room 275–76-77
Tim Matt­son, Simon McIntosh–Smith, Andrew Richards, Ronan Keryell and others
This BOF will dis­cuss the latest deve­lo­p­ments in Open­CL inclu­ding the recent Open­CL 2.0 spe­ci­fi­ca­ti­on, SYCL, SPIR, and more.
More infor­ma­ti­on and calen­dar links

About The Khronos Group

The Khro­nos Group is an indus­try con­sor­ti­um crea­ting open stan­dards to enable the aut­ho­ring and acce­le­ra­ti­on of par­al­lel com­pu­ting, gra­phics, visi­on, sen­sor pro­ces­sing and dyna­mic media on a wide varie­ty of plat­forms and devices. Khro­nos stan­dards include OpenGL®, OpenGL® ES, Web­GL™, Open­CL™, SPIR™, SYCL™, Web­CL™, Open­VX™, Open­MAX™, OpenVG™, Open­SL ES™, Strea­mIn­put™, COLLADA™ and glTF™. All Khro­nos mem­bers are enab­led to con­tri­bu­te to the deve­lo­p­ment of Khro­nos spe­ci­fi­ca­ti­ons, are empowered to vote at various stages befo­re public deploy­ment, and are able to acce­le­ra­te the deli­very of their cut­ting-edge media plat­forms and appli­ca­ti­ons through ear­ly access to spe­ci­fi­ca­ti­on drafts and con­for­mance tests. More infor­ma­ti­on is available at www.khronos.org.

###

Khro­nos, DevU, Strea­mIn­put, SPIR, SYCL, Web­GL, Web­CL, COLLADA, Open­KO­DE, OpenVG, Open­VX, VXU, glTF, Open­SL ES and Open­MAX are trade­marks of the Khro­nos Group Inc. ASTC is a trade­mark of ARM Hol­dings PLC, Open­CL is a trade­mark of Apple Inc. and OpenGL is a regis­tered trade­mark and the OpenGL ES and OpenGL SC logos are trade­marks of Sili­con Gra­phics Inter­na­tio­nal used under licen­se by Khro­nos. All other pro­duct names, trade­marks, and/or com­pa­ny names are used sole­ly for iden­ti­fi­ca­ti­on and belong to their respec­ti­ve owners.