D.2.1 About the cl_arm_printf extension

The implementation of the cl_arm_printf extension uses a callback function that delivers the output data to the host from the device. You must write this callback function.

You must register the callback function as a property of the context when the OpenCL context is created. It is called when an OpenCL kernel completes. If the callback is not registered, the printf() output is still produced but it is not available.

Messages are stored atomically and complete in the output buffer. The buffer is implemented as a circular buffer so if the output is longer than the buffer size, the output wraps around on itself. In this case, only the last part of the output is available.

You can configure the size of the buffer. The default size is 1MB.

Non-ConfidentialPDF file icon PDF version101574_0301_00_en
Copyright © 2019 Arm Limited or its affiliates. All rights reserved.