oneAPI_register's profile picture. Tech enthusiast, SW Architect @ Intel, rambling about programming, SYCL, performance tuning, open-source software and technology in general.

oneAPI

@oneAPI_register

Tech enthusiast, SW Architect @ Intel, rambling about programming, SYCL, performance tuning, open-source software and technology in general.

You probably heard of "device type" a few times through my tweets now. Did you know that there are actually just two main categories of device types? 1) the host device 2) accelerator devices. Next tweet will highlight some examples.


There are three ways to represent a device code, aka kernel code in SYCL. Here they are: 1) lambda expressions 2) named function objects aka functors 3) interoperability with kernels through other languages or APIs, for example OpenCL C.


SYCL kernel code have a list of features that are *not* supported. Here are some: dynamic memory allocations, static variables, function pointers, exception handling, dynamic polymorphism and runtime type information (RTTI).


Did you know, that the original idea behing SYCL was to address the challenges of C++ data parallel programming for heterogenous systems. Next tweet will describe DPC++ and its relation to SYCL.


In SYCL, queues are the only connection that allows a workload to direct work to be executed on a device and there two types of actions that can be placed into a queue: 1) code to execute 2) memory operations.


In SYCL, you use Queues to direct work to be done by a target device. It is the only connection we have to give work to devices.


Did you know that SYCL, pronounced "sickle", is an industry standard, driven by Khronos? It's not an acronym, it's just a name.


Loading...

Something went wrong.


Something went wrong.