Это невозможно. Это не только проблема синхронизации с сотнями потоков, ядро работает на специальных устройствах, таких как GPU или ускорительные карты. Эти карты не имеют дисков доступа и других устройств ввода-вывода.
Данные могут отправляться и приниматься только из памяти, а процессор может выполнять сложные операции ввода-вывода.
В общем: GPU (устройство OpenCL) может только получать данные из памяти и что-то делать с ними локально. После того, как на процессор поступает сигнал о завершении работы ядра OpenCL, данные извлекаются из графического процессора. Графический процессор является чистым ведомым устройством без какого-либо контроля над окружающей средой.