dpctl.SyclContext

class dpctl.SyclContext(arg=None)

A Python wrapper for the sycl::context C++ class.

There are multiple ways to create a dpctl.SyclContext object:

  • Invoking the constructor with no arguments creates a context using the default selector.

Example:
import dpctl

# Create a SyclContext for default-selected device
ctx = dpctl.SyclContext()
print(ctx.get_devices())
  • Invoking the constructor with a specific filter string that creates a context for the device corresponding to the filter string.

Example:
import dpctl

# Create SyclContext for a gpu device
ctx = dpctl.SyclContext("gpu")
d = ctx.get_devices()[0]
assert(d.is_gpu)
  • Invoking the constructor with a dpctl.SyclDevice object creates a context for that device.

Example:
import dpctl

# Create a level zero gpu device
d = dpctl.SyclDevice("level_zero:gpu")
ctx = dpctl.SyclContext(d)
d = ctx.get_devices()[0]
assert(d.is_gpu)
  • Invoking the constructor with a list of dpctl.SyclDevice objects creates a common context for all the devices. This constructor call is especially useful when creation a context for multiple sub-devices.

Example:
import dpctl

# Create a CPU device using the opencl driver
cpu_d = dpctl.SyclDevice("opencl:cpu")
# Partition the CPU device into sub-devices with two cores each.
sub_devices = cpu_d.create_sub_devices(partition=2)
# Create a context common to all the sub-devices.
ctx = dpctl.SyclContext(sub_devices)
assert(len(ctx.get_devices) == len(sub_devices))
  • Invoking the constructor with a named PyCapsule with name “SyclContextRef” that carries a pointer to a sycl::context object. The capsule will be renamed upon successful consumption to ensure one-time use. A new named capsule can be constructed by using dpctl.SyclContext._get_capsule() method.

Parameters:

arg (optional) – Defaults to None. The argument can be a selector string, a dpctl.SyclDevice instance, a list of dpctl.SyclDevice objects, or a named PyCapsule called “SyclContextRef”.

Raises:

Methods

addressof_ref()

Returns the address of the DPCTLSyclContextRef pointer as a size_t.

get_devices()

Returns the list of dpctl.SyclDevice objects associated with dpctl.SyclContext instance.

Attributes

device_count

The number of sycl devices associated with the dpctl.SyclContext instance.